Skip to main content

GuildWatcher

A discord webhook that posts guild changes (member joins, members leaves, member promoted) in a Discord channel.

GitHub Workflow Status GitHub release PyPI PyPI - Python Version PyPI - License codecov

Installing

with pip

To install the latest version on PyPi:

pip install guildwatcher

or

Install the latest version from GitHub

pip install git+https://github.com/Galarzaa90/GuildWatcher.git

with docker

docker pull galarzaa90/guild-watcher

with git

You can download the files and run locally, but you will require to install dependencies yourself:

git clone https://github.com/Galarzaa90/GuildWatcher
pip install -r requirements.txt

Configuring Webhooks

  1. On the desired channel, go to its settings and click on the Webhooks section.
  2. Click on Create Webhook.
  3. Customize the avatar as needed.
  4. Copy the webhook's URL.
  5. Create a file named config.yml and edit it, basing it on config-example.yml.
    • The top level webhook_url will be used, but if you want another guild to use a different URL, you can specify one for that guild.

Running

The data directory

The script saves every guild's data to a .data file. On the next scan, the current state of the guild is compared with the previous guild's data in order to detect the changes.

The .data files allow the script to be able to keep track of changes between executions. Without a .data file, if the script was stopped and was executed an hour later, all changes that occurred in that time frame would not be detected.

Installed via pip or locally

config.yml must be in the same directory you're running the script from.

If installed using pip, you can run the script in one of two ways:

guildwatcher

or

python -m guildwatcher

From docker image

In order to run the script from a docker image, you need to mount the configuration file to /app/config.yml.

While not required, it is highly recommended mounting a directory to store the guild data, to persist data files between executions. The data folder must be mounted to /app/data/.

docker run \
    -v "$(pwd)"/config.yml:/app/config.yml \
    -v "$(pwd)"/data/:/app/data/ \
    --rm -it galarzaa90/guild-watcher

Current Features

  • Announces when a member joins.
  • Announces when a member leaves or is kicked.
  • Announce when a member is promoted or demoted.
  • Announce when a member changes name.
  • Announce when a member's title is changed.
  • Announce when a new character is invited.
  • Announce when an invitation is revoked or rejected.
  • Announce when the guildhall changes.
  • Announce when a guild's application status is changed
  • Announce when a guild is in risk of being disbanded.
  • Multiple guilds support.
  • Configurable scan times.
  • Webhook URL configurable per guild.

Known Issues

  • Renaming a rank would trigger all rank members getting announced as leaving and joining back.

Planned features

  • Announce changes in guild attributes.
    • Application status
    • Disband warning
  • Granular notification settings (e.g. disable rank changes, disable title changes, etc.)

Example

image

Release files for guildwatcher 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for guildwatcher 2.0.0
File Size Uploaded
guildwatcher-2.0.0.tar.gz 11.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for guildwatcher 2.0.0
File Interpreter ABI Platform
guildwatcher-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 22.1 kB

Release files / guildwatcher-2.0.0.tar.gz

Download URL guildwatcher-2.0.0.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
8b714f179dd3a63222a25545659e08f6c77e8b0caff025a0af4a6707586590b8
BLAKE2b-256 checksum
How to use checksums
49d853b89397d6ea9cfbc80d32131b67dccc6903bfe1e1102573f44e36edc255
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2

Release files / guildwatcher-2.0.0-py3-none-any.whl

Download URL guildwatcher-2.0.0-py3-none-any.whl
Size 10.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0e3542b02e03b65ad272cf797d87190aee7e115c2f1b8b5f3af5b7dfd8f6303f
BLAKE2b-256 checksum
How to use checksums
d28f4e5ccb3706128ae6f36edc9608dece8e9b018c97ebcd51b75c788edd8b5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.0.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page