#Turntable API
A simple nodejs wrapper for the turntable API
npm install ttapi
Find your AUTH
, USERID
and ROOMID
informations with that bookmarklet.
This bot respond to anybody who write "/hello" on the chat.
var Bot = require('ttapi');
var bot = new Bot(AUTH, USERID, ROOMID);
bot.on('speak', function (data) {
// Respond to "/hello" command
if (data.text.match(/^\/hello$/)) {
bot.speak('Hey! How are you '+data.name+' ?');
}
});
var Bot = require('ttapi');
var AUTH = 'auth+live+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
var USERID = 'xxxxxxxxxxxxxxxxxxxxxxxx';
var ROOMID = 'xxxxxxxxxxxxxxxxxxxxxxxx';
var bot = new Bot(AUTH, USERID);
bot.on('ready', function (data) { bot.roomRegister(ROOMID); });
bot.on('roomChanged', function (data) { console.log('The bot has changed room.', data); });
bot.on('speak', function (data) { console.log('Someone has spoken', data); });
bot.on('update_votes', function (data) { console.log('Someone has voted', data); });
bot.on('registered', function (data) { console.log('Someone registered', data); });
var Bot = require('ttapi')
, repl = require('repl');
var bot = new Bot(AUTH, USERID, ROOMID);
repl.start('> ').context.bot = bot;
// ...
REPL allows you to dynamically call the bot functions and modify his variables during his execution.
bot.debug = true;
That will print on the terminal all the data that you get and all the data that you send.
https://no.de/ : Free hosting for nodejs projects.
Here are some examples of the data that you'll receive from those events.
Triggered when a socket open a connection.
Triggered when the bot receive a tcp message.
Triggered when a socket close its connection.
Triggered when the bot receive an http request.
on('roomChanged', function (data) { })
Triggered when the bot enter in a room.
on('registered', function (data) { })
Triggered when a user enter the room.
on('deregistered', function (data) { })
Triggered when a user leave the room.
on('speak', function (data) { })
Triggered when a new message is send via the chat.
on('endsong', function (data) { })
Triggered at the end of the song. (Just before the newsong/nosong event)
The data returned by this event contain informations about the song that have just ended.
on('newsong', function (data) { })
Triggered when a new song start.
on('nosong', function (data) { })
Triggered when there is no song.
on('update_votes', function (data) { })
Triggered when a user vote.
Triggered when a user is booted.
Triggered when a user change his name/infos.
on('add_dj', function (data) { })
Triggered when a user take a dj spot.
on('rem_dj', function (data) { })
Triggered when a user leave a dj spot.
on('new_moderator', function (data) { })
Triggered when a user is granted to moderator title.
on('rem_moderator', function (data) { })
Triggered when a user loose his moderator title.
on('snagged', function (data) { })
Triggered when a user queues the currently playing song.
Start a tcp server.
Start a http server.
Get the turntable server time.
Get 20 rooms.
Get the location of your friends/idols.
Get the location of a user. If allInformations
is true
, you'll also receive the informations about the room and the user.
This function will make the bot becoming fan of the user.
Get your favorites rooms.
Add a room to your favorite.
Remove a room from your favorite.
Register in a room.
Deregister from the current room.
Get the current room informations. Do not include song log if 'extended' is false.
Broadcast a message on the chat.
Boot a user.
Alias of bootUser()
.
Add a moderator.
Remove a moderator.
Add yourself as a Dj.
Remove a Dj.
Skip the current song.
Alias of stopSong()
.
Vote for the current song.
Alias of vote('up')
.
Authenticate the user.
Get the current user informations.
Get the list of who you became fan.
Get a user profile.
Modify your profile. Any missing properties from the 'profile' object will be replaced with the current values.
profile
:obj (required)name
:string (optional)twitter
:string (optional)facebook
:string (optional)website
:string (optional)about
:string (optional)topartists
:string (optional)hangout
:string (optional)
callback
:fn (optional)
bot.modifyProfile({ website:'http://ttdashboard.com/', about:'My bot.' }, callback);
Modify your laptop.
Modify your name.
Set your avatar.
Fan someone.
Unfan someone.
Snag the song.
This function will not add the song into the queue.
Get all informations about a playlist.
playlistName
(optional) default:default
callback
(required)
bot.playlistAll(callback);
bot.playlistAll(playlistName, callback);
Add a song on a playlist.
playlistName
(optional) default:default
songId
(required)index
(optional) default:0
callback
(optional)
bot.playlistAdd(songId);
bot.playlistAdd(songId, idx);
bot.playlistAdd(songId, callback);
bot.playlistAdd(songId, idx, callback);
bot.playlistAdd(playlistName, songId, idx);
bot.playlistAdd(playlistName, songId, callback);
bot.playlistAdd(playlistName, songId, idx, callback);
bot.playlistAdd(false, songId, callback); // Backward compatibility
bot.playlistAdd(false, songId); // Backward compatibility
Remove a song on a playlist.
playlistName
(optional) default:default
index
(optional) default:0
callback
(optional)
bot.playlistRemove();
bot.playlistRemove(index);
bot.playlistRemove(index, callback);
bot.playlistRemove(playlistName, index);
bot.playlistRemove(playlistName, index, callback);
Reorder a playlist. Take the song at index indexFrom
and move it to index indexTo
.
playlistName
(optional) default:default
indexFrom
(required) default:0
indexTo
(required) default:0
callback
(optional)
bot.playlistReorder(indexFrom, indexTo);
bot.playlistReorder(indexFrom, indexTo, callback);
bot.playlistReorder(playlistName, indexFrom, indexTo);
bot.playlistReorder(playlistName, indexFrom, indexTo, callback);