traverseda / rratbot Goto Github PK
View Code? Open in Web Editor NEWThe bot for the /r/rational discord channel
License: GNU Affero General Public License v3.0
The bot for the /r/rational discord channel
License: GNU Affero General Public License v3.0
@Xavion3 , figured I'd ping you on this. It might be a better place to discuss it than the chat.
I figure the first step to getting list comprehensions working is making the existing dice function return a list of numbers, and have everything else work relatively gracefully with that.
It might be time to start thinking about numpy. Having arrays as a native datatype enables stuff like matrix multiplication, which numpy would benifit.
Spawn a new process for each request.
Implement a voting system that uses anon votes.
I would like it to auto-emote so that people can click emote options, along with voting via PM/channel msg.
The ability to purge a channel every so often.
It has come to our attention that 5*5*5
renders as 555 in discord.
Supporting expressions wrapped in
```Code blocks```
`code block`
would make it a lot easier to have pretty input.
Some work has been done on the multiprocessing branch. Should do exactly what is says on the tin, spawn the parser in a subprocess using multiprocessing and kill the subprocess if it's still running after 10-ish seconds.
Right now that's mostly working, but the subprocess is never returning for some bizarre reason.
We initially tried to implement chat bridging by simply running matterbridge. We ran into some technical issues that looked like they'd take more time than simply implementing the required functionality ourselves in python, especially as we don't seem to have any competent golang developers volunteering their time.
It was determined that python, although less performant, is probably a better tool for the kind of text-munging and data-processing that this project need. Python 3.6's asyncio framework removes a lot of the issues with writing chat bots/interfaces in python. It also has mature libraries for accessing most of the services we need to.
Integrating and standardizing the featuresets of many distinct chat clients is hard, but there's one project that has made an effort to do exactly that. Jabber/XMPP. It also "represents some of the worst excesses of the XML mindset" according to some. It has not been a popular protocol and has many detractors. Still, it seems like the best thing going, and the python bindings are mature enough to mostly abstract the pains of XML away.
Our intent is to implement an interface (a "server component") to these various servers, using the sleekxmpp library. The XMPP standard uses nested "servers", or server components, to implement much of it's functionality. Even something as simple as chat-rooms normally goes on a sub-domain.
This kind of architecture is crazy, and bad, and horrible UX. But it does allow us a ridiculous amount of flexibility. We act as a registry, but the actual bridge could be entirely controlled by the server in question. Or written in entirely different languages.
XMPP provides a standard spec that all bots must conform to.
Delete a user comment and repost as rot13
?roll 2 +3
Returns 2
?roll 2+ 3
Fails due to + with only a left operand
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.