87 lines
2.4 KiB
Python
87 lines
2.4 KiB
Python
import logging
|
|
|
|
from discord import Activity, ActivityType
|
|
|
|
from cogs.admin import Admin
|
|
from cogs.analytics import Analytics
|
|
from cogs.custom_channels import CustomChannels
|
|
from cogs.data import Data
|
|
from cogs.fun import Fun
|
|
from cogs.logger import Logger
|
|
from modules.client import client
|
|
from modules.scheduled import scheduler
|
|
from modules.utils import config_get
|
|
from modules.utils_sync import config_get_sync
|
|
|
|
logging.basicConfig(
|
|
level=logging.INFO,
|
|
format="%(name)s.%(funcName)s | %(levelname)s | %(message)s",
|
|
datefmt="[%X]",
|
|
)
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
try:
|
|
import uvloop # type: ignore
|
|
|
|
uvloop.install()
|
|
except ImportError:
|
|
pass
|
|
|
|
|
|
@client.event
|
|
async def on_ready():
|
|
logger.info(f"Logged in as {client.user}")
|
|
|
|
activity_type = await config_get("type", "status")
|
|
activity_message = await config_get("message", "status")
|
|
|
|
if activity_type == "playing":
|
|
await client.change_presence(
|
|
activity=Activity(type=ActivityType.playing, name=activity_message)
|
|
)
|
|
elif activity_type == "watching":
|
|
await client.change_presence(
|
|
activity=Activity(type=ActivityType.watching, name=activity_message)
|
|
)
|
|
elif activity_type == "listening":
|
|
await client.change_presence(
|
|
activity=Activity(type=ActivityType.listening, name=activity_message)
|
|
)
|
|
elif activity_type == "streaming":
|
|
await client.change_presence(
|
|
activity=Activity(type=ActivityType.streaming, name=activity_message)
|
|
)
|
|
elif activity_type == "competing":
|
|
await client.change_presence(
|
|
activity=Activity(type=ActivityType.competing, name=activity_message)
|
|
)
|
|
elif activity_type == "custom":
|
|
await client.change_presence(
|
|
activity=Activity(type=ActivityType.custom, name=activity_message)
|
|
)
|
|
else:
|
|
return
|
|
|
|
logger.info(f"Set activity type to {activity_type} with message {activity_message}")
|
|
|
|
|
|
def main():
|
|
client.add_cog(Admin(client))
|
|
client.add_cog(Analytics(client))
|
|
client.add_cog(CustomChannels(client))
|
|
client.add_cog(Data(client))
|
|
client.add_cog(Fun(client))
|
|
client.add_cog(Logger(client))
|
|
|
|
try:
|
|
scheduler.start()
|
|
client.run(config_get_sync("token"))
|
|
except KeyboardInterrupt:
|
|
scheduler.shutdown()
|
|
exit()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|