forkeado de spla/fediverse
49 líneas
6,4 KiB
Markdown
49 líneas
6,4 KiB
Markdown
# Fediverse Stats
|
|
This code gets all peers from running Mastodon or Pleroma host server and then all peers from host server's peers. Goal is to collect maximum number
|
|
of alive fediverse's servers and then query their API to obtain their registered users (if their API provide such information).
|
|
At the end it post the results to host server bot account.
|
|
|
|
### Dependencies
|
|
|
|
- **Python 3**
|
|
- Postgresql server
|
|
- Mastodon or Pleroma running server.
|
|
|
|
### Usage:
|
|
|
|
Within Python Virtual Environment:
|
|
|
|
1. Run `python db-setup.py` to setup and create new Postgresql database and needed tables in it.
|
|
|
|
2. Run `python setup.py` to get your bot's access token of your Mastodon or Pleroma server existing account. It will be saved to 'secrets/secrets.txt' for further use.
|
|
|
|
3. Run `python getworld.py` to get all peers from your host and the whole world of fediverse's servers (or almost the whole world).
|
|
|
|
4. Run `python fediverse.py` to query world alive servers API. It gets data from server's API according this table:
|
|
|
|
| Software | API peers | API users (nodeinfo/2.0.json) | API users (nodeinfo/2.0) | API users (api/v1/instance) | API (main/nodeinfo/2.0) | API (api/statusnet/config) | API (api/nodeinfo/2.0.json) | API (api/nodeinfo) |
|
|
|:--------------:|:---------------------:|:------------------------------------------:|:---------------------------:|:---------------------------:|:---------------------------:|:--------------------------:|:---------------------------:|:---------------------------:|
|
|
| Diaspora | | ['usage']['users']['total'] | | | | | | |
|
|
| Friendica | api/v1/instance/peers | | ['usage']['users']['total'] | | | | | |
|
|
| Ganggo | | | ['usage']['users']['total'] | | | | | |
|
|
| GNU Social | | | | | ['usage']['users']['total'] | | | |
|
|
| GNU Social 2.x | | | | | | | ['usage']['users']['total'] | |
|
|
| Groundpolis | | | ['usage']['users']['total'] | | | | | |
|
|
| Hubzilla | | | ['usage']['users']['total'] | | | | | |
|
|
| Mastodon | api/v1/instance/peers | ['usage']['users']['total'] (since v3.0.0) | | ['stats']['user_count'] | | | | |
|
|
| Osada | | | ['usage']['users']['total'] | | | | | |
|
|
| Peertube | | ['usage']['users']['total'] | | | | | | |
|
|
| Pixelfed | | | | | | | ['usage']['users']['total'] | |
|
|
| Pleroma | api/v1/instance/peers | ['usage']['users']['total'] | | | | | | |
|
|
| Plume | | | ['usage']['users']['total'] | | | | | |
|
|
| Prismo | | | ['usage']['users']['total'] | | | | | |
|
|
| Ravenvale | | ['usage']['users']['total'] | | | | | | |
|
|
| Squus | | | ['usage']['users']['total'] | | | | | |
|
|
| Writefreely | | | | | | | | ['usage']['users']['total'] |
|
|
| Zap | | | ['usage']['users']['total'] | | | | | |
|
|
|
|
5. Use your favourite scheduling method to set `python fediverse.py` after `python getworld.py` to run regularly.
|
|
|
|
Note: install all needed packages with 'pip install package' or use 'pip install -r requirements.txt' to install them.
|
|
|
|
|