avatarkava / beavisbot Goto Github PK
View Code? Open in Web Editor NEWA node.js powered bot for plug.dj and dubtrack.fm
Home Page: https://github.com/avatarkava/beavisbot/wiki
License: MIT License
A node.js powered bot for plug.dj and dubtrack.fm
Home Page: https://github.com/avatarkava/beavisbot/wiki
License: MIT License
Since Plug still does the whole 'thrashing connection' thing when a user opens two plug tabs (rapid connect/disconnect as the two tabs fight it out to maintain a connection), put in protection to prevent Beavis from continually adding a user to the line
See here - not currently doing this correctly at sparkle.js:195 or so:
.icon-current-dj {background:url(http://png-3.findicons.com/files/icons/907/puzzle/32/rubik_s_cube_trashed.png);;background-repeat:no-repeat;background-position:center}
.icon-search {background:url(http://www.pixeljoint.com/files/icons/waldo.gif);;background-repeat:no-repeat;background-position:center}
.icon-related {background:url(http://www.pixeljoint.com/files/icons/waldo.gif);;background-repeat:no-repeat;background-position:center}
.icon-join-waitlist-big {background:url(http://icons.iconarchive.com/icons/iron-devil/ids-3d-icons-40/32/r2d2-icon.png);;background-repeat:no-repeat;background-position:center}
.icon-leave-waitlist-big {background:url(http://www.pixeljoint.com/files/icons/ghostbusters_slimer.gif);;background-repeat:no-repeat;background-position:center}{background:url(http://www.pixeljoint.com/files/icons/ghostbusters_slimer.gif);;background-repeat:no-repeat;background-position:center}
.icon-leave-booth-big {background:url(https://cdn1.iconfinder.com/data/icons/black-religious-icons/30/Transformer.png);;background-repeat:no-repeat;background-position:center}
{background:url(http://img.informer.com/icons/png/32/104/104916.png);;background-repeat:no-repeat;background-position:center}
.icon-join-waitlist-big {background:url(http://icons.iconarchive.com/icons/iron-devil/ids-3d-icons-40/32/r2d2-icon.png);;background-repeat:no-repeat;background-position:center}
.icon-leave-waitlist-big {background:url(http://www.pixeljoint.com/files/icons/ghostbusters_slimer.gif);;background-repeat:no-repeat;background-position:center}
.icon-playlist {background:url(http://www.iconhot.com/icon/png/wpzoom-developer/48/cassette-1.png);;background-repeat:no-repeat;background-position:center}
.icon-playlist-close {background:url(http://www.pixeljoint.com/files/icons/gobo_fraggle_rock.gif);;background-repeat:no-repeat;background-position:center}
.icon-filter {background:url(http://www.pixeljoint.com/files/icons/ren_excited.gif);;background-repeat:no-repeat;background-position:center}
.icon-edit-white {background:url(http://www.pixeljoint.com/files/icons/stimpy.gif);;background-repeat:no-repeat;background-position:center}
{background:url(http://www.pixeljoint.com/files/icons/oscar_grouch.gif);;background-repeat:no-repeat;background-position:center}
.icon-shuffle {background:url(http://en.icomania.com/imgs/icojpg/24/227.jpg);;background-repeat:no-repeat;background-position:center}
.icon-create-playlist {background:url(http://www.iconhot.com/icon/png/wpzoom-developer/48/cassette-1.png);;background-repeat:no-repeat;background-position:center}
.icon-store {background:url(https://cdn0.iconfinder.com/data/icons/iconsweets2/40/pacman.png);;background-repeat:no-repeat;background-position:center}
.icon-room {background:url(http://icons.iconarchive.com/icons/fatcow/farm-fresh/32/turntable-icon.png);;background-repeat:no-repeat;background-position:center}
Similar to what the old http://ttstats.info/ used to do.
Simple JS page that pulls stats for the room and allows sorting based on the same criteria most of the commands use already.
There's been a request for .dogfacts. Oh and .pandafacts too I guess. ;-)
When checking stats under .mygrabs, the text now reads "You have grabbed xxx songs." (It used to say something like "You have xxx grabs.") It now means the opposite of what it should mean. Far as I can tell, the stats are for how many songs of your own others have grabbed for themselves. As some of us compete to have high numbers of songs others want to grab, it's frustrating for it to appear that you are merely grabbing everyone else's. Could it please be changed back to reflect what it actually means?
See similar implementation on another fork here:
audaxion@459ea12
See .add/.remove/.move etc or anything else that is splitting on spaces
Store a db value for the user and give them back their spot in line when they rejoin the room (times out after something like 10 mins?)
Bot will continue to post the MEH message in chat long after the abuser has been banned.
Proposed solutions:
Utilize the GIFTS table in the db and populate with some bot-level gifting based on a randomly-selected strong from that category
eg .cookie .beer or .taco
This isn't properly handled when iterating over the wait list, so the log shows the users out of order.
This should theoretically be possible with PlugAPI but doesn't seem to be working right now. Needs further testing.
First off, thank you for all that you do! BeavisBot is awesome and makes life as a mod a lot easier. Was curious if there would be any way on theme days (or just any day) to automatically display the theme with the welcome message...or just randomly display it throughout the day. I know a lot of times people will ask if there's a theme, and the .theme option will be used...but if it could display automatically that would be nice.
Hi AK -
Can we maybe add a .support option to Beav to display the BA Support information for when there are no mods in the room. Maybe an abbreviated version of the facebook post? Thanks!!
If you ever need immediate assistance and no mods are available, please also feel free to ask a plug.dj Brand Ambassador in their support room:
http://plug.dj/support
Hours are listed under Ambassador Support Hours at:
http://blog.plug.dj/brand-ambassadors/
It would be nice to be able to set the bot in an "overnight" where he removes users for going over song time limit, broken songs etc. We don't need this during the day so it would be nice to have this as a toggle of some sort.
After getting bot spammed a few times, it's necessary to have a text way to do this as the GUI is just too slow to quickly ban 20-30 usernames coming into the room and spamming.
If Beavis has been offline for a while, he joins the room and spams everyone for being idle.
Don't warn anyone until Beavis has been online for config.activeDJTimeoutMins
Mods and above can also use this command with a string to set the current room theme (just a variable that can be returned via text)
.lotto or .lottery to execute (instead of /win if using the reference below)
Bonus: Add random lottery chatter so that Beavis isn't always saying the same thing when someone wins the lottery.
Reference (with permission from the author): http://pastebin.com/qVqZrMRD
(This will need some 80s/90s-related text to replace the current ones in the script above.)
Hello,
I noticed BeavisBot in The "I love the 80's and 90's" community and recently started looking into reproducing him into a room I run for a gaming server I develop for.
When I try to start the bot however, This happens:
tim@Bot:~/BeavisBot$ node sparkle.js
Using update code: h90
11 Apr 12:45:22 [Socket Server] Connected
11 Apr 12:45:22 [Chat Server] Connected
Joined room undefined
[GATEWAY ERROR] [TypeError: Cannot read property 'media' of undefined]
/home/tim/BeavisBot/sparkle.js:279
if (room.mediaStartTime) {
^
TypeError: Cannot read property 'mediaStartTime' of undefined
at monitorDJList (/home/tim/BeavisBot/sparkle.js:279:17)
at null. (/home/tim/BeavisBot/sparkle.js:252:13)
at wrapper as _onTimeout
at Timer.listOnTimeout as ontimeout
Am I overlooking something in the config or did I mess something up?
Thanks :)
Currently there is no way to move someone on the temp ban list to the permanent ban list. Which is necessary if a bouncer has to ban someone and we decided this should be moved to permanent ban.
According to Naralith, we need to add this to our bot and he says to talk to Eucalyptusspace in Chill room about it.
.regras or .br
A handy link for our Brazilian/Portuguese visitors: http://iheart80s90s.weebly.com/regras.html
Same as the .rules link except it directs them to the version in Portuguese as a more efficient way of getting them to read the rules.
C:\Users....\Documents\BeavisBot-master>node sparkle
module.js:485
throw err;
^
SyntaxError: C:\Users.......\Documents\BeavisBot-master\config.json: Unexp
ected string
at Object.parse (native)
at Object.Module._extensions..json (module.js:482:27)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (C:\Users.........\Documents\BeavisBot-master\sparkl
e.js:4:14)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
"roomName": "http://plug.dj/roblox/"
Similar to how 'bestdjs' works now.
It would be cool if Beavis could add the .help command to the Welcome message if no mod or mods are idle.
Currently the bot will warn users at around 60 seconds remaining in the current track if they aren't wooting.
Add on a feature so that we access the history and boot anyone who didn't woot for the previous track when the DJ advances
Request for a command that reports the last time the user was seen in the room.
E.g. ".seen " or ".lastlogin "
Had a couple requests for some new .party commands in the vein of the infamous Ryan Gosling, Emma Watson, and Betty Whites that we already have.
They are .aliceeveparty and the image is here:
http://s28.postimg.org/72wwigdu3/alice_eve_gif_28.gif
And .noomirapaceparty and the image is here:
http://i.imgur.com/tAkdVal.gif
Because they're using callbacks improperly...
Might need to tweak the colors, but I went with a bluish one.
When skipping a song, moderators and above have the option to use the 'blacklist' tag (eg .skip blacklist
). In the future, if an exact match for that song is found, Beav will auto-skip.
Code in the plugapi repository doesn't seem to keep Sparklebot connected - after about 10 minutes, he stops receiving everything other than chat requests (he'll respond to dot commands, but doesn't realize people are wooting, etc).
When a user enters a leaves a million times really fast, because Plug is being stupid and damned them to Internet limbo, Beavis will add them back to the waitlist every time. Spamming the room with the purple mod messages, as well as the "Hey, I just added you to the line @foobar" message
Currently, users can get around Beavis removing them from the line for "mehing" by rejoining the line after the first warning. Moderators then have to manually remove the user the second time.
Give idle users one warning, then remove from the wait list.
Since people ask about this from time to time, it would be convenient to have a .fb or .facebook command for it.
i've noticed when a user joins the room, BeavisBot sends a greeting to chat before the user is actually shown as being in the room, and therefore said user is unable to see the welcome message. (noticed in http://plug.dj/i-the-80-s-and-90-s-1/ ) - i can verify that i've never once seen one of those greeting/welcome messages directed at myself.
The ".lastplayed" command seems to be down. It's reporting that all songs are being played in the room for the first time, even if it's been confirmed that the song was played in the room with Beavis present previously.
Can we add this gif (http://replygif.net/i/1511.gif) to beavis's response bank? Something like .judy or .toolong. Whatever you think is best.
For all of those mind-in-the-gutter moments:
.phrasing
http://penguinssauce.com/wp-content/uploads/2014/04/phrasing-first-boom.gif
Return a random phrase on @ mention of the bot.
Can possibly parse matching phrases within the mention to tailor the response in a cool way: is it a question? does it contain 'zombie'? etc.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.