easterobot 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- easterobot/__init__.py +19 -0
- easterobot/__main__.py +6 -0
- easterobot/bot.py +584 -0
- easterobot/cli.py +127 -0
- easterobot/commands/__init__.py +28 -0
- easterobot/commands/base.py +171 -0
- easterobot/commands/basket.py +99 -0
- easterobot/commands/disable.py +29 -0
- easterobot/commands/edit.py +68 -0
- easterobot/commands/enable.py +35 -0
- easterobot/commands/help.py +33 -0
- easterobot/commands/reset.py +121 -0
- easterobot/commands/search.py +127 -0
- easterobot/commands/top.py +105 -0
- easterobot/config.py +401 -0
- easterobot/info.py +18 -0
- easterobot/logger.py +16 -0
- easterobot/models.py +58 -0
- easterobot/py.typed +1 -0
- easterobot/resources/config.example.yml +226 -0
- easterobot/resources/credits.txt +1 -0
- easterobot/resources/eggs/egg_01.png +0 -0
- easterobot/resources/eggs/egg_02.png +0 -0
- easterobot/resources/eggs/egg_03.png +0 -0
- easterobot/resources/eggs/egg_04.png +0 -0
- easterobot/resources/eggs/egg_05.png +0 -0
- easterobot/resources/eggs/egg_06.png +0 -0
- easterobot/resources/eggs/egg_07.png +0 -0
- easterobot/resources/eggs/egg_08.png +0 -0
- easterobot/resources/eggs/egg_09.png +0 -0
- easterobot/resources/eggs/egg_10.png +0 -0
- easterobot/resources/eggs/egg_11.png +0 -0
- easterobot/resources/eggs/egg_12.png +0 -0
- easterobot/resources/eggs/egg_13.png +0 -0
- easterobot/resources/eggs/egg_14.png +0 -0
- easterobot/resources/eggs/egg_15.png +0 -0
- easterobot/resources/eggs/egg_16.png +0 -0
- easterobot/resources/eggs/egg_17.png +0 -0
- easterobot/resources/eggs/egg_18.png +0 -0
- easterobot/resources/eggs/egg_19.png +0 -0
- easterobot/resources/eggs/egg_20.png +0 -0
- easterobot/resources/logging.conf +47 -0
- easterobot/resources/logo.png +0 -0
- easterobot-1.0.0.dist-info/METADATA +242 -0
- easterobot-1.0.0.dist-info/RECORD +48 -0
- easterobot-1.0.0.dist-info/WHEEL +4 -0
- easterobot-1.0.0.dist-info/entry_points.txt +2 -0
- easterobot-1.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,226 @@
|
|
1
|
+
token: YOU_MUST_PUT_YOUR_TOKEN_HERE
|
2
|
+
owner_is_admin: true
|
3
|
+
use_logging_file: true
|
4
|
+
working_directory: null
|
5
|
+
admins: []
|
6
|
+
resources: null
|
7
|
+
logs:
|
8
|
+
path: ./logs
|
9
|
+
level: INFO
|
10
|
+
database: sqlite+aiosqlite://%(data)s/easterobot.db
|
11
|
+
group: egg
|
12
|
+
hunt:
|
13
|
+
timeout: 300.0
|
14
|
+
cooldown:
|
15
|
+
min: 1200.0
|
16
|
+
max: 3000.0
|
17
|
+
weights:
|
18
|
+
egg: 0.4
|
19
|
+
speed: 0.4
|
20
|
+
commands:
|
21
|
+
search:
|
22
|
+
discovered:
|
23
|
+
shield: 5
|
24
|
+
min: 0.5
|
25
|
+
max: 0.8
|
26
|
+
spotted:
|
27
|
+
shield: 10
|
28
|
+
min: 0.4
|
29
|
+
max: 0.7
|
30
|
+
cooldown: 600.0
|
31
|
+
top:
|
32
|
+
cooldown: 10.0
|
33
|
+
basket:
|
34
|
+
cooldown: 10.0
|
35
|
+
reset:
|
36
|
+
cooldown: 120.0
|
37
|
+
enable:
|
38
|
+
cooldown: 10.0
|
39
|
+
disable:
|
40
|
+
cooldown: 10.0
|
41
|
+
help:
|
42
|
+
cooldown: 10.0
|
43
|
+
edit:
|
44
|
+
cooldown: 30.0
|
45
|
+
conjugation:
|
46
|
+
e:
|
47
|
+
woman: "e"
|
48
|
+
iel:
|
49
|
+
man: "il"
|
50
|
+
woman: "elle"
|
51
|
+
le:
|
52
|
+
man: "le"
|
53
|
+
woman: "la"
|
54
|
+
lui:
|
55
|
+
man: "lui"
|
56
|
+
woman: "elle"
|
57
|
+
failed:
|
58
|
+
- "Malheureusement, tu n'as pas réussi à trouver d'œufs cette fois-ci. Tu auras plus de chance la prochaine fois !"
|
59
|
+
- "Tu n'as pas eu de chance cette fois-ci, mais ne te décourage pas ! Continue de chercher des œufs."
|
60
|
+
- "Dommage, tu n'as pas trouvé d'œufs, mais ne t'inquiète pas, il y en aura en sûrement plus loin."
|
61
|
+
- "Tu as cherché partout, mais malheureusement, tu n'as pas trouvé d'œufs. Essaie plus tard !"
|
62
|
+
- "Tu n'as pas réussi à trouver d'œufs. Continue de chercher, peut-être que la prochaine fois sera la bonne !"
|
63
|
+
- "Tu n'as pas eu de chance cette fois-ci, mais garde espoir ! Les œufs peuvent être difficiles à trouver, mais c'est ce qui rend le jeu intéressant."
|
64
|
+
- "Il semble que tu n'aies pas réussi à trouver d'œufs, mais ne te décourage pas. Essaie de nouvelles stratégies et continue de chercher !"
|
65
|
+
- "Tu as cherché partout, mais malheureusement, tu n'as pas réussi à trouver d'œufs cette fois-ci. Ne baisse pas les bras !"
|
66
|
+
- "Tu n'as pas trouvé d'œufs. Mais ne t'inquiète pas, il y aura de nouvelles occasions de jouer et de trouver des œufs dans le futur."
|
67
|
+
- "Tu n'as pas eu de chance cette fois-ci, mais rappelle-toi que l'important est de s'amuser en cherchant les œufs. Continue de jouer et tu finiras par trouver des œufs !"
|
68
|
+
- "Eh bien, ça y est, tu as fouillé tous les recoins et malheureusement, il n'y a pas d'œufs à l'horizon. Il semblerait que tu sois plus malchanceux qu'un chat noir."
|
69
|
+
- "Tu as exploré tous les recoins et les fissures, mais il n'y a pas d'œufs à trouver. C'est comme si tu cherchais une aiguille dans une botte de foin."
|
70
|
+
- "Hélas, tu n'as pas réussi à dénicher d'œufs. Mais garde le moral, tu es aussi tenace que Rocky Balboa."
|
71
|
+
- "Malheureusement, tu n'as rien trouvé. C'est comme si tu cherchais une licorne dans un champ de pâquerettes."
|
72
|
+
- "Tu as cherché partout, mais il n'y a pas d'œufs à l'horizon. Tu dois être plus malchanceux que le personnage principal dans un film d'horreur."
|
73
|
+
- "Tu as cherché avec acharnement, mais il n'y a pas d'œufs, tu n'es pas dans Harry Potter où la baguette magique résout tout."
|
74
|
+
- "Il semblerait que tu aies manqué les œufs cette année, mais ne t'en fais pas, tu peux toujours essayer de trouver la fontaine de Jouvence comme Jack Sparrow."
|
75
|
+
- "Tu as cherché avec acharnement, mais il n'y a pas d'œufs ici, ils ont probablement été dévorés par les dragons de Pâques affamés."
|
76
|
+
- "Malheureusement, tu n'as trouvé aucun œuf, mais ne sois pas triste, tu as quand même réussi à éviter les lapins maléfiques de Pâques."
|
77
|
+
- "Désolé, tu as beau chercher, il n'y a pas d'œufs ici, tu n'es pas dans un film de Willy Wonka."
|
78
|
+
- "Tu cherches des œufs ici ? Mauvaise pioche, il n'y en a pas, juste toi et moi."
|
79
|
+
- "Pas d'œufs ici, mais si tu trouves un trèfle à quatre feuilles, je te fais une récompense surprise."
|
80
|
+
- "Tu cherches des œufs ? Pas de chance, je crois que le lapin les a tous gardés pour lui cette année."
|
81
|
+
- "Je ne veux pas te casser le moral, mais il n'y a pas d'œufs ici, juste des pixels vides et de la tristesse."
|
82
|
+
hidden:
|
83
|
+
- "Bravo, aventurier! Tu as trouvé un œuf perdu depuis des siècles. Il était temps de le remettre à sa place dans le panier !"
|
84
|
+
- "Félicitations, tu as battu les lapins de Pâques à leur propre jeu en trouvant un œuf perdu. Pas mal pour un humain !"
|
85
|
+
- "Ah, tu as trouvé un œuf ! C'est une bonne chose que les lapins de Pâques ne t'ais pas attrapé avant que tu ne le trouves !"
|
86
|
+
- "Tu as découvert un œuf ! Tu devrais peut-être envisager de t'inscrire aux Jeux Olympiques de la Chasse aux œufs !"
|
87
|
+
- "Tu es un vrai Sherlock Holmes des œufs de Pâques ! Maintenant, si seulement tu pouvais résoudre le mystère de qui a mangé tous les chocolats de Pâques..."
|
88
|
+
- "Génial ! Tu as trouvé un œuf caché. Il est maintenant temps de te faire une omelette géante au chocolat pour célébrer ta victoire !"
|
89
|
+
- "Félicitations ! Tu as mis la main sur un œuf, tu es un héros ! Maintenant, tu as le droit de t'en vanter auprès de tous tes amis."
|
90
|
+
- "Bien joué, tu as réussi à trouver un œuf ! C'est l'œuf le plus chanceux du monde car il a été trouvé par toi !"
|
91
|
+
- "Oh là là, regarde qui est un chasseur d'œufs professionnel maintenant ! Bon boulot, mon ami !"
|
92
|
+
- "Quelqu'un a appelé les chasseurs de trésors ? Tu viens de trouver un œuf, félicitations !"
|
93
|
+
- "J'espère que tu as un beau panier pour ranger ton nouvel œuf - c'est vraiment la perle rare !"
|
94
|
+
- "Bravo ! Tu as remporté la chasse aux œufs ! Maintenant, prépare-toi à gagner une autre compétition contre tes confrères..."
|
95
|
+
- "Le lapin de Pâques serait fier de toi ! Tu as trouvé un œuf comme un pro."
|
96
|
+
- "Les cloches de Pâques ont sonné, et tu as répondu à l'appel ! Félicitations pour ta nouvelle trouvaille !"
|
97
|
+
- "Tu viens de battre le record de la chasse aux œufs la plus rapide ! Tu as gagné un œuf en chocolat - et l'admiration éternelle."
|
98
|
+
- "Qui a besoin d'un détecteur de métaux quand on t'a ? Tu as trouvé un œuf comme un vrai chasseur de trésors !"
|
99
|
+
- "Incroyable! Tu viens de gagner le grand prix de la chasse aux œufs - un grand sourire sur ton visage et une réserve infinie de bonheur sucré."
|
100
|
+
- "Alors, comment se sent-on d'être le maître de la chasse aux œufs ? Tu vas pouvoir le célébrer avec une bonne dose de chocolat et de joie !"
|
101
|
+
- "Wow, c'est incroyable ! Tu as découvert un œuf caché à la perfection. Tu pourrais peut-être envisager de travailler pour la DGSE."
|
102
|
+
spotted:
|
103
|
+
- "Oh là là, {user} a mis la main sur un œuf très convoité ! Mais attention, les autres joueurs ont l'air de flairer la bonne affaire !"
|
104
|
+
- "Bien joué, {user} ! Mais ne te repose pas sur tes lauriers, car tes adversaires ont l'air de vouloir te piquer ton trésor chocolaté !"
|
105
|
+
- "Hé hé, {user} a trouvé un œuf par hasard ! Mais il faut faire attention aux autres joueurs qui ont l'air de vouloir jouer les voleurs !"
|
106
|
+
- "Ah, voilà {user} qui a réussi à dénicher un œuf ! Mais il devrait faire attention, car les autres joueurs sont aux aguets et ont repéré sa trouvaille !"
|
107
|
+
- "Bravo, {user} ! Mais il ne faudrait pas que tu te fasses voler ton œuf par les autres joueurs qui ont l'air de t'observer avec gourmandise !"
|
108
|
+
- "Hourra ! {user} a trouvé un œuf ! Mais maintenant, il doit faire face aux autres joueurs qui ont le regard affûté et les doigts prêts à l'attraper. C'est le moment de sortir tes mouvements ninja pour garder ton précieux œuf !"
|
109
|
+
- "Bien joué, {user} ! Tu as mis la main sur un œuf tant convoité. Mais n'oublie pas, les autres joueurs sont à tes trousses et sont prêts à tout pour mettre la main dessus. Esquive, plonge et cours, et garde ton œuf en sécurité !"
|
110
|
+
- "Félicitations, {user}, tu as remporté la chasse à l'œuf ! Mais maintenant, les autres joueurs sont à tes trousses et prêts à tout pour le récupérer. Garde un œil sur tes arrières et montre-leur qui est {le} boss de la chasse aux œufs !"
|
111
|
+
- "Félicitations {user} ! Tu as trouvé un œuf tant convoité ! Cependant, tu n'es pas seul dans ce jeu, et tes ennemis t'ont déjà repéré. Attention, ça risque de devenir une chasse aux œufs plutôt agressive !"
|
112
|
+
- "Hé {user}, Tu es un{e} vrai Sherlock Holmes ! Tu as réussi à trouver un œuf, mais tes adversaires ont flairé le coup et ils sont en route pour le prendre ! Prépare-toi à défendre ton butin de toutes tes forces !"
|
113
|
+
- "Oh là là, {user} ! Tu as réussi à trouver un œuf ! C'est vraiment incroyable ! Malheureusement, tes adversaires sont très jaloux de ta réussite, et ils vont tout faire pour te dépouiller. Sois sur tes gardes et va chercher ton trésor !"
|
114
|
+
- "Bravo {user} ! Tu as trouvé un œuf ! Mais ne te repose pas sur tes lauriers, car les autres joueurs vont tout faire pour le voler ! Si tu veux le garder, il va falloir être plus rapide, plus malin et plus rusé{e} qu'eux !"
|
115
|
+
- "Incroyable {user} ! Tu as trouvé un œuf ! Mais attention, tes adversaires sont déjà en train de te traquer ! Prépare-toi à une course-poursuite effrénée et amusante pour défendre ton trophée ! Alors, es-tu prêt{e} à relever le défi ?"
|
116
|
+
appear:
|
117
|
+
- "Le mystère de Pâques s'épaissit, un œuf vient d'apparaître sous vos yeux ébahis !"
|
118
|
+
- "Oh, regardez ! Un petit coquin d'œuf s'est caché ici !"
|
119
|
+
- "Levez les yeux et admirez ! Un œuf vient d'être découvert !"
|
120
|
+
- "Alerte ! Alertez les chasseurs d'œufs ! Un œuf vient de faire son apparition dans le coin !"
|
121
|
+
- "On dirait que la chasse à l'œuf a commencé, un petit malin vient de se cacher ici !"
|
122
|
+
- "Le soleil brille, les oiseaux chantent et les œufs apparaissent comme par magie !"
|
123
|
+
- "La fête de Pâques ne serait pas complète sans un peu de chasse aux œufs, et voilà que l'un d'entre eux vient montrer le bout de son nez !"
|
124
|
+
- "Les cloches de Pâques ont-elles sonné ? Non, c'est juste un œuf qui vient de faire une apparition surprise !"
|
125
|
+
- "Regardez bien où vous mettez les pieds, un œuf farceur a décidé de se cacher ici !"
|
126
|
+
- "Un œuf tout beau, tout frais, est apparu devant vous tel un cadeau tombé du ciel !"
|
127
|
+
- "Soudain, un œuf coloré est sorti de sa cachette pour se montrer au grand jour."
|
128
|
+
- "Vous avez cherché partout, mais finalement un œuf s'est laissé découvrir avec plaisir."
|
129
|
+
- "Comme par magie, un œuf est apparu juste sous vos nez, prêt à être chassé !"
|
130
|
+
- "Après une recherche intensive, un œuf a été découvert dans son nid douillet."
|
131
|
+
- "Les yeux émerveillés, vous voyez un œuf éclatant de couleurs se montrer timidement."
|
132
|
+
- "Tout à coup, un œuf est sorti de nulle part, comme si c'était une évidence qu'il soit là."
|
133
|
+
- "Les chasseurs ont presque abandonné, mais heureusement, un œuf est apparu pour leur redonner espoir."
|
134
|
+
- "Alors que vous cherchiez encore et encore, un œuf a décidé de se montrer pour vous faciliter la tâche !"
|
135
|
+
action:
|
136
|
+
- text: "Ramasser calmement l'œuf"
|
137
|
+
success:
|
138
|
+
text: "Sa sagesse lui a permis d'arriver en vie jusqu'à l'œuf."
|
139
|
+
gif: https://media.tenor.com/13sYDxqgJxkAAAAC/cute-fail.gif
|
140
|
+
fail:
|
141
|
+
text: "{Iel} s'est précipité{e} et n'a pas vu le danger !"
|
142
|
+
gif: https://media.tenor.com/jRN1rDkw3RAAAAAC/tia-be-like-here-tilki-tula-hunter.gif
|
143
|
+
- text: "Roulade pour attraper l'œuf"
|
144
|
+
success:
|
145
|
+
text: "{Iel} effectue une roulade à la perfection et s'empare de l'œuf."
|
146
|
+
gif: https://media.tenor.com/3jJ7jUrduLAAAAAC/raccoon-elden-ring.gif
|
147
|
+
fail:
|
148
|
+
text: "{Iel} se tape la tête contre un mur en essayant de faire une roulade."
|
149
|
+
gif: https://media.tenor.com/sEH-VStJ0OEAAAAC/roll-cat.gif
|
150
|
+
- text: "Canne à pêche pour voler l'œuf"
|
151
|
+
success:
|
152
|
+
text: "Une canne à pêche ? À la main c'est plus rapide !"
|
153
|
+
gif: https://media.tenor.com/ByLaEQYy5y8AAAAC/fishing-caught.gif
|
154
|
+
fail:
|
155
|
+
text: "{Iel} fait des dommages collatéraux."
|
156
|
+
gif: https://media.tenor.com/R1k5xMnbQ9YAAAAC/fish-fishing.gif
|
157
|
+
- text: "Courir jusqu'à l'œuf"
|
158
|
+
success:
|
159
|
+
text: "Tel Flash, {iel} s'empare de l'œuf à une vitesse phénoménale !"
|
160
|
+
gif: https://media.tenor.com/OOLXbK3qSn0AAAAC/flash-run.gif
|
161
|
+
fail:
|
162
|
+
text: "Sa rapidité lui a joué des tours."
|
163
|
+
gif: https://i.makeagif.com/media/3-01-2017/q_GF_o.gif
|
164
|
+
- text: "Sécuriser l'œuf"
|
165
|
+
success:
|
166
|
+
text: "C'est un raid d'une efficacité incontestable, {iel} s'empare de l'œuf."
|
167
|
+
gif: https://media.tenor.com/1AhUNYnySx4AAAAC/f-bi-raid.gif
|
168
|
+
fail:
|
169
|
+
text: "{Iel} a oublié qu'il y avait aussi des œufs dans son panier !"
|
170
|
+
gif: https://i.gifer.com/IQED.gif
|
171
|
+
- text: "Voler l'œuf"
|
172
|
+
success:
|
173
|
+
text: "{Iel} vole l'œuf avec une discrétion qui lui est propre, donc aucune."
|
174
|
+
gif: https://i.makeagif.com/media/5-13-2015/95FLVz.gif
|
175
|
+
fail:
|
176
|
+
text: "{Iel} rate son vol et perd un peu de sa dignité au passage."
|
177
|
+
gif: https://media.tenor.com/FoRxXGhnH2EAAAAC/gun-fail.gif
|
178
|
+
- text: "Mettre l'œuf dans le panier"
|
179
|
+
success:
|
180
|
+
text: "C'est un magnifique panier qu'{iel} nous fait là !"
|
181
|
+
gif: https://media.tenor.com/OI7r9b2aHawAAAAC/basketball-mj.gif
|
182
|
+
fail:
|
183
|
+
text: "Il semblerait que mettre un œuf dans un panier serait trop dur pour certain."
|
184
|
+
gif: https://media.tenor.com/LbVdHqEDChYAAAAC/ralph-easter-egg.gif
|
185
|
+
- text: "Construire une machine à œufs"
|
186
|
+
success:
|
187
|
+
text: "C'est une incroyable machine qu'{iel} a fait, malheureusement cela n'a permis de récupérer qu'un œuf."
|
188
|
+
gif: https://media.tenor.com/w5KbvzaYbSMAAAAC/satisfactory.gif
|
189
|
+
fail:
|
190
|
+
text: "Choqué{e} par la machine à œuf, {iel} reste tétanisé{e} et laisse son œuf partir."
|
191
|
+
gif: https://i.gifer.com/Wdts.gif
|
192
|
+
- text: "Payer pour l'œuf"
|
193
|
+
success:
|
194
|
+
text: "{Iel} réussi à corrompre le lapin de Pâque pour qu'il lui laisse l'œuf."
|
195
|
+
gif: https://media.tenor.com/BT6bMyOIbawAAAAC/cop-corruption.gif
|
196
|
+
fail:
|
197
|
+
text: "{Iel} a oublié qu'{iel} était pauvre."
|
198
|
+
gif: https://media.tenor.com/rdvWdzGheQYAAAAd/drama-queen-wallet.gif
|
199
|
+
- text: "Se battre pour l'œuf"
|
200
|
+
success:
|
201
|
+
text: "La violence ne résout rien, {iel} s'empare de l'œuf avec douceur 💞"
|
202
|
+
gif: https://media.tenor.com/pHwzmlVwEocAAAAd/heejake.gif
|
203
|
+
fail:
|
204
|
+
text: "{Iel} était trop concentré{e} sur le combat. {Iel} a laissé passer l'œuf."
|
205
|
+
gif: https://media.tenor.com/l5sIE_3H3EEAAAAd/cats-fighting-fighting-cats.gif
|
206
|
+
- text: "Danser pour l'œuf"
|
207
|
+
success:
|
208
|
+
text: "{Iel} effectue une danse endiablée. Tous les yeux sont rivés sur {lui}, {iel} s'empare de l'œuf avec l'admiration de tous."
|
209
|
+
gif: https://media.tenor.com/NDIx856G0XIAAAAC/dance-turkey.gif
|
210
|
+
fail:
|
211
|
+
text: "Personne n'aurait aimé être à sa place. {Iel} se casse la gueule avec honte."
|
212
|
+
gif: https://media.tenor.com/nMcbTp1sQgYAAAAC/dance-oops.gif
|
213
|
+
- text: "Regarder intensivement l'œuf"
|
214
|
+
success:
|
215
|
+
text: "Son regard remplit de jugement et de puissance pousse les autres chasseurs à lui laisser l'œuf."
|
216
|
+
gif: https://media.tenor.com/OVUDwIM8mBkAAAAC/cat-cat-stare.gif
|
217
|
+
fail:
|
218
|
+
text: "{Iel} se fait surprendre par l'œuf."
|
219
|
+
gif: https://media.tenor.com/Dui2bqe8O0gAAAAC/children-demolition.gif
|
220
|
+
- text: "Assommer le lapin de Pâques"
|
221
|
+
success:
|
222
|
+
text: "{Iel} porte un coup assommant au lapin de Pâques, c'est un coup critique ! {Iel} obtient un œuf."
|
223
|
+
gif: https://media.tenor.com/Aofnhf0GL6AAAAAd/happy-easter.gif
|
224
|
+
fail:
|
225
|
+
text: "Le lapin de Pâques n'a pas trop l'air d'aimer sa tentative d'assassinat. Il lui défonce violemment sa race."
|
226
|
+
gif: https://media.tenor.com/Zv4FWUoX2xoAAAAC/happy-easter.gif
|
@@ -0,0 +1 @@
|
|
1
|
+
https://openclipart.org/detail/169059/easter-eggs-by-viscious-speedViscious-SpeedColorfulEasterEggsclip
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,47 @@
|
|
1
|
+
[loggers]
|
2
|
+
keys=root,discord,easterobot,discord_http
|
3
|
+
|
4
|
+
[handlers]
|
5
|
+
keys=consoleHandler,fileHandler
|
6
|
+
|
7
|
+
[formatters]
|
8
|
+
keys=customFormatter
|
9
|
+
|
10
|
+
[logger_root]
|
11
|
+
level=NOTSET
|
12
|
+
handlers=
|
13
|
+
|
14
|
+
[logger_discord]
|
15
|
+
level=WARNING
|
16
|
+
handlers=consoleHandler,fileHandler
|
17
|
+
qualname=discord
|
18
|
+
propagate=0
|
19
|
+
|
20
|
+
[logger_discord_http]
|
21
|
+
level=INFO
|
22
|
+
handlers=
|
23
|
+
qualname=discord.http
|
24
|
+
propagate=1
|
25
|
+
|
26
|
+
[logger_easterobot]
|
27
|
+
level=INFO
|
28
|
+
handlers=consoleHandler,fileHandler
|
29
|
+
qualname=easterobot
|
30
|
+
propagate=0
|
31
|
+
|
32
|
+
[handler_consoleHandler]
|
33
|
+
class=StreamHandler
|
34
|
+
level=DEBUG
|
35
|
+
formatter=customFormatter
|
36
|
+
args=(sys.stdout,)
|
37
|
+
|
38
|
+
[handler_fileHandler]
|
39
|
+
class=easterobot.logger.AutoDirRotatingFileHandler
|
40
|
+
level=DEBUG
|
41
|
+
formatter=customFormatter
|
42
|
+
args=('%(data)s/logs/easterobot.log', 'a', 65536, 10, 'utf-8')
|
43
|
+
|
44
|
+
[formatter_customFormatter]
|
45
|
+
format=[{asctime}] [{levelname}] [{name}]: {message}
|
46
|
+
datefmt=%Y-%m-%d %H:%M:%S
|
47
|
+
style={
|
Binary file
|
@@ -0,0 +1,242 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: easterobot
|
3
|
+
Version: 1.0.0
|
4
|
+
Summary: Discord bot for Easter.
|
5
|
+
Project-URL: Homepage, https://github.com/Dashstrom/easterobot
|
6
|
+
Project-URL: Repository, https://github.com/Dashstrom/easterobot
|
7
|
+
Project-URL: Documentation, https://dashstrom.github.io/easterobot
|
8
|
+
Author-email: Dashstrom <dashstrom.pro@gmail.com>
|
9
|
+
License-File: LICENSE
|
10
|
+
Keywords: bot,discord,easter,eggs,hunt
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
12
|
+
Classifier: Environment :: Console
|
13
|
+
Classifier: Framework :: Pytest
|
14
|
+
Classifier: Framework :: Sphinx
|
15
|
+
Classifier: Intended Audience :: Developers
|
16
|
+
Classifier: Intended Audience :: System Administrators
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
18
|
+
Classifier: Natural Language :: English
|
19
|
+
Classifier: Operating System :: OS Independent
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
21
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
22
|
+
Classifier: Programming Language :: Python :: 3.9
|
23
|
+
Classifier: Programming Language :: Python :: 3.10
|
24
|
+
Classifier: Programming Language :: Python :: 3.11
|
25
|
+
Classifier: Programming Language :: Python :: 3.12
|
26
|
+
Classifier: Programming Language :: Python :: 3.13
|
27
|
+
Classifier: Typing :: Typed
|
28
|
+
Requires-Python: <4.0,>=3.9
|
29
|
+
Requires-Dist: aiosqlite>=0.21.0
|
30
|
+
Requires-Dist: asyncpg>=0.30.0
|
31
|
+
Requires-Dist: discord-py>=2.5.2
|
32
|
+
Requires-Dist: msgspec>=0.19.0
|
33
|
+
Requires-Dist: pyyaml>=6.0.2
|
34
|
+
Requires-Dist: sqlalchemy[asyncio]>=2.0.40
|
35
|
+
Requires-Dist: typing-extensions>=4.8.0
|
36
|
+
Description-Content-Type: text/x-rst
|
37
|
+
|
38
|
+
.. role:: bash(code)
|
39
|
+
:language: bash
|
40
|
+
|
41
|
+
**********
|
42
|
+
easterobot
|
43
|
+
**********
|
44
|
+
|
45
|
+
|ci-docs| |ci-lint| |ci-tests| |pypi| |versions| |license|
|
46
|
+
|
47
|
+
.. |ci-docs| image:: https://github.com/Dashstrom/easterobot/actions/workflows/docs.yml/badge.svg
|
48
|
+
:target: https://github.com/Dashstrom/easterobot/actions/workflows/docs.yml
|
49
|
+
:alt: CI : Docs
|
50
|
+
|
51
|
+
.. |ci-lint| image:: https://github.com/Dashstrom/easterobot/actions/workflows/lint.yml/badge.svg
|
52
|
+
:target: https://github.com/Dashstrom/easterobot/actions/workflows/lint.yml
|
53
|
+
:alt: CI : Lint
|
54
|
+
|
55
|
+
.. |ci-tests| image:: https://github.com/Dashstrom/easterobot/actions/workflows/tests.yml/badge.svg
|
56
|
+
:target: https://github.com/Dashstrom/easterobot/actions/workflows/tests.yml
|
57
|
+
:alt: CI : Tests
|
58
|
+
|
59
|
+
.. |pypi| image:: https://img.shields.io/pypi/v/easterobot.svg
|
60
|
+
:target: https://pypi.org/project/easterobot
|
61
|
+
:alt: PyPI : easterobot
|
62
|
+
|
63
|
+
.. |versions| image:: https://img.shields.io/pypi/pyversions/easterobot.svg
|
64
|
+
:target: https://pypi.org/project/easterobot
|
65
|
+
:alt: Python : versions
|
66
|
+
|
67
|
+
.. |license| image:: https://img.shields.io/badge/license-MIT-green.svg
|
68
|
+
:target: https://github.com/Dashstrom/easterobot/blob/main/LICENSE
|
69
|
+
:alt: License : MIT
|
70
|
+
|
71
|
+
Description
|
72
|
+
###########
|
73
|
+
|
74
|
+
Discord bot for Easter.
|
75
|
+
|
76
|
+
Documentation
|
77
|
+
#############
|
78
|
+
|
79
|
+
Documentation is available on https://dashstrom.github.io/easterobot
|
80
|
+
|
81
|
+
Prerequisite
|
82
|
+
############
|
83
|
+
|
84
|
+
For using easterobot you will need a token, you can follow `the discord.py Guide for get one <https://discordpy.readthedocs.io/en/stable/discord.html>`_.
|
85
|
+
|
86
|
+
Usage as CLI
|
87
|
+
############
|
88
|
+
|
89
|
+
You can install :bash:`easterobot` using `uv <https://docs.astral.sh/uv/getting-started/installation>`_
|
90
|
+
from `PyPI <https://pypi.org/project>`_.
|
91
|
+
|
92
|
+
.. code-block:: bash
|
93
|
+
|
94
|
+
pip install uv
|
95
|
+
uv tool install easterobot
|
96
|
+
# or uv tool install git+https://github.com/Dashstrom/easterobot
|
97
|
+
|
98
|
+
Once installed, you can use it directly.
|
99
|
+
|
100
|
+
.. code-block:: bash
|
101
|
+
|
102
|
+
easterobot run -t YOU_MUST_PUT_YOUR_TOKEN_HERE
|
103
|
+
|
104
|
+
Or you can generate a custom configuration for your own needs !
|
105
|
+
|
106
|
+
.. code-block:: bash
|
107
|
+
|
108
|
+
easterobot generate -i data
|
109
|
+
easterobot run -c data/config.yml
|
110
|
+
|
111
|
+
Usage with Docker
|
112
|
+
#################
|
113
|
+
|
114
|
+
You can install :bash:`easterobot` using `uv <https://docs.astral.sh/uv/getting-started/installation>`_
|
115
|
+
from `PyPI <https://pypi.org/project>`_
|
116
|
+
|
117
|
+
.. code-block:: bash
|
118
|
+
|
119
|
+
git clone https://github.com/Dashstrom/easterobot
|
120
|
+
cd easterobot
|
121
|
+
echo "DISCORD_TOKEN=YOU_MUST_PUT_YOUR_TOKEN_HERE" > .env
|
122
|
+
|
123
|
+
# Run the docker container
|
124
|
+
docker compose up -d
|
125
|
+
|
126
|
+
# Stop it
|
127
|
+
docker compose stop
|
128
|
+
|
129
|
+
# Remove the container (not the data)
|
130
|
+
docker compose down --rmi all
|
131
|
+
|
132
|
+
Configuration directory
|
133
|
+
#######################
|
134
|
+
|
135
|
+
.. code-block:: text
|
136
|
+
|
137
|
+
data Root directory
|
138
|
+
├── config.yml Configuration file
|
139
|
+
├── easterobot.db Database
|
140
|
+
├── logs Logging directory
|
141
|
+
│ ├── easterobot.log Latest log file
|
142
|
+
│ └── easterobot.log.1 Rotating log file
|
143
|
+
└── resources Resource directory
|
144
|
+
├── config.example.yml An example of config
|
145
|
+
├── credits.txt Credits of eggs emoji
|
146
|
+
├── eggs Directory for eggs
|
147
|
+
│ └── egg_01.png Emoji to use
|
148
|
+
├── logging.conf Logging configuration
|
149
|
+
└── logo.png Logo used by the bot
|
150
|
+
|
151
|
+
Development
|
152
|
+
###########
|
153
|
+
|
154
|
+
Contributing
|
155
|
+
************
|
156
|
+
|
157
|
+
Contributions are very welcome. Tests can be run with :bash:`poe check`, please
|
158
|
+
ensure the coverage at least stays the same before you submit a pull request.
|
159
|
+
|
160
|
+
Setup
|
161
|
+
*****
|
162
|
+
|
163
|
+
You need to install `uv <https://docs.astral.sh/uv/getting-started/installation>`_
|
164
|
+
and `Git <https://git-scm.com/book/en/v2/Getting-Started-Installing-Git>`_
|
165
|
+
for work with this project.
|
166
|
+
|
167
|
+
.. code-block:: bash
|
168
|
+
|
169
|
+
git clone https://github.com/Dashstrom/easterobot
|
170
|
+
cd easterobot
|
171
|
+
uv sync
|
172
|
+
uv run poe setup
|
173
|
+
|
174
|
+
Poe
|
175
|
+
********
|
176
|
+
|
177
|
+
Poe is available for help you to run tasks.
|
178
|
+
|
179
|
+
.. code-block:: text
|
180
|
+
|
181
|
+
test Run test suite.
|
182
|
+
lint Run linters: ruff checker and ruff formatter and mypy.
|
183
|
+
format Run linters in fix mode.
|
184
|
+
check Run all checks: lint, test and docs.
|
185
|
+
check-tag Check if the current tag match the version.
|
186
|
+
cov Run coverage for generate report and html.
|
187
|
+
open-cov Open html coverage report in webbrowser.
|
188
|
+
docs Build documentation.
|
189
|
+
open-docs Open documentation in webbrowser.
|
190
|
+
setup Setup pre-commit.
|
191
|
+
pre-commit Run pre-commit.
|
192
|
+
commit Test, commit and push.
|
193
|
+
clean Clean cache files.
|
194
|
+
|
195
|
+
Skip commit verification
|
196
|
+
************************
|
197
|
+
|
198
|
+
If the linting is not successful, you can't commit.
|
199
|
+
For forcing the commit you can use the next command :
|
200
|
+
|
201
|
+
.. code-block:: bash
|
202
|
+
|
203
|
+
git commit --no-verify -m 'MESSAGE'
|
204
|
+
|
205
|
+
Commit with commitizen
|
206
|
+
**********************
|
207
|
+
|
208
|
+
To respect commit conventions, this repository uses
|
209
|
+
`Commitizen <https://github.com/commitizen-tools/commitizen?tab=readme-ov-file>`_.
|
210
|
+
|
211
|
+
.. code-block:: bash
|
212
|
+
|
213
|
+
cz c
|
214
|
+
|
215
|
+
How to add dependency
|
216
|
+
*********************
|
217
|
+
|
218
|
+
.. code-block:: bash
|
219
|
+
|
220
|
+
uv add 'PACKAGE'
|
221
|
+
|
222
|
+
Ignore illegitimate warnings
|
223
|
+
****************************
|
224
|
+
|
225
|
+
To ignore illegitimate warnings you can add :
|
226
|
+
|
227
|
+
- **# noqa: ERROR_CODE** on the same line for ruff.
|
228
|
+
- **# type: ignore[ERROR_CODE]** on the same line for mypy.
|
229
|
+
- **# pragma: no cover** on the same line to ignore line for coverage.
|
230
|
+
- **# doctest: +SKIP** on the same line for doctest.
|
231
|
+
|
232
|
+
Uninstall
|
233
|
+
#########
|
234
|
+
|
235
|
+
.. code-block:: bash
|
236
|
+
|
237
|
+
pipx uninstall easterobot
|
238
|
+
|
239
|
+
License
|
240
|
+
#######
|
241
|
+
|
242
|
+
This work is licensed under `MIT <https://github.com/Dashstrom/easterobot/blob/main/LICENSE>`_.
|
@@ -0,0 +1,48 @@
|
|
1
|
+
easterobot/__init__.py,sha256=jicWnRlHiIKXyAoQhL0_ga8PwMpwr_S2s33olHYoHg0,287
|
2
|
+
easterobot/__main__.py,sha256=ix1OVjR-jxJIHzQiKyIswvn0oNphNNL9p7FtbZj9Stw,140
|
3
|
+
easterobot/bot.py,sha256=T-CIozz-OmvpautWTf1UqYcq6vdGb2XxrXN9N7V-3Yc,20186
|
4
|
+
easterobot/cli.py,sha256=rRK3W7eOrAAwH76TzUUUtIIdBNnYLNcvLlilHbqshkg,3739
|
5
|
+
easterobot/config.py,sha256=55vGwqj-xLubXXjqQ3JUvifr5MPO32I70o3GEKR3JLc,10878
|
6
|
+
easterobot/info.py,sha256=q7feubgPyAaMb7D90jg9lLmGv78etpOKoumdMwEI2ek,546
|
7
|
+
easterobot/logger.py,sha256=eUUdMB0ebvb5h98WWZka2ntivBOmfHqhlvyr-82NKn4,482
|
8
|
+
easterobot/models.py,sha256=Cfl9SN6zMQM89I9KmMPjc8t1TD4PTMdvd5ByhZl8opA,1713
|
9
|
+
easterobot/py.typed,sha256=h_hqugBQEXpQj0jh7RpP9KzBF-otufUDlJ5mm8uZPHI,63
|
10
|
+
easterobot/commands/__init__.py,sha256=TopCY-648LB4VPIJBrn1izuJBWHXq86FqsR8IGOkDzw,829
|
11
|
+
easterobot/commands/base.py,sha256=fdt_a-LA-fRElu_-pyZSU1nqKvX_g76REuLIw3JZWlA,6048
|
12
|
+
easterobot/commands/basket.py,sha256=c4b3kJxewa6GJs2n6QF4Ii309-NA3uVPYfk-MY2ISOw,2968
|
13
|
+
easterobot/commands/disable.py,sha256=qjgLRQZUXK9toq-vJdE6qOYX5Pxb9wjIyvWrKJ22GAo,970
|
14
|
+
easterobot/commands/edit.py,sha256=n69KynBt-kcnYrtdFgTUE2NSqU1REjIoHZraYIEGBqA,2103
|
15
|
+
easterobot/commands/enable.py,sha256=IRIwIHgZS3kz60CCfQBR8sBRs25CEyvxYewsTW--TrI,1034
|
16
|
+
easterobot/commands/help.py,sha256=g1qKVRxOrGdoIntiAZEgMemu38SLzxK4RiKl25ODrxs,1075
|
17
|
+
easterobot/commands/reset.py,sha256=PetkKMkxL2tQWllC_XgN-_6raEzKRvlsTcuZuSlMpAE,3741
|
18
|
+
easterobot/commands/search.py,sha256=BJlMZOX0rAoUFbTBaw5TapbQy7tpawvRX8hnGeqGu48,4333
|
19
|
+
easterobot/commands/top.py,sha256=-daN2_QjNcbvlpiMgyDuhwqpVnJqF9Xghhd7lBzIoVo,3298
|
20
|
+
easterobot/resources/config.example.yml,sha256=EGBPY75fLmYrL5GR5JJhX94T4V15WIVrvaZ6u99gNX0,15608
|
21
|
+
easterobot/resources/credits.txt,sha256=hZejZyMCYGYx0GoU5hSyqs1twIERjkN74aqN_tvqr68,104
|
22
|
+
easterobot/resources/logging.conf,sha256=RSL4k79N5oQb1hEtr5SiR_IAiKjkAHZaR4DR9lOxA-M,838
|
23
|
+
easterobot/resources/logo.png,sha256=DUFH6Tq8MjW0LGWVc4sox6RvBZCQWHZHTM2e5Ua4od4,82599
|
24
|
+
easterobot/resources/eggs/egg_01.png,sha256=XfEK4lofCA2Y6wfsD4Rs7iRpbMRptpVTJU3aweKo4gM,101250
|
25
|
+
easterobot/resources/eggs/egg_02.png,sha256=p7jUVfromhqIUi3Yi0jrJkGxsPzKaDGlKk4a1vzXjFI,69554
|
26
|
+
easterobot/resources/eggs/egg_03.png,sha256=RS8W-o9Rd3tTZ0uMSZPP4czZ8bwRl88W2WE3eF6RJVE,91331
|
27
|
+
easterobot/resources/eggs/egg_04.png,sha256=KiUrc5ZNHbsd0a0tmRWq9jMJOZZx-_NoCmeQ7-p6qeY,59060
|
28
|
+
easterobot/resources/eggs/egg_05.png,sha256=MSty6Xi1ewjk5gKxNs8NJQ0bsQJgqDPWTPMQHg4NSoY,97561
|
29
|
+
easterobot/resources/eggs/egg_06.png,sha256=HgmxrDjzGILWqQfzRpRKu77NiApBwZCpUI1sb6crzrg,73279
|
30
|
+
easterobot/resources/eggs/egg_07.png,sha256=DUFH6Tq8MjW0LGWVc4sox6RvBZCQWHZHTM2e5Ua4od4,82599
|
31
|
+
easterobot/resources/eggs/egg_08.png,sha256=GJbLBnO3OCBy-aUNi3lnQNG21Fr24X0ifLeyLNBN89E,89794
|
32
|
+
easterobot/resources/eggs/egg_09.png,sha256=xqXb-jMc1yl7WpFWWDwyzoGiiRrbFCrEAbhk886eTWo,120900
|
33
|
+
easterobot/resources/eggs/egg_10.png,sha256=cczey036iacCB_60A_U0ttbxE4LH57aD3w3dtiAUTE8,234791
|
34
|
+
easterobot/resources/eggs/egg_11.png,sha256=G6kBmhwnFJ-2kfhRZlI7SPCyUDQB87hKiemh6fE8MUw,132216
|
35
|
+
easterobot/resources/eggs/egg_12.png,sha256=A3AdGXi8N7ctjTn4ihc-CVxNfMacbyhKvIQHPP9WgQE,88566
|
36
|
+
easterobot/resources/eggs/egg_13.png,sha256=ZwWhTQ068JPWMchK751_uTeJv9_k3Lv67neB6Nb3aSE,102513
|
37
|
+
easterobot/resources/eggs/egg_14.png,sha256=bomeNUGe-oZQXiHbU08fLLcuchiA5U0JhNkf3_C_y08,93593
|
38
|
+
easterobot/resources/eggs/egg_15.png,sha256=qH_DqOzGNhkdLgU4K7j6yY53ztAxHZExlesxfyaOFhs,132482
|
39
|
+
easterobot/resources/eggs/egg_16.png,sha256=CyqXZxvg-3sYenx5ujOpT8k_tAGV-PX3dDwA4leCxDI,89692
|
40
|
+
easterobot/resources/eggs/egg_17.png,sha256=MpGVx3AbJe2b1caLkHmGFvr4ZBxNwxvmgrQlr9RdCP8,108363
|
41
|
+
easterobot/resources/eggs/egg_18.png,sha256=SzxW0vLJWuedrls9HtCCCuJCphxHMz8nNcyFUhNS1iA,113096
|
42
|
+
easterobot/resources/eggs/egg_19.png,sha256=rJ5hFNYmJWUzvpZIH1kLG2FPe0ZmMlKhXtiPXg8qZd0,86666
|
43
|
+
easterobot/resources/eggs/egg_20.png,sha256=gMIIi0A6Q79kVKu41SSwsEAPkoEz5sbHIaCLQdZAnSI,111573
|
44
|
+
easterobot-1.0.0.dist-info/METADATA,sha256=Kybs4OdTxRmxXEAmaREWsK-KE8ZktmPw_ylbbJYzWx4,7114
|
45
|
+
easterobot-1.0.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
46
|
+
easterobot-1.0.0.dist-info/entry_points.txt,sha256=KaH17cNnu7qbWxFcMaj1wZ9GPTjWJ1OTqkBMhoLOmCQ,57
|
47
|
+
easterobot-1.0.0.dist-info/licenses/LICENSE,sha256=kYRz570GVPktzhJxWtaencsrsjdKSetpe5WISlDrvnY,1093
|
48
|
+
easterobot-1.0.0.dist-info/RECORD,,
|
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2024, Dashstrom <dashstrom.pro@gmail.com>
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|