pfaffle / rawrbot Goto Github PK
View Code? Open in Web Editor NEWAn IRC bot written in Ruby
An IRC bot written in Ruby
Would be nice to have some unit tests! I started looking at https://rubygems.org/gems/cinch-test/versions/0.1.1 a while ago, which might be useful for this.
Ruby 1.9 is getting old. Test Rawrbot in Ruby 2.1 and update any code that doesn't work with it.
Right now the bot just does whatever it is told, regardless of who is asking, as long as the command is valid. I would like to add some access controls for some of the functions (such as join/part, send message, etc.) so that only bot "admins" can tell the bot to use them.
The config file defines an array called "admins" which contains nicks of the people who should have access to more sensitive functions, but none of the plugins currently use that array to check if a user is authorized to perform those functions. This needs to be implemented.
The Social plugin is currently pretty minimal and could be expanded. Some potential features to add include:
This might require some additional intelligence in this plugin and/or the Learning plugin in order to better recognize which one of them should be triggered. It's also possible that both plugins might need to be merged.
When the bot tries to identify if it is being addressed by name, it should not be case-sensitive.
stenlai's infoobot entry is getting out of hand. I suggest adding a command that allows for archiving to Chronicle.
When adding onto a learning entry something that begins with a pipe '|' character, rawrbot should not prepend the entry with 'or' like it does normally. That way, you can easily continue to build off an existing entry that is purely made up of pipe-separated values. Example of desired behavior:
<pfaffle> rawrbot: literal foo
<rawrbot> foo =is= thing1|thing2
<pfaffle> rawrbot: foo is |thing3
<rawrbot> OK, pfaffle.
<pfaffle> rawrbot: literal foo
<rawrbot> foo =is= thing1|thing2|thing3
Current behavior after adding 'thing3' to the entry is:
<rawrbot> foo =is= thing1|thing2 or |thing3
The RT plugin stopped working a while ago on OIT's RT instance. This is a reminder to me to fix it.
Add commands to make the bot join or part a particular channel, e.g.
!join #channel [channelkey]
!part #channel
Right now, the prefix '!' for commands is hardcoded in a number of different places (plugins). These instances need to be removed and made to use the prefix defined in the main Rawrbot config file.
When fetching the title of a webpage, HttpTitle doesn't follow redirects (e.g. from http -> https URLs). It should.
The instructions fail to mention that rvm needs to be installed and configured to start running the bot.
If a user sends a private message to the bot, it should default to returning 'Learning' data to the user, unless the bot's prefix is detected.
For example, desired behavior would be (In a PM window with the bot):
<user> foo
<bot> foo is bar.
<user> !ldap bob
<bot> Performing LDAP search on bob...
...
The Twitter plugin is broken right now since it doesn't implement OAUTH and the Twitter v1.1 API. This needs to be updated to work.
With the plugins set to [Social,Messenger,Karma,Learning,GoogleRSS]
, which should mean that no LDAP configs are needed, I get the following error:
~/Rawrbot/lib/ldap_helper.rb:18:in `read': No such file or directory - config/ldap.yml (Errno::ENOENT)
from ~/Rawrbot/lib/ldap_helper.rb:18:in `initialize'
from ~/Rawrbot/plugins/USSCATldap_plugin.rb:23:in `new'
from ~/Rawrbot/plugins/USSCATldap_plugin.rb:23:in `<class:USSCATldap>'
from ~/Rawrbot/plugins/USSCATldap_plugin.rb:15:in `<top (required)>'
from ~/.rvm/rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `requ
ire'
from ~/.rvm/rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `requ
ire'
from ./rawrbot.rb:22:in `block in <main>'
from ./rawrbot.rb:21:in `each'
from ./rawrbot.rb:21:in `<main>'
<me> Rawrbottest
<Rawrbot> bugger all, I dunno
It should only trigger if there is a space between the bot's name and the thing being looked up
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.