2 # -*- encoding: utf-8 -*-
4 """ Configuration de Basile """
6 #: Faut-il débuguer sur la sortie standard par défaut ?
9 ## La config irc-related
10 #: Mot de passe NickServ. TODO : le mettre dans un secrets.py
11 irc_password
= "1iuh0HiJKWjuE"
14 #: Liste des channels à rejoindre
15 chanlist
= ["#bot", "#flood", "#bio", "#wikininja"]
16 #: Liste des channels à ne pas quitter
17 stay_channels
= ["#bot", "#flood"]
18 #: Liste des channels où se taire
21 #: Le template des noms de fichier de log
22 logfile_template
= "parrot.%s.log"
24 #: Les OVEROPs, tous les droits sur le bot
25 overops
=["[20-100]","[20-100]_c", "PEB"]
26 #: Les OPs, moins de droits que les OVEROPs
28 #: À qui s'adresser (par IRC) quand le bot rencontre une erreur
29 report_bugs_to
=["[20-100]"]
32 utf8_fail_answers
= [u
"« Encodings : you need to stop the pain » ~ Ned Batchelder"]
33 #: Doit-on râler en cas de fial d'UTF-8
37 tag_triggers
= [u
"t(|a)g", u
"ta gueule", u
"la ferme", u
"ferme( |-)la", u
"tais-toi", u
"chut", u
"tu fais trop de bruit", u
"tu parles trop"]
38 tag_actions
= [u
"ne citera plus"]
40 u
"« Un grand pouvoir implique de grandes responsabilités » ~ Oncle Ben.",
43 #: config on m'a demandé de mourir/partir
44 quit_messages
= [u
"« » ~ "]
45 leave_messages
= quit_messages
47 quit_fail_messages
= [u
" « Not today » ~ potato"]
48 leave_fail_messages
= quit_fail_messages
50 #: Aide sur les commandes
52 "help" : [u
"""HELP <commande>
53 Affiche de l'aide sur la commande""", None, None],
55 "join" : [None, u
"""JOIN <channel>
56 Me fait rejoindre le channel""", None],
58 "leave" : [None, u
"""LEAVE <channel>
59 Me fait quitter le channel (sauf s'il est dans ma stay_list).""", None],
61 "quiet" : [None, u
"""QUIET <channel>
62 Me rend silencieux sur le channel.""", None],
64 "noquiet" : [None, u
"""NOQUIET <channel>
65 Me rend la parole sur le channel.""", None],
67 "lost" : [None, u
"""LOST <channel>
68 Me fait perdre sur le channel.""", None],
70 "reload" : [None, u
"""RELOAD
71 Recharge la configuration.""", None],
73 "say" : [None, None, u
"""SAY <channel> <message>
74 Me fait parler sur le channel."""],
76 "do" : [None, None, u
"""DO <channel> <action>
77 Me fait faitre une action (/me) sur le channel."""],
79 "stay" : [None, None, u
"""STAY <channel>
80 Ajoute le channel à ma stay_list."""],
82 "nostay" : [None, None, u
"""NOSTAY <channel>
83 Retire le channel de ma stay_list."""],
85 "ops" : [None, None, u
"""OPS
86 Affiche la liste des ops."""],
88 "overops" : [None, None, u
"""OVEROPS
89 Affiche la liste des overops."""],
91 "kick" : [None, None, u
"""KICK <channel> <pseudo> [<raison>]
92 Kicke <pseudo> du channel (Il faut bien entendu que j'y sois op)."""],
94 "die" : [None, None, u
"""DIE
95 Me déconnecte du serveur IRC."""],
97 "crash" : [None, None, u
"""CRASH
101 Sauvegarde les quotes dans un fichier texte. (nécessite d'être OP en query, pas en public)""", None, None],
103 "restore" : [None, None, u
"""RESTORE
104 Remplace la QuoteDB par les quotes dans le fichier texte de dump.
105 (Les quotes depuis le dernier dump sont perdues)"""],
108 #: Message d'aide des !commandes
109 helpmsg_before
= u
"""Commandes accessibles sur un channel :
110 !quote : afficher une quote au hasard
111 !author <chose> : afficher les auteurs contenant <chose>
112 !author-reg <chose> : afficher les auteurs qui matchent la regexp ^<chose>$
113 !from/!from-reg <chose> : fait la même recher puis sélectionne au hasard une quote d'un des auteurs trouvés
114 !search/!search-reg <chose> : afficher une quote contenant <chose>/matchant ^<chose>$
116 Toutes les !commandes peuvent être précédée de context- pour afficher le contexte des quotes trouvées. (!context-quote, …)
117 (!context-search recherche aussi dans les contextes)
119 Commandes pour lesquelles il faut highlight le bot :
120 Parrot: display -> affiche l'url où est disponible le dernier dump des quotes.
121 Parrot: dump (cf HELP en query)
125 #: Message d'aide par défaut
126 helpmsg_default
= helpmsg_before
+ u
"Liste des commandes disponibles en privé :\nHELP DUMP"
127 #: Message d'aide par défaut à ajouter pour les OPs
128 helpmsg_ops
= u
" JOIN LEAVE QUIET NOQUIET RELOAD"
129 #: Message d'aide par défaut à ajouter pour les OVEROPs
130 helpmsg_overops
= u
" SAY DO STAY NOSTAY OPS OVEROPS KICK DIE CRASH RESTORE"
132 #: Liste de paires de masques ``[black, exceptlist]`` : on blacklistera ce qui match ``black``
133 #: et aucun élément de ``exceptlist``
134 blacklisted_masks
= [("Flo!*@*", [])]
136 #: Regexp pour le lieu et le quoter
137 quote_optionnal_fields
= ur
"(?:\|\s*(?P<place>[^|]+?)\s*(?:\|\s*(?P<quoter>[^|]+?)\s*)?)?"
139 #: Regexp utilisée pour parser des quotes
140 quote_regexp
= ur
"""\s*(?:"|«|')\s*(?P<content>.+?)\s*(?:"|»|')\s*~\s*(?P<author>[^|]+?)\s*%s(?:$|\n)""" % (quote_optionnal_fields
,)
142 #: Regexp utlisée pour parser une quote avec timestamp
143 quote_regexp_with_timestamp
= ur
"(?P<timestamp>.{19}) " + quote_regexp
145 #: Template pour afficher une quote
146 quote_template
= u
"« %(content)s » ~ %(author)s"
147 quote_template_withcontext
= u
"« %(content)s » ~ %(author)s | %(place)s"
149 #: Fichier pour stocker les quotes
150 quote_file
= u
"quotes.json"
152 #: Fichier pour exporter les quotes
153 quote_dump_file
= u
"quotes.txt"
155 #: URL où sont disponibles les quotes
156 quote_display_url
= u
"http://cerebro.crans.org/parrot-quotes.txt (campus-only)"
158 #: Suffixes qui font qu'une commande va utiliser des regexp
159 regex_suffixes
= ["-r", "reg", "-reg", "regex", "-regex", "regexp", "-regexp"]
161 #: Nombre maximum d'auteurs qu'on peut demander à afficher
162 search_max_authors
= 20