{"id":16765623,"url":"https://github.com/galarzaa90/guildwatcher","last_synced_at":"2025-03-21T23:33:20.187Z","repository":{"id":57436355,"uuid":"84791880","full_name":"Galarzaa90/GuildWatcher","owner":"Galarzaa90","description":"A discord webhook to announce changes in a Tibia Guild.","archived":false,"fork":false,"pushed_at":"2024-07-15T23:11:29.000Z","size":107,"stargazers_count":4,"open_issues_count":3,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-14T05:43:08.388Z","etag":null,"topics":["discord","discord-webhooks","python","python3","python34","tibia"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Galarzaa90.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["Galarzaa90"],"patreon":null,"open_collective":null,"ko_fi":"galarzaa","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"custom":null}},"created_at":"2017-03-13T06:32:55.000Z","updated_at":"2024-07-15T23:11:32.000Z","dependencies_parsed_at":"2024-07-16T03:03:22.630Z","dependency_job_id":"d9f682a3-bf11-425c-9791-fc4e679a6ee9","html_url":"https://github.com/Galarzaa90/GuildWatcher","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Galarzaa90%2FGuildWatcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Galarzaa90%2FGuildWatcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Galarzaa90%2FGuildWatcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Galarzaa90%2FGuildWatcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Galarzaa90","download_url":"https://codeload.github.com/Galarzaa90/GuildWatcher/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221820601,"owners_count":16886222,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["discord","discord-webhooks","python","python3","python34","tibia"],"created_at":"2024-10-13T05:43:05.771Z","updated_at":"2024-10-28T11:14:58.469Z","avatar_url":"https://github.com/Galarzaa90.png","language":"Python","funding_links":["https://github.com/sponsors/Galarzaa90","https://ko-fi.com/galarzaa"],"categories":[],"sub_categories":[],"readme":"# GuildWatcher\n\nA discord webhook that posts guild changes (member joins, members leaves, member promoted) in a Discord channel.\n\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/Galarzaa90/GuildWatcher/build.yml?branch=main)\n[![GitHub release](https://img.shields.io/github/release/Galarzaa90/GuildWatcher/all.svg)](https://github.com/Galarzaa90/GuildWatcher/releases)\n[![PyPI](https://img.shields.io/pypi/v/GuildWatcher.svg)](https://pypi.python.org/pypi/GuildWatcher/)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/GuildWatcher.svg)\n![PyPI - License](https://img.shields.io/pypi/l/GuildWatcher.svg)\n[![codecov](https://codecov.io/gh/Galarzaa90/GuildWatcher/branch/master/graph/badge.svg?token=8MUNkVsCtO)](https://codecov.io/gh/Galarzaa90/GuildWatcher)\n\n## Installing\n### with pip\nTo install the latest version on PyPi:\n```shell\npip install guildwatcher\n```\n\nor\n\nInstall the latest version from GitHub\n```shell\npip install git+https://github.com/Galarzaa90/GuildWatcher.git\n```\n\n### with docker\n```shell\ndocker pull galarzaa90/guild-watcher\n```\n\n\n### with git\nYou can download the files and run locally, but you will require to install dependencies yourself:\n```shell\ngit clone https://github.com/Galarzaa90/GuildWatcher\npip install -r requirements.txt\n```\n\n## Configuring Webhooks\n1. On the desired channel, go to its settings and click on the **Webhooks** section.\n1. Click on **Create Webhook**.\n1. Customize the avatar as needed.\n1. Copy the webhook's URL.\n1. Create a file named **config.yml** and edit it, basing it on **config-example.yml**.\n    * 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.\n    \n## Running\n### The data directory\nThe 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.\n\nThe `.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.\n\n### Installed via pip or locally\n`config.yml` must be in the same directory you're running the script from.\n\n\nIf installed using pip, you can run the script in one of two ways:\n```shell\nguildwatcher\n```\n\nor\n\n```shell\npython -m guildwatcher\n```\n\n### From docker image\nIn order to run the script from a docker image, you need to mount the configuration file to `/app/config.yml`. \n\nWhile 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/`.\n\n```shell\ndocker run \\\n    -v \"$(pwd)\"/config.yml:/app/config.yml \\\n    -v \"$(pwd)\"/data/:/app/data/ \\\n    --rm -it galarzaa90/guild-watcher\n```\n\n\n## Current Features\n- Announces when a member joins.\n- Announces when a member leaves or is kicked.\n- Announce when a member is promoted or demoted.\n- Announce when a member changes name.\n- Announce when a member's title is changed.\n- Announce when a new character is invited.\n- Announce when an invitation is revoked or rejected.\n- Announce when the guildhall changes.\n- Announce when a guild's application status is changed\n- Announce when a guild is in risk of being disbanded.\n- Multiple guilds support.\n- Configurable scan times.\n- Webhook URL configurable per guild.\n\n## Known Issues\n- Renaming a rank would trigger all rank members getting announced as leaving and joining back.\n\n## Planned features\n\n- Announce changes in guild attributes.\n    - Application status\n    - Disband warning\n- Granular notification settings (e.g. disable rank changes, disable title changes, etc.)\n\n## Example\n![image](https://user-images.githubusercontent.com/12865379/29383497-7df48300-8285-11e7-83c3-f774ad3a43a8.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgalarzaa90%2Fguildwatcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgalarzaa90%2Fguildwatcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgalarzaa90%2Fguildwatcher/lists"}