https://github.com/klemek/discord-analyst
📈 Gives you precisions you never asked for.
https://github.com/klemek/discord-analyst
Last synced: 6 months ago
JSON representation
📈 Gives you precisions you never asked for.
- Host: GitHub
- URL: https://github.com/klemek/discord-analyst
- Owner: Klemek
- License: gpl-3.0
- Created: 2019-11-13T12:18:51.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-10-16T09:16:25.000Z (over 1 year ago)
- Last Synced: 2024-04-21T10:24:18.801Z (about 1 year ago)
- Language: Python
- Homepage: https://top.gg/bot/643808410495615006
- Size: 432 KB
- Stars: 8
- Watchers: 2
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

[](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
* %repeat - repeat last analysis (adding supplied arguments)
* %mobile - fix @invalid-user for last command but mentions users
* %gdpr - displays GDPR information
* %find - find specific words or phrases (you can use quotes to add spaces in queries, backticks define regexes)
* arguments:
* top - rank users for these queries
* %first - read first message (add text to filter like %find)
* arguments:
* image - pull an image instead of a message
* spoiler:allow/only - allow spoiler images
* %rand - read a random message (add text to filter like %find)
* arguments:
* image - pull an image instead of a message
* spoiler:allow/only - allow spoiler images
* %last - read last message (add text to filter like %find)
* arguments:
* image - pull an image instead of a message
* spoiler:allow/only - allow spoiler images
* %emojis - rank emojis by their usage
* arguments:
* - top emojis, default is 20
* all - list all common emojis in addition to this guild's
* members - show top member for each emoji
* sort:usage/reaction - other sorting methods
* %mentions - rank mentions by their usage
* arguments:
* - top mentions, default is 10
* all - show role/channel/everyone/here mentions
* %mentioned - rank specific user mentions by their usage
* arguments:
* - top mentions, default is 10
* %msg - rank users by their messages
* arguments:
* - top messages, default is 10
* %chan - rank channels by their messages
* arguments:
* - top channels, default is 10
* %react - rank users by their reactions
* arguments:
* - top messages, default is 10
* %words - (BETA) rank words by their usage
* arguments:
* - words containings or more letters, default is 3
* - top words, default is 10
* %cancel - cancel current analysis (not launched with fast)* Common arguments:
* @member/me: filter for one or more member
* #channel/here: filter for one or more channel
* - filter after
* - filter before
* all/everyone - include bots messages
* fast: only read cache
* fresh: does not read cache
* nsfw:allow/only - allow messages from nsfw channels
* mobile/mention: mentions users (fix @invalid-user bug)(Sample dates: 2020 / 2021-11 / 2021-06-28 / 2020-06-28T23:00 / today / week / 8days / 1y)
```## Running this bot
**1. Install requirements**
```
pip3 install -r requirements.txt
```**2. Make a .env file as following**
```
#.env
DISCORD_TOKEN=
```**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.17**
* compliency with 30 days data keeping policy and data encryption
* improvements and bug fix
* **v1.16**
* `%freq graph` graph hours frequency along the week
* uses discord new time format
* `%freq` now shows quietest day of week and hour of day
* improvements and bug fix
* **v1.15**
* `nsfw:allow/only` filter nsfw channels
* `%find` can use regexes
* `%first`, `%rand` and `%last` can be filter with specific keywords
* `%first`, `%rand` and `%last` can pull images
* bug fix
* **v1.14**
* `mobile/mention` arg to fix mobile bug
* `%repeat`, `%mobile` to repeat commands
* more scan: `%find`
* bug fix
* **v1.13**
* improved scan `%words`
* remove old and unused logs at start and guild leaving
* GDPR disclaimer before scanning
* start and stop dates
* bug fix and improvements
* **v1.12**
* more scans: `%words`
* concurrent `fast` analysis
* assume `fast` if last analysis is fresh
* better memory handling
* bug fix
* **v1.11**
* more scans: `%first`, `%rand`, `%last`
* streak computing in `%pres`
* **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 emojis
* 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