LRRBot 2.0

Drop by and talk about anything you want. This is where all cheese-related discussions should go
User avatar
phlip
Posts: 1790
Joined: 24 Apr 2010, 17:48
First Video: Eternal Sonata (Unskippable)
Location: Australia

Re: LRRBot 2.0

Postby phlip » 12 Mar 2014, 14:24

qrpth: Neat, thanks! I'll have a look at that when I get the chance... Some of that looks really useful (I didn't realise the bot needed to be throttled... luckily we haven't hit that limit yet... 20 messages in 30 seconds is a lot, after all...)

I already have my own plans, webserver-wise, though... I've already ported it all over to Flask on the recommendation of some of my Web-programming buddies, and will be switching over to that as soon as we get the hosting solution nailed down (right now, the bot is running on my computer, while the site is running on my Web hosting, that can only handle basic CGI... It works, but we're planning to go to something better).
While no one overhear you quickly tell me not cow cow.
but how about watch phone?

[he/him/his]
User avatar
phlip
Posts: 1790
Joined: 24 Apr 2010, 17:48
First Video: Eternal Sonata (Unskippable)
Location: Australia

Re: LRRBot 2.0

Postby phlip » 13 Mar 2014, 06:23

New experimental feature: the bot will attempt to help ban spammers. Currently its only spam rule is:

Code: Select all

http://naked-[anything].com/?ref=[anything]
If it sees someone post that in the chat, it'll kick them out.

At first it'll flicker them (ie timeout for 1 second, so their message gets deleted but they can stay in the chat), on the basis that this is not that bad if it's a false positive, and probably enough for a real spambot, that probably doesn't intend to use the same name twice anyway. In the case of persistent spammers, it'll first give them a proper timeout, and if they persist after that, a banning. Hopefully that gives a good enough middle-ground between keeping spam out of the channel, and not causing too much disruption if a real user trips the trap (either accidentally or out of curiosity/trolling).

If there are any other recurring spam forms that start showing up, or if the behaviour needs to be tweaked, let me know. If something goes seriously wrong and it starts banning people it shouldn't (which I doubt, but you can never be too sure), de-opping the bot will take it off its rampage, and give me time to fix it.
While no one overhear you quickly tell me not cow cow.
but how about watch phone?

[he/him/his]
User avatar
Master Gunner
Defending us from The Dutch!
Posts: 19383
Joined: 29 Oct 2006, 12:19
First Video: How To Talk Like A Pirate
Location: In Limbo.

Re: LRRBot 2.0

Postby Master Gunner » 13 Mar 2014, 06:34

hmmm...I wonder what the regex would be to match ASCII art?

Code: Select all

[^a-zA-Z0-9]{5,}

Would match all lines that contain 5 consecutive non-alphanumeric characters. Probably a good starting point.
TheRocket wrote:Apparently the crotch area could not contain the badonkadonk area.
Twitter | Click here to join the Desert Bus Community Chat.
User avatar
Paul
Super Moderator
Posts: 1000576
Joined: 15 Apr 2005, 18:31
First Video: Tetris
Location: Victoria, BC

Re: LRRBot 2.0

Postby Paul » 13 Mar 2014, 10:38

I don't know if this is something that could/should be part of LRRbot, but I figured I would ask here, since you guys seem knowledgeable about these things:
Is there a free, simple web app that would allow me to have a live "approval rating" for the game that is being played? I'm envisioning something like strawpoll.me but with the ability for people to change their vote if they are no longer enjoying the game. Because of Unskippable, we have a ton of games at the office, many of which are of dubious quality, and I was thinking that it might be fun to do a "sudden death" stream where we play a series of random games, switching when the approval rating gets below a certain threshold.

If there isn't an existing web app to do this, would is this something that would be relatively easy to build or integrate into LRRBot?
User avatar
AdmiralMemo
Posts: 7358
Joined: 27 Nov 2011, 18:29
First Video: Unskippable: Eternal Sonata
Location: Baltimore, Maryland, USA
Contact:

Re: LRRBot 2.0

Postby AdmiralMemo » 13 Mar 2014, 13:15

I think the hardest part of that would be keeping track of each person and their vote, with the ability to change it, which is something LRRBot currently doesn't do. All other functions seem like stuff LRRbot can already do.

phlip could tell you definitively, though, of course.
Graham wrote:The point is: Nyeh nyeh nyeh. I'm an old man.
LRRcast wrote:Paul: That does not answer that question at all.
James: Who cares about that question? That's a good answer.

Image
User avatar
qrpth
Posts: 49
Joined: 13 Jul 2013, 13:07
First Video: iPotato
Contact:

"

Postby qrpth » 14 Mar 2014, 00:52

d3fr0st5 wrote:With that done, just to get everyone on the same page I'm currently working on getting subs get access to custom commands, which would allow us to get a functional !explain command,
Step 1 would be getting an OAuth token from Graham.

d3fr0st5 wrote:also working when I got spare time on revamping the simple text commands to be able to pull from a google spreadsheet or something similar to be able to easily add stuff like !iddqderp without having to write more code every time. Though my time is kind of limited with school work and stuff

"automatically generated commands with static responses":

Code: Select all

{
  "help": {
    "iddqderp": "Every Tuesday at 3pm pacific, Alex Steacy plays one of his favorite modded games on \"IDDQDerp\".",
    "cam": "Cameron Lauder is a dapper chemist who contributes to LoadingReadyRun."
  }
}
in data.json gives you commands !iddqderp and !cam.



phlip wrote:I already have my own plans, webserver-wise, though... I've already ported it all over to Flask on the recommendation of some of my Web-programming buddies, and will be switching over to that as soon as we get the hosting solution nailed down (right now, the bot is running on my computer, while the site is running on my Web hosting, that can only handle basic CGI... It works, but we're planning to go to something better).
I think that using Flask is the right thing to do. Are you cherry-picking commits from master to flask?

I have a VPS that is running a mail server and my personal website. If you want I can give you access so you can migrate the bot to it.



Paul wrote:If there isn't an existing web app to do this, would is this something that would be relatively easy to build or integrate into LRRBot?
Pull request #3

Code: Select all

< qrpth> !explain Desert Bus 2
<@​lrrbot> James Turner
User avatar
phlip
Posts: 1790
Joined: 24 Apr 2010, 17:48
First Video: Eternal Sonata (Unskippable)
Location: Australia

Re: "

Postby phlip » 14 Mar 2014, 03:25

qrpth wrote:
d3fr0st5 wrote:With that done, just to get everyone on the same page I'm currently working on getting subs get access to custom commands, which would allow us to get a functional !explain command,
Step 1 would be getting an OAuth token from Graham.

To be honest, that doesn't sound too likely (I wouldn't feel right asking for it, even)...
There is a plan B - an undocumented chat command interface that's used by the official web chat, which causes it to send information about subscribers (which the web chat uses to put the icons next to the names in chat). The downside is that, as it's undocumented, it's not super reliable (it could change without warning) and it has other effects too... for one, the server stops sending join/part notifications, so we'd have to analyse the irc bot framework to make sure that it would still be functional without those messages. And there's possibly other effects too.

That said, I think it would still be worth it, should we decide to make some command that should be sub-only. I'm just not planning to do it until we need it.

qrpth wrote:Are you cherry-picking commits from master to flask?

Yeah. There's probably better ways to do the merging back and forth, but I'm still kinda new to git, so for now I'm sticking with what works.

qrpth wrote:I have a VPS that is running a mail server and my personal website. If you want I can give you access so you can migrate the bot to it.

That could be great, thanks for the offer. Currently we're trying to wrangle the free 1-year trial from AWS, but if we can't figure that out, we may well take you up on that.

qrpth wrote:
Paul wrote:If there isn't an existing web app to do this, would is this something that would be relatively easy to build or integrate into LRRBot?
Pull request #3
Looks good... I'm half asleep right now, but I'll probably merge that tomorrow.

(Out of curiosity, is there any particular reason you use str.format over the % operator? Just personal preference, or is there something that makes it better? Myself, I just like the sprintf formatters...)
While no one overhear you quickly tell me not cow cow.
but how about watch phone?

[he/him/his]
User avatar
phlip
Posts: 1790
Joined: 24 Apr 2010, 17:48
First Video: Eternal Sonata (Unskippable)
Location: Australia

Re: LRRBot 2.0

Postby phlip » 16 Mar 2014, 01:45

Ratings merged... you can you use "!game good" and "!game bad" to declare your opinion of the game. Voting a second time replaces your previous vote. The votes will be tallied and a percentage displayed, which the host can then ignore. Or not, I guess, theoretically.
While no one overhear you quickly tell me not cow cow.
but how about watch phone?

[he/him/his]
User avatar
d3fr0st5
Posts: 22
Joined: 12 Mar 2014, 11:58
First Video: Scientist's Rebuttal to ICP
Location: The mysterious land of Toronto, Canada

Re: LRRBot 2.0

Postby d3fr0st5 » 17 Mar 2014, 16:01

Yeah getting OAuth was not the plan, it really doesn't feel right. As Phlip said TWITCHCLIENT 2 is what I'm trying to make work right now, though it's kinda finicky and I can't get it to work correctly.

Uhh, that's awesome for text commands!

And currently there appears to be an issue between my credit card and amazon -_- gonna stop by the bank sometime this week(hopefully when it's not -20c) to get a prepaid card to see if that does the trick
User avatar
phlip
Posts: 1790
Joined: 24 Apr 2010, 17:48
First Video: Eternal Sonata (Unskippable)
Location: Australia

Re: LRRBot 2.0

Postby phlip » 16 Apr 2014, 05:46

So, I'm working on building some more fanciness into the LRRBot website... first up, there now exists a page where you can update your good/bad votes for each game. When the stream is live, the currently-played game should be highlighted up the top.

Hopefully, this should cut down somewhat on noise in the channel, as there should be fewer people posting "!game good/bad". The command will still work in the chat, but this page on the website is also an option now.
While no one overhear you quickly tell me not cow cow.
but how about watch phone?

[he/him/his]
User avatar
AdmiralMemo
Posts: 7358
Joined: 27 Nov 2011, 18:29
First Video: Unskippable: Eternal Sonata
Location: Baltimore, Maryland, USA
Contact:

Re: LRRBot 2.0

Postby AdmiralMemo » 16 Apr 2014, 06:33

Also...

"Vote on whether you feel that each game is entertaining to watch on-stream."

This should cut down some of the questioning about what to do about things like "Prayer Warriors" where the game is bad, but the stream is funny as Image.

Question: If the voting is done from the voting page, does LRRBot still need a !stats command to update the rating on the stats page? And if it does need a refresh, what happens if you vote a game bad in the chat, then good on the page, and then !stats is sent? Even though "good" would be your later vote, would the chat vote of "bad" override it during the refresh?
Graham wrote:The point is: Nyeh nyeh nyeh. I'm an old man.
LRRcast wrote:Paul: That does not answer that question at all.
James: Who cares about that question? That's a good answer.

Image
User avatar
phlip
Posts: 1790
Joined: 24 Apr 2010, 17:48
First Video: Eternal Sonata (Unskippable)
Location: Australia

Re: LRRBot 2.0

Postby phlip » 16 Apr 2014, 07:02

"!stats" doesn't do anything any more except spit the link into the chat, same as "!help" or "!panic" or any of the other similar commands. The stats page pulls its data directly from the bot now that the web site and the bot are running on the same server.

Similarly, when you vote on a game on the website, that vote is sent directly to the bot, and its ratings are updated. This is why you have to log in via Twitch to get to the voting page on the site - so that if you vote on both the site and in chat, it knows they're both from the same person and can behave appropriately.
While no one overhear you quickly tell me not cow cow.
but how about watch phone?

[he/him/his]
User avatar
AdmiralMemo
Posts: 7358
Joined: 27 Nov 2011, 18:29
First Video: Unskippable: Eternal Sonata
Location: Baltimore, Maryland, USA
Contact:

Re: LRRBot 2.0

Postby AdmiralMemo » 16 Apr 2014, 07:51

Oh nice! Good to know! I'd been using !stats for a while to keep things refreshed.
Graham wrote:The point is: Nyeh nyeh nyeh. I'm an old man.
LRRcast wrote:Paul: That does not answer that question at all.
James: Who cares about that question? That's a good answer.

Image
User avatar
qrpth
Posts: 49
Joined: 13 Jul 2013, 13:07
First Video: iPotato
Contact:

Re: LRRBot 2.0

Postby qrpth » 16 Apr 2014, 09:16

Things that have happened with LRRBot since March:
  • moved to my VPS along with the website;
  • static commands are defined in the data file, adding them is now easier;
  • new website: statistics page is automatically updated, Twitch login for interacting with the bot outside of the chat, new design;
  • RSS feeds for past broacasts and highlights. This existed before the move but wasn't mentioned outside of Github's commit log;
  • stricter command parsing: `!stat set' used to complain about missing or noninteger arguments, now it is rejected during parsing;
  • statistics table can be sorted by an arbitrary column by clicking on that column's header.

2014-04-21: Mods can now add new commands and modify existing ones.

Code: Select all

< qrpth> !explain Desert Bus 2
<@​lrrbot> James Turner
User avatar
qrpth
Posts: 49
Joined: 13 Jul 2013, 13:07
First Video: iPotato
Contact:

Re: LRRBot 2.0

Postby qrpth » 23 Apr 2014, 05:50

Instructions page now lists all commands with timeouts.

Contrary to what you might have heard, EVERYTHING IS FINE!

Code: Select all

< qrpth> !explain Desert Bus 2
<@​lrrbot> James Turner
BlackDragonMTG
Posts: 49
Joined: 09 Feb 2014, 13:47
First Video: Friday Nights - Returns
Location: South Floriduh

Re: LRRBot 2.0

Postby BlackDragonMTG » 30 Jul 2014, 16:23

to add on the idea of what paul & memo was suggesting maybe we can do !stream funny !stream lame for the current game. allowing us to vote if we are enjoying the streaming of said game. Then we can have !game good/bad for the general game and !stream funny/lame for the general enjoyment of watching the game being played.

Also I didn't read through all the comments, but on the subject of !punt coming back. If it does I think it needs to be a mod only command to avoid randoms racking up our punt count to no end. This should help deter some of the issues even kenji had with the feature.

I do wish Wizards would consider looking in to a way to let streamers have some kind of voting system added in to their twitch streams as I believe it's an incredible feature for streaming and makes them more involved.
User avatar
d3fr0st5
Posts: 22
Joined: 12 Mar 2014, 11:58
First Video: Scientist's Rebuttal to ICP
Location: The mysterious land of Toronto, Canada

Re: LRRBot 2.0

Postby d3fr0st5 » 30 Jul 2014, 17:47

If the need arise we'll see about !stream X, there hasn't been a need for it yet.

I (someone else might) won't add !punt, as I feel it's a very subjective and doesn't add anything for the streamers themselves other than feel bad. If someone can bring a good reason why it would be positive I'm all hear.

Honestly with WotC current state on their digital product it might happen... in the next 4 years... LRRBot itself won't be involved in this until as we all know what happened with MTGOBot and I'd like to avoid that if at all possible.
User avatar
phlip
Posts: 1790
Joined: 24 Apr 2010, 17:48
First Video: Eternal Sonata (Unskippable)
Location: Australia

Re: LRRBot 2.0

Postby phlip » 30 Jul 2014, 18:17

I have no intention of adding !punt, mod-only or otherwise... experience with mtgbot and the like makes it clear that viewers tend to be over-eager to label any mistake, no matter how minor, as a "punt", so that they have the opportunity to use the command. We have the same thing happening with the !tilt command... people are willing to label any even slightly emotional outburst as a "tilt", even though that's not in any way what that word means.

A punt is not just a mistake... it's a mistake that could easily turn a game you won into a game you lost. Not necessarily strictly "a mistake that loses you the game" as Graham often puts it, but essentially the non-ROTty version of that - a mistake that could, in a reasonable situation, lose you the game. A tilt is not just getting a little angry... it's getting so angry that you can't focus on the game clearly, and start making misplays because you're more focused on the thing you're angry about than on your continuing play.

The other stat counters mostly don't the same problem, as they're more objective... we have to come to some decision about what counts as a "death" for each game, but once that's decided on it's pretty easy to keep track of. Flunges, crows, diamonds, screams, completed... all pretty straightforward. Pardons-fuck are super subjective, but by definition if someone thinks something is weird enough to count, then it counts.

In other, much happier, news... our good friend Featherweight has made a sweet logo for the bot, which now appears at the top of the webpage! I'm sure those claws are merely decorative, and nothing at all to be concerned about.

Now, I'm not saying that now all you Honeybot shippers now have something to base your fanart on, but I'm not not saying it...
While no one overhear you quickly tell me not cow cow.
but how about watch phone?

[he/him/his]
User avatar
d3fr0st5
Posts: 22
Joined: 12 Mar 2014, 11:58
First Video: Scientist's Rebuttal to ICP
Location: The mysterious land of Toronto, Canada

Re: LRRBot 2.0

Postby d3fr0st5 » 30 Jul 2014, 22:22

Glad that we're on the same page!

Also that artwork as I've said previously is fantastic!
User avatar
phlip
Posts: 1790
Joined: 24 Apr 2010, 17:48
First Video: Eternal Sonata (Unskippable)
Location: Australia

Re: LRRBot 2.0

Postby phlip » 10 Aug 2014, 04:38

OK, some tweaks to the "!next" command:
  • It now gets the events directly from the Google Calendar API, rather than downloading the calendar file and trying to figure it out itself. This should avoid those weird glitches that would happen sometimes where a regular stream is cancelled or moved for a week, and LRRbot would still respond with the old recurrence details, because it didn't properly handle the way Google did those overrides... and probably fixes other glitches too.
  • You can now specify a timezone, to get things in your local time... eg

    Code: Select all

    !next America/New_York
    Wikipedia has a comprehensive list of timezone names, but for the most part you can usually guess "Continent/Major_City".
  • There's now also a !nextfan command to pull from the Fan Streamer calendar. It should handle things like multiple events happening at once with some amount of grace, but let me know if it behaves weirdly.

    The !nextfan command will also include any streams that are currently running, which !next won't (it'll include streams that recently started, to behave as expected when streams are running late, but if you come in, say, 2 hours into a stream and !next then it won't report the stream you're looking at). This is based on the assumption that anyone in the Twitch chat knows if LRL is already streaming something, but would potentially want to know of any fan streams that are already in progress.

Additionally, I've started dumping my LRRbot todo list into the Github bugtracker... the previous plan of "some of the todo list is in a text file on my computer and the rest is just in my memory" was... less than ideal. Feel free to poke around in there, and add your own suggestions or bug reports if you have any. Or reply here in this thread if you'd prefer.
While no one overhear you quickly tell me not cow cow.
but how about watch phone?

[he/him/his]
User avatar
phlip
Posts: 1790
Joined: 24 Apr 2010, 17:48
First Video: Eternal Sonata (Unskippable)
Location: Australia

Re: LRRBot 2.0

Postby phlip » 13 Aug 2014, 03:52

This is quite a nice new feature that I'm kinda proud of (of the idea, I mean... qrpth wrote the actual code, which was neat, as the API to talk to Google Docs looks pretty horrifying).

Please don't spam the hell out of it and make me regret adding it :-/
While no one overhear you quickly tell me not cow cow.
but how about watch phone?

[he/him/his]
User avatar
AdmiralMemo
Posts: 7358
Joined: 27 Nov 2011, 18:29
First Video: Unskippable: Eternal Sonata
Location: Baltimore, Maryland, USA
Contact:

Re: LRRBot 2.0

Postby AdmiralMemo » 13 Aug 2014, 04:27

Yeah, that looks really cool, and I really hope it doesn't get abused.
Graham wrote:The point is: Nyeh nyeh nyeh. I'm an old man.
LRRcast wrote:Paul: That does not answer that question at all.
James: Who cares about that question? That's a good answer.

Image
User avatar
phlip
Posts: 1790
Joined: 24 Apr 2010, 17:48
First Video: Eternal Sonata (Unskippable)
Location: Australia

Re: LRRBot 2.0

Postby phlip » 17 Aug 2014, 05:47

In a collaboration effort between qrpth and myself, we now have the ability to watch stream archives with the chat right there! Currently it only works for the last couple of days' worth of streams (when we started logging the chat), but going forward it should be available for all streams! Highlights, too!

It loads up with the whole chat for the stream, and this can take a while to load (especially for 12hr streams), and then automatically scrolls to where it's supposed to be as the VOD plays. If you pause the VOD you'll be able to scroll up and down in the chat and read things, and then hit play and it'll snap back to where it belongs.

This is dealing with aspects of JS and CSS that I'm not super familiar with, so if you have any troubles with it let me know... but I've tested it in Firefox and Chrome and it seems to work for me...
While no one overhear you quickly tell me not cow cow.
but how about watch phone?

[he/him/his]
User avatar
Paul
Super Moderator
Posts: 1000576
Joined: 15 Apr 2005, 18:31
First Video: Tetris
Location: Victoria, BC

Re: LRRBot 2.0

Postby Paul » 26 Aug 2014, 21:23

Hey awesome lrrbot dudes,

As I believe I have mentioned on the stream, we are currently experimenting the XSplit Beta which has some cool new features that should make the various LRL overlays easier to setup. One of the new things it can do is pull content for a text field from a remote source. I was thinking that it would be neat to have the potential to incorporate various lrrbot info into the overlay (death count, storm count, next stream, good/bad votes, etc).

To make that happen, I would need some kind of url end point that outputs the desired info. I was thinking that, instead of making a bunch of different end points, maybe there could be a page that takes a query string of the command and outputs whatever the bot would have said in the chat. Eg. http://lrrbot.mrphlip.com/api?command=deathcount would return the current death count, http://lrrbot.mrphlip.com/api?command=next would return the next stream, and so on.

Do you think this would be possible/practical to do? Drop me an email or PM and we can talk about specific details.
User avatar
phlip
Posts: 1790
Joined: 24 Apr 2010, 17:48
First Video: Eternal Sonata (Unskippable)
Location: Australia

Re: LRRBot 2.0

Postby phlip » 13 Sep 2014, 09:43

So, thanks to qrpth, the bot now supports tracking of stats tied to different shows! Now, instead of having to have different game overrides when a game is played on multiple shows ("Dark Souls" vs "Stark Souls" vs "Dark Souls: Cam Edition" or whatever they were called), it will keep separate stat counts for each game. It also opens the door to some more varied stat charts on the web page, to see, say, the total death count for IDDQDerp as compared to the other shows, see how it really compares.

I'm still in talks with Paul to get some magic in the xsplit overlay setup to have it automatically tell the bot which show is currently live (eg, when the Things on My Stream overlay is loaded, have it send a signal to the bot that puts it into ToMS mode), but that doesn't exist just yet, so in the meantime, the mods are going to have to set it manually in the chat. And, in theory, you might need to override it if the automatic system ever gets it wrong (as you have to do with !game override from time to time).

The magic commands work similarly to !game:
!show - just say what show it is, in the chat, anyone can use this
!show override gplp - override what show it is, mod only
!show override off - cancel the override, mod only

The "!show override" command will only let you override the show with show codes that it recognises... if you try to use a show it doesn't recognise (or make a typo) then you'll get an error message.

The current list of recognised show codes is:
astc, backlog, bop, ckpt, crossing, gamehaus, gplp, house, iddqderp, james, kstw, lrrmtg, nope, things, watchplay
But this may change, if I change the codes for a show to match whatever IDs Paul uses for their internal system (as it would probably make things easier for him if they matched).
While no one overhear you quickly tell me not cow cow.
but how about watch phone?

[he/him/his]

Return to “General Discussion”



Who is online

Users browsing this forum: No registered users and 48 guests