Skip to content
This repository was archived by the owner on May 15, 2026. It is now read-only.

Day 6: Conclusion

Jake Gaylor edited this page Apr 24, 2015 · 7 revisions

StatBot was a wild ride. I set out to build a chat bot for League of Legends and some web tooling around it to help support some more complicated features. I released a mostly working prototype after 4 days and it received hundreds of users, processed thousands of requests, and was seen by tens of thousands. In my opinion, StatBot's launch was a success and there is evidence that LoL players would like for it to exist. However, a Riot employee pointed out what several Reditters had already mentioned... that Riot took a hard stance about 2 months ago that apps would not be given an API key if they are also connecting the XMPP chat service. I will reach out to Riot to let them know about my tool and request an API token but I don't expect that they will chance their stance or make an exception.

Next time, I'll do a few things differently. I now know how important complete logging is to quickly debugging issues. I also know to make sure that events sent to an analytics service like Mixpanel need to include a full compliment of data points as well as be consistent across event types and variations. I'm missing a whole lot of data that I could have captured if I had prepared properly. Fuzzy name matching was also a particular mess. It was a good idea but counter vi would return a lit of champions containing vi even though it was a valid name.

My biggest mistake of course was not checking with Riot to ensure my application was acceptable. I did that research a while back, but since then Riot has changed their stance towards applications like mine. Of course, if I had checked first, there might not now exist this example code base and wiki, so maybe it wasn't such a mistake after all. From reading their developer docs on getting started there isn't really an indication that I needed any other type of key, just that I would be rate limited.

There were some parts of this project that I particularly enjoyed. I'd never launched a consumer facing product before. Everything in my background had been b2e or b2b for StatBot. The thrill of seeing thousands of people trigger analytics, getting tons of email addresses from strangers wanting to learn more and having scale up servers due to overusage was huge. I spent a whole day grinning that others found something I built useful. On a more technical note I thought it was a lot of run reverse engineering Riot's XMPP usage and hijacking hubot-xmpp so that I didn't have to fork it to add a simple change specific to my particular hubot.

DataSource and Command stick out as the piece that I like most about the project. The two together give the ability to build a data layer on top of disparate sources and then execute queries on those data sets without wasting io time. Regardless of the whether Riot allows me to continue developing StatBot, I will be abstracting the code necessary to power the DataSource/Command layer's use in other applications. To facilitate using it behind another api (a proxy server), I'll find a way to easily bind commands to an express router.

This is the end of story... for now. I hope it will continued soon. Until then, Good Luck. Have Fun!

Clone this wiki locally