mirror of
https://github.com/migatu/conjurer.git
synced 2026-07-14 21:38:38 +00:00
104 lines
3.3 KiB
Python
Executable File
104 lines
3.3 KiB
Python
Executable File
# This Python file uses the following encoding: utf-8
|
|
# trunk-ignore-all(bandit/B311)
|
|
# pylint: disable=line-too-long
|
|
# pylint: disable=too-many-lines
|
|
"""
|
|
Module of a python bot named Conjurer - used to work on BDSM discord servers.
|
|
"""
|
|
import logging
|
|
|
|
# *=========================================== Standard Library Imports
|
|
import random
|
|
import threading
|
|
from logging import handlers
|
|
|
|
# *==============Imported libraries
|
|
import discord
|
|
from discord.ext import commands
|
|
|
|
from communication_subroutine import comm_subroutine
|
|
from constants import ENCODING, LOGFILE, TOKEN
|
|
logger = logging.getLogger("discord")
|
|
logger.setLevel(logging.INFO)
|
|
handler = handlers.RotatingFileHandler(
|
|
filename=LOGFILE,
|
|
encoding=ENCODING,
|
|
mode="a",
|
|
maxBytes=6 * 1024 * 1024,
|
|
backupCount=6,
|
|
)
|
|
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
|
|
handler.setFormatter(formatter)
|
|
logger.addHandler(handler)
|
|
|
|
# *=========================================== Initializations
|
|
intents = discord.Intents.default()
|
|
intents.message_content = True
|
|
intents.typing = True
|
|
intents.presences = True
|
|
intents.members = True
|
|
intents.messages = True
|
|
intents.voice_states = True
|
|
intents.moderation = True
|
|
|
|
# on_member_ban - wyswietl na glownym kanale pieczatke "Niech spierdala"
|
|
# on_member_unban - "mam wyjebane"
|
|
|
|
random.seed()
|
|
client = commands.Bot(intents=intents, command_prefix="$")
|
|
|
|
|
|
# *=========================================== Define Events
|
|
@client.event
|
|
async def on_ready():
|
|
"""Metoda wywoływana przy połączeniu do serwera."""
|
|
logger = logging.getLogger("discord")
|
|
logger.debug("SAMPLE DEBUG LOG")
|
|
logger.info("%s has connected to Discord!", client.user)
|
|
# TODO: load vs reload
|
|
logger.info("Reactor: online")
|
|
|
|
await client.load_extension("administration_commands")
|
|
|
|
await client.load_extension("librarian_commands")
|
|
await client.load_extension("music_commands")
|
|
await client.load_extension("radio_commands")
|
|
|
|
await client.load_extension("ai_commands")
|
|
|
|
await client.load_extension("other_commands")
|
|
await client.load_extension("voice_recognition_commands")
|
|
await client.load_extension("file_search_commands")
|
|
await client.load_extension("latex_commands")
|
|
logger.info("Sensors: online")
|
|
|
|
logger.info(client.cogs)
|
|
await client.tree.sync()
|
|
for com in client.commands:
|
|
logger.info("Command %s is awejleble", com.qualified_name)
|
|
|
|
logger.info("Logged in as ----> %s", client.user)
|
|
logger.info("ID:%s ", client.user.id)
|
|
logger.info("All systems: operational")
|
|
|
|
|
|
# *================================== Run
|
|
if __name__ == "__main__":
|
|
logger.info("Starting discord bot")
|
|
threads = []
|
|
logger.info("Starting discord bot: Creating threads")
|
|
threads.append(threading.Thread(target=client.run, args=(TOKEN,),kwargs={"log_handler":None}))
|
|
threads.append(threading.Thread(target=comm_subroutine))
|
|
logger.info("Starting discord bot: Starting threads")
|
|
WRK_CNT = 0
|
|
for worker in threads:
|
|
WRK_CNT += 1
|
|
logger.info("Starting discord bot: Starting thread %s", WRK_CNT)
|
|
worker.start()
|
|
logger.info("Starting discord bot: Joining threads")
|
|
WRK_CNT = 0
|
|
for worker in threads:
|
|
WRK_CNT += 1
|
|
logger.info("Starting discord bot: Joining thread %s", WRK_CNT)
|
|
worker.join()
|