Commit a15e2604 authored by Benjamin Graillot's avatar Benjamin Graillot

Fix

parent da045dae
......@@ -43,12 +43,5 @@ class Bot(irc.bot.SingleServerIRCBot):
elif command[0].casefold() == "leave" and level >= 100:
for channel in command[1:]:
conn.part(channel, "Ce n'est qu'un au revoir")
elif command[0].casefold() == "on" and level >= 100:
for channel in command[1:]:
self.active.append(channel)
elif command[0].casefold() == "off" and level >= 100:
for channel in command[1:]:
if channel in self.active:
self.active.remove(channel)
else:
self.do_command_ext(conn, command, level, source)
......@@ -22,6 +22,57 @@ class Information(Enum):
required = 0
optional = 1
class Update(Enum):
edit = 0
rename = 1
attach = 2
delete_attach = 3
DEFAULT_SENDER = 'wiki@crans.org'
UPDATES = {
'wiki@crans.org' : (
# fonction de pré-traitement du mail
lambda mail: quopri.decodestring(email.message_from_bytes(mail.lines[1]).get_payload()).decode('utf-8').replace('\r', ''), {
Update.edit: (
lambda **kwargs: '\x0310,99{page}\x0f \x033,99{user}\x0f \x0399,99{comment}\x0f \x0315,99(r{rev})'.format(**kwargs) if kwargs['comment']\
else '\x0310,99{page}\x0f \x033,99{user}\x0f \x0315,99(r{rev})\x0f'.format(**kwargs),
'page', [
(Information.required, ['page', 'user'], r'La page « (?P<page>.*) » a été modifiée par (?P<user>.*) :'),
(Information.required, ['rev'], r'\?action=diff&rev1=[0-9]+&rev2=(?P<rev>[0-9]+)\n'),
(Information.optional, ['comment'], r'\s*Commentaire :\s*\n\s*(?P<comment>[^\n]*)\n')
]
),
Update.rename: (
lambda **kwargs: '\x0310,99{page}\x0f \x033,99{user}\x0f \x0399,99rename -->\x0f \x0310,99{new}\x0f \x0399,99{comment}\x0f'.format(**kwargs) if kwargs['comment']\
else '\x0310,99{page}\x0f \x033,99{user}\x0f \x0399,99rename -->\x0f \x0310,99{new}\x0f'.format(**kwargs),
'page', [
(Information.required, ['page', 'new', 'user'], r'La page « (?P<page>.*) » a été renommée « (?P<new>.*) » par (?P<user>.*) :'),
(Information.optional, ['comment'], r'\s*Commentaire :\s*\n\s*(?P<comment>[^\n]*)\n')
]
),
Update.attach: (
lambda **kwargs: '\x0310,99{page}\x0f \x033,99{user}\x0f \x0399,99ajout de la pièce jointe\x0f : \x0310,99{name}\x0f'.format(**kwargs),
'page', [
(Information.required, ['page', 'user'], r'vous vous êtes abonné aux notifications de changements pour la page "(?P<page>.*)"\.Une pièce jointe vient d\'y être ajouté par (?P<user>.*)\. Quelques détails sur la pièce jointe :'),
(Information.required, ['name'], r'Nom\s*:\s*(?P<name>[^\n]*)\n')
]
),
Update.delete_attach:(
lambda **kwargs: '\x0310,99{page}\x0f \x033,99{user}\x0f \x0399,99suppression de la pièce jointe\x0f : \x0310,99{name}\x0f'.format(**kwargs),
'page', [
(Information.required, ['page', 'user'], r'vous vous êtes abonné aux notifications de changements pour la page "(?P<page>.*)"\.Une pièce jointe de cette page vient d\'être supprimée par (?P<user>.*)\. Quelques détails sur la pièce jointe :'),
(Information.required, ['name'], r'Nom\s*:\s*(?P<name>[^\n]*)\n')
]
)
}
)
}
class Ninja(Bot):
def __init__(self):
Bot.__init__(self, "NinjaBot")
......@@ -110,57 +161,6 @@ class Ninja(Bot):
while t + 5 > time.time():
time.sleep(1)
class Update(Enum):
edit = 0
rename = 1
attach = 2
delete_attach = 3
DEFAULT_SENDER = 'wiki@crans.org'
UPDATES = {
'wiki@crans.org' : (
# fonction de pré-traitement du mail
lambda mail: quopri.decodestring(email.message_from_bytes(mail.lines[1]).get_payload()).decode('utf-8').replace('\r', ''), {
Update.edit: (
lambda **kwargs: '\x0310,99{page}\x0f \x033,99{user}\x0f \x0399,99{comment}\x0f \x0315,99(r{rev})'.format(**kwargs) if kwargs['comment']\
else '\x0310,99{page}\x0f \x033,99{user}\x0f \x0315,99(r{rev})\x0f'.format(**kwargs),
'page', [
(Information.required, ['page', 'user'], r'La page « (?P<page>.*) » a été modifiée par (?P<user>.*) :'),
(Information.required, ['rev'], r'\?action=diff&rev1=[0-9]+&rev2=(?P<rev>[0-9]+)\n'),
(Information.optional, ['comment'], r'\s*Commentaire :\s*\n\s*(?P<comment>[^\n]*)\n')
]
),
Update.rename: (
lambda **kwargs: '\x0310,99{page}\x0f \x033,99{user}\x0f \x0399,99rename -->\x0f \x0310,99{new}\x0f \x0399,99{comment}\x0f'.format(**kwargs) if kwargs['comment']\
else '\x0310,99{page}\x0f \x033,99{user}\x0f \x0399,99rename -->\x0f \x0310,99{new}\x0f'.format(**kwargs),
'page', [
(Information.required, ['page', 'new', 'user'], r'La page « (?P<page>.*) » a été renommée « (?P<new>.*) » par (?P<user>.*) :'),
(Information.optional, ['comment'], r'\s*Commentaire :\s*\n\s*(?P<comment>[^\n]*)\n')
]
),
Update.attach: (
lambda **kwargs: '\x0310,99{page}\x0f \x033,99{user}\x0f \x0399,99ajout de la pièce jointe\x0f : \x0310,99{name}\x0f'.format(**kwargs),
'page', [
(Information.required, ['page', 'user'], r'vous vous êtes abonné aux notifications de changements pour la page "(?P<page>.*)"\.Une pièce jointe vient d\'y être ajouté par (?P<user>.*)\. Quelques détails sur la pièce jointe :'),
(Information.required, ['name'], r'Nom\s*:\s*(?P<name>[^\n]*)\n')
]
),
Update.delete_attach:(
lambda **kwargs: '\x0310,99{page}\x0f \x033,99{user}\x0f \x0399,99suppression de la pièce jointe\x0f : \x0310,99{name}\x0f'.format(**kwargs),
'page', [
(Information.required, ['page', 'user'], r'vous vous êtes abonné aux notifications de changements pour la page "(?P<page>.*)"\.Une pièce jointe de cette page vient d\'être supprimée par (?P<user>.*)\. Quelques détails sur la pièce jointe :'),
(Information.required, ['name'], r'Nom\s*:\s*(?P<name>[^\n]*)\n')
]
)
}
)
}
@asyncio.coroutine
def idle_loop(host, user, password, ninja):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment