101 lines
2.3 KiB
Python
101 lines
2.3 KiB
Python
from miniscord import Bot
|
|
import logging
|
|
|
|
from utils import emojis
|
|
from scanners import (
|
|
EmotesScanner,
|
|
FullScanner,
|
|
FrequencyScanner,
|
|
CompositionScanner,
|
|
PresenceScanner,
|
|
MentionsScanner,
|
|
MentionedScanner,
|
|
MessagesScanner,
|
|
ChannelsScanner,
|
|
ReactionsScanner,
|
|
)
|
|
from logs import GuildLogs
|
|
|
|
logging.basicConfig(
|
|
format="[%(asctime)s][%(levelname)s][%(module)s] %(message)s", level=logging.INFO
|
|
)
|
|
|
|
emojis.load_emojis()
|
|
|
|
bot = Bot(
|
|
"Discord Analyst",
|
|
"1.10(wip)",
|
|
alias="%",
|
|
)
|
|
|
|
bot.log_calls = True
|
|
|
|
bot.register_command(
|
|
"(cancel|stop)",
|
|
GuildLogs.cancel,
|
|
"cancel: stop current analysis",
|
|
"```\n" + "%cancel: Stop current analysis\n" + "```",
|
|
)
|
|
bot.register_command(
|
|
"mentioned",
|
|
lambda *args: MentionedScanner().compute(*args),
|
|
"mentioned: rank specific user mentions by their usage",
|
|
MentionedScanner.help(),
|
|
)
|
|
bot.register_command(
|
|
"(mentions?)",
|
|
lambda *args: MentionsScanner().compute(*args),
|
|
"mentions: rank mentions by their usage",
|
|
MentionsScanner.help(),
|
|
)
|
|
bot.register_command(
|
|
"(emojis?|emotes?)",
|
|
lambda *args: EmotesScanner().compute(*args),
|
|
"emojis: rank emojis by their usage",
|
|
EmotesScanner.help(),
|
|
)
|
|
bot.register_command(
|
|
"(react(ions?)?)",
|
|
lambda *args: ReactionsScanner().compute(*args),
|
|
"react: rank users by their reactions",
|
|
ReactionsScanner.help(),
|
|
)
|
|
bot.register_command(
|
|
"(channels?|chan)",
|
|
lambda *args: ChannelsScanner().compute(*args),
|
|
"chan: rank channels by their messages",
|
|
ChannelsScanner.help(),
|
|
)
|
|
bot.register_command(
|
|
"(messages?|msg)",
|
|
lambda *args: MessagesScanner().compute(*args),
|
|
"msg: rank users by their messages",
|
|
MessagesScanner.help(),
|
|
)
|
|
bot.register_command(
|
|
"pres(ence)?",
|
|
lambda *args: PresenceScanner().compute(*args),
|
|
"pres: presence analysis",
|
|
PresenceScanner.help(),
|
|
)
|
|
bot.register_command(
|
|
"compo(sition)?",
|
|
lambda *args: CompositionScanner().compute(*args),
|
|
"compo: composition analysis",
|
|
CompositionScanner.help(),
|
|
)
|
|
bot.register_command(
|
|
"freq(ency)?",
|
|
lambda *args: FrequencyScanner().compute(*args),
|
|
"freq: frequency analysis",
|
|
FrequencyScanner.help(),
|
|
)
|
|
bot.register_command(
|
|
"(full|scan)",
|
|
lambda *args: FullScanner().compute(*args),
|
|
"scan: full analysis",
|
|
FullScanner.help(),
|
|
)
|
|
|
|
bot.start()
|