nemunaire / nemubot Goto Github PK
View Code? Open in Web Editor NEWNemubot is a smart and modulable IM bot.
License: GNU Affero General Public License v3.0
Nemubot is a smart and modulable IM bot.
License: GNU Affero General Public License v3.0
!start foobar "21/06/2013 01:23:45"
foobarr commencé le Tuesday 06 November 2012 a 15:35:22 et se terminera le Friday 21 June 2013 a 00:00:00
Add a possibility to view all the event that have been started and are currently running/awaiting by the current requester.
In prompt, context (use of SELECT
command) can be given as first argument.
As code is duplicated between function, using a decorator could avoid duplication.
Combine !start and !sms, send an !sms when the !start times out.
Add a new command !subreddit to get the summary of the subreddit (displayed on the right side of the page).
Add a new !imdb command.
It should be possible to specify what type of information we want:
!imdb fringe year
!imdb fringe seasons
or else, which gives specific information. When no parameter is specified, it should just answer with the short description of the movie (or series or actor).
For example, I am supersheep:
!start "supercow: eat lawn" 5m
5 minutes after, nemubot says:
supercow: eat lawn arrivé à échéance
instead of:
supersheep: supercow: eat lawn arrivé à échéance
!start "my countdown" 1h;2h;3h
On !isup epita.fr:
urllib.error.HTTPError: HTTP Error 403: Forbidden
ERROR: occurred during the processing of the message: b':someone![email protected] PRIVMSG #channel :!unwatch url://\r'
Traceback (most recent call last):
File "/home/nemunaire/workspace/nemubot/consumer.py", line 90, in run
res = self.treat_in(context, msg)
File "/home/nemunaire/workspace/nemubot/consumer.py", line 51, in treat_in
return context.treat_irc(msg, self.srv)
File "/home/nemunaire/workspace/nemubot/bot.py", line 380, in treat_irc
res = h.run(msg, srv, msg.cmd)
File "/home/nemunaire/workspace/nemubot/hooks.py", line 206, in run
return call(msg, data2)
File "/home/nemunaire/workspace/nemubot/bot.py", line 446, in treat_prvmsg
return self.treat_cmd(msg, srv)
File "/home/nemunaire/workspace/nemubot/bot.py", line 466, in treat_cmd
res = h.run(msg, strcmp=msg.cmds[0])
File "/home/nemunaire/workspace/nemubot/hooks.py", line 202, in run
return call(msg)
File "/home/nemunaire/workspace/nemubot/modules/watchWebsite/init.py", line 72, in del_site
del_event(site["_evt_id"])
File "/home/nemunaire/workspace/nemubot/importer.py", line 159, in
module.del_event = lambda evt: self.context.add_event(evt, module_src=module)
File "/home/nemunaire/workspace/nemubot/bot.py", line 115, in add_event
now.second)
AttributeError: 'str' object has no attribute 'id'
« » ×
De rien.
There are some major issues on some wikipedia requests, for example: "!w phobos (lune)", which does not give the expected answer but "{{Planète mineure court" instead.
!curly, equivalent of curl -I
, and print the new location if it encounters a redirect status code.
save module [module,...]
This command save the given module.
Catch errors in two places : in the Atom parser and in the event callback
Chaîne reconnue : 11/8/1912 None:None:None
[birthday] Saving!
ERROR: occurred during the processing of the message: b':[email protected] PRIVMSG #*** :!anniv'
Traceback (most recent call last):
File "/home/nemunaire/nemubot/server.py", line 234, in treat_msg
msg.treat (self.mods)
File "/home/nemunaire/nemubot/message.py", line 154, in treat
self.parsemsg (mods)
File "/home/nemunaire/nemubot/message.py", line 301, in parsemsg
if im.has_access(self) and im.parseanswer(self):
File "/home/nemunaire/nemubot/modules/birthday.py", line 48, in parseanswer
tyd = DATAS.index[name].getDate("born")
AttributeError: 'datetime.datetime' object has no attribute 'getDate'```
Add a way to see the registered coordinates for a city in the !météo module
We can create aliases for aliases, but they don't work.
If someone says: Blablabla
!wa 21+21 !
Nemubot should respond.
!listalias nick (or !list alias nick) to get the list of the aliases defined by specified user.
Record an history of the n highest winning scores for the 42 game and display it with !42 highscore or !42 scoreboard.
!spell testé
suggestions pour `testé' : test, tests, t'est, testa, teste, testé, est, d'est, lest, t'es-tu, t'eut, t'eût, c'est, l'est, m'est, n'est, s'est
The time used in the !meteo module should probably be the local time of queried country/city.
The goal is to change a part of the topic regarding to an event, regularly.
Document the different commands each module (and the core?) provides, as well as a short description, and provide a !help or similar to list the commands available and their description
And alert when a event comes.
!ping, !whois, ...
For example:
!goûter
and !google
Perhaps: !some ; cmd1;cmd2
or !cmds ; cmd1;cmd2
With first arg: the separator.
All others args are grouped (merge spaces), then splitted with the separator.
If the first arg is longer than one character, assume we are in a special case where the separator is the space character: !cmds !google !goûter
.
The cristal notifications always send « None » instead of the mission's description.
To prevent flood, nemubot should talk only through DCC.
!wa does not support currency exchange rate anymore, a new module dedicated to that is needed.
Currently, page with the same check interval are check at the same time.
nemubot§ top
Shows number of message in pool, number of launched threads, ...
Currently, to add a hook, we have to create a Hook
and call the magic add_hook
with cryptic parameters.
For static hooks (not defined by users through the module), a more simple syntax should be usable, based on Python decorators:
@hook(type="im_cmd", help="say hello to the user")
def hello(msg):
return Message("Hello " + msg.sender)
This command should answer which user created it (many modules has to be asked).
A fallback message could be sent if no module catch the command.
It would have to listen itself
!ud: a module for the urban dictionnary
Reinterpret and substitute commands in `` (or $()
, or whatever) as new commands.
ex:
!wa
!wa 42+1337
km to newton²
!météo!wa gps coordinates Saint-Amant-sur-Fion
!startsms "bus:!ratp 131 "Les Dalias" "Porte d'Italie"
" 30m
Let any user create a recurring event setting the frequency of the event and it's title/sentence.
I can't start an event for 1h23 for example.
A !météo city
should ask a weather website to indicate the current weather and previsions.
Try to extract data from http://france.meteofrance.com/france/meteo?PREVISIONS_PORTLET.path=previsionspluie
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.