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.
Files changed (48) hide show
  1. easterobot/__init__.py +19 -0
  2. easterobot/__main__.py +6 -0
  3. easterobot/bot.py +584 -0
  4. easterobot/cli.py +127 -0
  5. easterobot/commands/__init__.py +28 -0
  6. easterobot/commands/base.py +171 -0
  7. easterobot/commands/basket.py +99 -0
  8. easterobot/commands/disable.py +29 -0
  9. easterobot/commands/edit.py +68 -0
  10. easterobot/commands/enable.py +35 -0
  11. easterobot/commands/help.py +33 -0
  12. easterobot/commands/reset.py +121 -0
  13. easterobot/commands/search.py +127 -0
  14. easterobot/commands/top.py +105 -0
  15. easterobot/config.py +401 -0
  16. easterobot/info.py +18 -0
  17. easterobot/logger.py +16 -0
  18. easterobot/models.py +58 -0
  19. easterobot/py.typed +1 -0
  20. easterobot/resources/config.example.yml +226 -0
  21. easterobot/resources/credits.txt +1 -0
  22. easterobot/resources/eggs/egg_01.png +0 -0
  23. easterobot/resources/eggs/egg_02.png +0 -0
  24. easterobot/resources/eggs/egg_03.png +0 -0
  25. easterobot/resources/eggs/egg_04.png +0 -0
  26. easterobot/resources/eggs/egg_05.png +0 -0
  27. easterobot/resources/eggs/egg_06.png +0 -0
  28. easterobot/resources/eggs/egg_07.png +0 -0
  29. easterobot/resources/eggs/egg_08.png +0 -0
  30. easterobot/resources/eggs/egg_09.png +0 -0
  31. easterobot/resources/eggs/egg_10.png +0 -0
  32. easterobot/resources/eggs/egg_11.png +0 -0
  33. easterobot/resources/eggs/egg_12.png +0 -0
  34. easterobot/resources/eggs/egg_13.png +0 -0
  35. easterobot/resources/eggs/egg_14.png +0 -0
  36. easterobot/resources/eggs/egg_15.png +0 -0
  37. easterobot/resources/eggs/egg_16.png +0 -0
  38. easterobot/resources/eggs/egg_17.png +0 -0
  39. easterobot/resources/eggs/egg_18.png +0 -0
  40. easterobot/resources/eggs/egg_19.png +0 -0
  41. easterobot/resources/eggs/egg_20.png +0 -0
  42. easterobot/resources/logging.conf +47 -0
  43. easterobot/resources/logo.png +0 -0
  44. easterobot-1.0.0.dist-info/METADATA +242 -0
  45. easterobot-1.0.0.dist-info/RECORD +48 -0
  46. easterobot-1.0.0.dist-info/WHEEL +4 -0
  47. easterobot-1.0.0.dist-info/entry_points.txt +2 -0
  48. 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,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.27.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ easterobot = easterobot.cli:entrypoint
@@ -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.