]> gitweb.pimeys.fr Git - bots/parrot.git/blob - config.py
Changement d'ops
[bots/parrot.git] / config.py
1 #!/usr/bin/python
2 # -*- encoding: utf-8 -*-
3
4 """ Configuration de Basile """
5
6 #: Faut-il débuguer sur la sortie standard par défaut ?
7 debug_stdout = True
8
9 ## La config irc-related
10 #: Mot de passe NickServ. TODO : le mettre dans un secrets.py
11 irc_password = "1iuh0HiJKWjuE"
12 #: Pseudo IRC
13 irc_pseudo = "Parrot"
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
19 quiet_channels = []
20
21 #: Le template des noms de fichier de log
22 logfile_template = "parrot.%s.log"
23
24 #: Les OVEROPs, tous les droits sur le bot
25 overops=["[20-100]","[20-100]_p"]
26 #: Les OPs, moins de droits que les OVEROPs
27 ops=["Chopopope", "PEB"]
28 #: À qui s'adresser (par IRC) quand le bot rencontre une erreur
29 report_bugs_to=["[20-100]"]
30
31 #: config UTF8-fail
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
34 utf8_trigger = True
35
36 #: config "tais-toi"
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"]
39 tag_answers = [
40 u"« Un grand pouvoir implique de grandes responsabilités » ~ Oncle Ben.",
41 ]
42
43 #: config on m'a demandé de mourir/partir
44 quit_messages = [u"« » ~ "]
45 leave_messages = quit_messages
46
47 quit_fail_messages = [u" « Not today » ~ potato"]
48 leave_fail_messages = quit_fail_messages
49
50 #: Aide sur les commandes
51 helpdico = {
52 "help" : [u"""HELP <commande>
53 Affiche de l'aide sur la commande""", None, None],
54
55 "join" : [None, u"""JOIN <channel>
56 Me fait rejoindre le channel""", None],
57
58 "leave" : [None, u"""LEAVE <channel>
59 Me fait quitter le channel (sauf s'il est dans ma stay_list).""", None],
60
61 "quiet" : [None, u"""QUIET <channel>
62 Me rend silencieux sur le channel.""", None],
63
64 "noquiet" : [None, u"""NOQUIET <channel>
65 Me rend la parole sur le channel.""", None],
66
67 "lost" : [None, u"""LOST <channel>
68 Me fait perdre sur le channel.""", None],
69
70 "reload" : [None, u"""RELOAD
71 Recharge la configuration.""", None],
72
73 "say" : [None, None, u"""SAY <channel> <message>
74 Me fait parler sur le channel."""],
75
76 "do" : [None, None, u"""DO <channel> <action>
77 Me fait faitre une action (/me) sur le channel."""],
78
79 "stay" : [None, None, u"""STAY <channel>
80 Ajoute le channel à ma stay_list."""],
81
82 "nostay" : [None, None, u"""NOSTAY <channel>
83 Retire le channel de ma stay_list."""],
84
85 "ops" : [None, None, u"""OPS
86 Affiche la liste des ops."""],
87
88 "overops" : [None, None, u"""OVEROPS
89 Affiche la liste des overops."""],
90
91 "kick" : [None, None, u"""KICK <channel> <pseudo> [<raison>]
92 Kicke <pseudo> du channel (Il faut bien entendu que j'y sois op)."""],
93
94 "die" : [None, None, u"""DIE
95 Me déconnecte du serveur IRC."""],
96
97 "crash" : [None, None, u"""CRASH
98 Me fait crasher"""],
99
100 "dump" : [u"""DUMP
101 Sauvegarde les quotes dans un fichier texte. (nécessite d'être OP en query, pas en public)""", None, None],
102
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)"""],
106 }
107
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>$
115
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)
118
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)
122
123 """
124
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"
131
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!*@*", [])]
135
136 #: Regexp pour le lieu et le quoter
137 quote_optionnal_fields = ur"(?:\|\s*(?P<place>[^|]+?)\s*(?:\|\s*(?P<quoter>[^|]+?)\s*)?)?"
138
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,)
141
142 #: Regexp utlisée pour parser une quote avec timestamp
143 quote_regexp_with_timestamp = ur"(?P<timestamp>.{19}) " + quote_regexp
144
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"
148
149 #: Fichier pour stocker les quotes
150 quote_file = u"quotes.json"
151
152 #: Fichier pour exporter les quotes
153 quote_dump_file = u"quotes.txt"
154
155 #: URL où sont disponibles les quotes
156 quote_display_url = u"http://cerebro.crans.org/parrot-quotes.txt (campus-only)"
157
158 #: Suffixes qui font qu'une commande va utiliser des regexp
159 regex_suffixes = ["-r", "reg", "-reg", "regex", "-regex", "regexp", "-regexp"]
160
161 #: Nombre maximum d'auteurs qu'on peut demander à afficher
162 search_max_authors = 20