-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbot.py
More file actions
63 lines (47 loc) · 1.98 KB
/
Copy pathbot.py
File metadata and controls
63 lines (47 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
"""bot.py"""
import logging
import discord
from discord.ext import commands
from config import Config
from db.database import Database
from db.repositories import SQLiteGuildConfigRepository, SQLiteMemeConfigRepository # <-- agregado SQLiteMemeConfigRepository
from services.disboard_classifier import DisboardMessageClassifier
from services.scheduler import TimerScheduler
from services.meme_fetcher import MemeFetcher # <-- nuevo import
from cogs.bump import BumpCog
from cogs.bump_config_commands import BumpConfigCog
from cogs.alarm import AlarmCog
from cogs.meme import MemeCog # <-- nuevo import
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s")
logger = logging.getLogger("bump-bot")
class BumpBot(commands.Bot):
def __init__(self, config: Config):
intents = discord.Intents.default()
intents.message_content = True
intents.guilds = True
super().__init__(command_prefix="!", intents=intents)
self.config = config
self.database = Database(config.db_path)
self.repo = SQLiteGuildConfigRepository(self.database)
self.scheduler = TimerScheduler()
self.classifier = DisboardMessageClassifier()
# --- agregado ---
self.meme_repo = SQLiteMemeConfigRepository(self.database)
self.meme_fetcher = MemeFetcher()
# ----------------
async def setup_hook(self):
await self.add_cog(BumpCog(self, self.config, self.repo, self.scheduler, self.classifier))
await self.add_cog(BumpConfigCog(self, self.repo))
await self.add_cog(AlarmCog(self, self.scheduler))
# --- agregado ---
await self.add_cog(MemeCog(self, self.meme_repo, self.meme_fetcher))
# ----------------
await self.tree.sync()
async def on_ready(self):
logger.info(f"Bot encendido y conectado como {self.user}")
def main():
config = Config.from_env()
bot = BumpBot(config)
bot.run(config.token)
if __name__ == "__main__":
main()