Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var https = require('https');
- var events = require('events');
- var fs = require('fs');
- var PUBNUB = require('./pubnub/node.js/pubnub.js');
- var HOST = "api.dubtrack.fm"
- var request_cookie = "";
- var room_id;
- var userdata;
- var _pubnub;
- var room;
- function dump(object)
- {
- console.log("my object: %o", object)
- }
- // callback(response, data)
- function doRequest(callback, method, hostname, path, data)
- {
- //var redirected_n = 0
- var options = {
- 'hostname': hostname,
- 'path': path,
- 'method': method,
- };
- var req = https.request(options, function (response) {
- var body = '';
- response.on('data', function(d) {
- body += d;
- });
- var _response = response;
- /*if (response.headers.location && redirected_n < 10)
- {
- console.log("redirected to " + response.headers.location)
- doRequest(callback, method, hostname, response.headers.location, data);
- redirected_n++;
- return;
- }*/
- response.on('end', function () { callback(_response, body); });
- });
- req.setHeader("cookie", request_cookie);
- req.setHeader("content-type", "application/json");
- if (req == 'POST')
- {
- req.write(data);
- }
- req.end();
- }
- function arrayToCookie(array)
- {
- var cookie = "";
- for (key in array)
- {
- cookie = cookie + " " + key + "=" + array[key] + ";";
- }
- console.log(cookie);
- return cookie
- }
- function authCallback(response, data)
- {
- if (response.statusCode == 200)
- {
- console.log("login ok" );
- request_cookie =response.headers["set-cookie"][0];
- doRequest(loginCallback, "GET", HOST, "/auth/session");
- return;
- }
- console.log("login not ok");
- process.exit(1);
- }
- function sessionCallback(response, data)
- {
- /*var parsed = JSON.parse(data);
- if (parsed.code == 200)
- {
- console.log(data);
- return;
- }*/
- console.log(data);
- doRequest(loginCallback, "GET", HOST, response.headers['location']);
- }
- function loginCallback(response, data)
- {
- var parsed = JSON.parse(data);
- console.log("logged in");
- if (parsed.code == 200)
- {
- userdata = parsed.data;
- console.log(data);
- doRequest(roomCallback, "GET", HOST, "/room/" + process.argv[4]);
- return;
- }
- }
- function roomCallback(response, data)
- {
- var parsed = JSON.parse(data);
- if (parsed.code == 200)
- {
- console.log(parsed.data.name);
- console.log("id: " + parsed.data._id);
- console.log("current video: " + parsed.data.currentSong.name);
- room = parsed.data
- room_id = parsed.data._id;
- joinPubNubChannel();
- console.log("/chat/" + room_id);
- doRequest(chatoptionsCallback, "GET", HOST, "/message/new");
- return;
- }
- console.log("Couldn't get room info");
- process.exit(1);
- }
- function joinPubNubChannel()
- {
- _pubnub = PUBNUB.init({
- backfill: false,
- restore: false,
- subscribe_key: 'sub-c-2b40f72a-6b59-11e3-ab46-02ee2ddab7fe',
- ssl: true,
- uuid: userdata._id
- });
- _pubnub.subscribe({
- 'channel' : room.realTimeChannel,
- 'message' : function( message, env, channel ){ console.log(message);
- if (message.message == "bot")
- {
- send_msg("egazhpohazehgzhegphhgehpegzphegzhpgezhpgepeHPGHUGHZE");
- }
- if (message.message == "bot_updub")
- {
- send_msg("egazhpohazehgzhegphhgehpegzphegzhpgezhpgepeHPGHUGHZE");
- }
- },
- 'connect' : function(){console.log("Connected");},
- 'disconnect' : function(){console.log("Disconnected");},
- 'reconnect' : function(){console.log("Reconnected");},
- 'error' : function(){console.log("Network Error");}
- });
- }
- function send_msg(msg)
- {
- var msg = {
- 'user' : userdata,
- 'message' : msg,
- 'time' : Date.now(),
- 'realTimeChannel' : room.realTimeChannel,
- 'type' : "chat-message",
- 'chatid': null,
- //'lastlogin': 0
- };
- console.log(JSON.stringify(msg))
- doRequest(function(response, data) { console.log(data); }, "POST", HOST, "/chat/" + room_id, JSON.stringify(msg));
- /*_pubnub.publish({
- channel: room.realTimeChannel,
- message: 'Hello from the PubNub Javascript SDK!',
- callback : function(m){console.log(m)}
- });*/
- }
- function chatoptionsCallback(response, data)
- {
- dump(response.headers);
- console.log(data);
- return;
- }
- doRequest(authCallback, "POST", HOST, "/auth/dubtrack?username=" + process.argv[2] + "&password=" + process.argv[3], "");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement