130 lines
3.6 KiB
Markdown
130 lines
3.6 KiB
Markdown
[](https://github.com/boyter/scc/#badges-beta)
|
|
[](https://lgtm.com/projects/g/Klemek/discord-analyst/context:python)
|
|
[](https://lgtm.com/projects/g/Klemek/discord-analyst/alerts/)
|
|
[](https://top.gg/bot/643808410495615006)
|
|
|
|
# Discord Analyst
|
|
|
|
#### 📈 Gives you precisions you never asked for.
|
|
|
|
|
|
## All commands
|
|
```
|
|
* %help (command) - info about commands
|
|
* %info - version and uptime
|
|
* %scan - full analysis
|
|
* %freq - frequency analysis
|
|
* %compo - composition analysis
|
|
* %pres - presence analysis
|
|
* %emojis - rank emotes by their usage
|
|
* arguments:
|
|
* <n> - top <n> emojis, default is 20
|
|
* all - list all common emojis in addition to this guild's
|
|
* members - show top member for each emote
|
|
* sort:usage/reaction - other sorting methods
|
|
* %mentions - rank mentions by their usage
|
|
* arguments:
|
|
* <n> - top <n> mentions, default is 10
|
|
* all - show role/channel/everyone/here mentions
|
|
* %mentioned - rank specific user mentions by their usage
|
|
* arguments:
|
|
* <n> - top <n> mentions, default is 10
|
|
* %msg - rank users by their messages
|
|
* arguments:
|
|
* <n> - top <n> messages, default is 10
|
|
* %chan - rank channels by their messages
|
|
* arguments:
|
|
* <n> - top <n> channels, default is 10
|
|
* %react - rank users by their reactions
|
|
* arguments:
|
|
* <n> - top <n> messages, default is 10
|
|
* %cancel - cancel current analysis
|
|
|
|
* Common arguments:
|
|
* @member/me: filter for one or more member
|
|
* #channel/here: filter for one or more channel
|
|
* all/everyone - include bots messages
|
|
* fast: only read cache
|
|
* fresh: does not read cache
|
|
```
|
|
|
|
## Running this bot
|
|
|
|
**1. Install requirements**
|
|
|
|
```
|
|
pip3 install -r requirements.txt
|
|
```
|
|
|
|
**2. Make a .env file as following**
|
|
|
|
```
|
|
#.env
|
|
DISCORD_TOKEN=<bot token from discordapp.com/developers>
|
|
```
|
|
|
|
**3.Invite bot in your discord server**
|
|
|
|
Generate and use the OAuth2 link in [discordapp.com/developers](https://discordapp.com/developers) to invite it.
|
|
|
|
You will need:
|
|
* Scopes:
|
|
* bot
|
|
* Bot Permissions:
|
|
* View Channels
|
|
* Send Messages
|
|
* Read Message History
|
|
|
|
**4. Launch bot**
|
|
|
|
```
|
|
python3 src/main.py
|
|
```
|
|
|
|
## Recommended permissions
|
|
|
|
- [x] View Channels
|
|
- [x] Read Message History
|
|
- [x] Send Messages
|
|
|
|
> On large servers, you should disable "Send Messages" and enable it on an read-only channel where only administrators can launch commands. The bot can't be triggered elsewhere if it can't answer.
|
|
|
|
## Already hosted bot
|
|
|
|
[](https://top.gg/bot/643808410495615006)
|
|
|
|
## Changelog
|
|
|
|
* **v1.10**
|
|
* multithreading for queries
|
|
* bug fix
|
|
* **v1.9**:
|
|
* `all/everyone` to include bots in scans
|
|
* `fresh` to not use previously cached data
|
|
* bug fix
|
|
* **v1.8**:
|
|
* more scans: `%msg`, `%chan`
|
|
* bug fix
|
|
* **v1.7**:
|
|
* emojis percents
|
|
* emojis other sorting
|
|
* mentions/mentioned ranking
|
|
* `%cancel`
|
|
* **v1.6**:
|
|
* more scans: `%scan`, `%freq`, `%compo`, `%pres`
|
|
* huge bug fix
|
|
* **v1.5**:
|
|
* top <n> emotes
|
|
* bug fix
|
|
* **v1.4**:
|
|
* integrate miniscord
|
|
* insane speed with bot-side logging
|
|
* bug fix
|
|
* **v1.3**: revert to v1.1 and update requirements
|
|
* **v1.2**: don't quit on occasional exception
|
|
* **v1.1**:
|
|
* coma separator for big numbers
|
|
* history loading by chunks for big channels (performance increase)
|
|
* bug fix
|
|
* **v1.0**: stable release
|