{"id":20770608,"url":"https://github.com/codemonauts/wikiwatch","last_synced_at":"2026-04-02T18:45:10.172Z","repository":{"id":82654034,"uuid":"569339489","full_name":"codemonauts/wikiwatch","owner":"codemonauts","description":"A bot that can detect anonymous Wikipedia edits from known IP ranges and send a Toot/Tweet about it","archived":false,"fork":false,"pushed_at":"2023-01-16T08:57:24.000Z","size":22,"stargazers_count":4,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-30T13:59:29.590Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codemonauts.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2022-11-22T15:50:34.000Z","updated_at":"2024-08-02T02:23:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"227f9e53-99f2-4fbb-b08f-12fa85861ebb","html_url":"https://github.com/codemonauts/wikiwatch","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codemonauts/wikiwatch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codemonauts%2Fwikiwatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codemonauts%2Fwikiwatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codemonauts%2Fwikiwatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codemonauts%2Fwikiwatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codemonauts","download_url":"https://codeload.github.com/codemonauts/wikiwatch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codemonauts%2Fwikiwatch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31313291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-11-17T12:10:46.456Z","updated_at":"2026-04-02T18:45:10.156Z","avatar_url":"https://github.com/codemonauts.png","language":"Go","readme":"# wikiwatch\n\nWith wikiwatch you can monitor anonymous edits made in the Wikipedia and match the source IP address of the edit with a\nknown list of IP ranges to assign them to a specific organisation,company,etc. and send a Toot or Tweet.\n\nThis tool is meant as a successor to [edsu/anon](https://github.com/edsu/anon), where we switched from using the IRC\nchannel for getting updates, to the new [EventStreams](https://wikitech.wikimedia.org/wiki/Event_Platform/EventStreams).\n\nWe mainly built this tool to migrate our own bots:\n  * @bundesedit ([Twitter](https://twitter.com/bundesedit),[Mastodon](https://botsin.space/@bundesedit))\n  * @euroedit ([Twitter](https://twitter.com/euroedit),[Mastodon](https://botsin.space/@bundesedit))\n  * @landesedit ([Twitter](https://twitter.com/landesedit),[Mastodon](https://botsin.space/@bundesedit))\n  * @politikedit ([Twitter](https://twitter.com/politikedits))\n\nBut if you also run a bot with this tool, we would love a PR with the name and link added to this list from you :)\n\n\n## Migration from edsu/anon \nIf you previously used the `anon` tool, you can use the *convertRanges.py* tool, to convert the json syntax of the old\nipranges file to the new syntax used by this tool. \n\n## Get Mastodon credentials\n  * Choose a Mastodon instance (There are servers specifically for bots like e.g. botsin.space)\n  * Create an account\n  * Go to `\u003cserveraddress\u003e/settings/applications` and create a new application\n  * Give it only the `write:statuses` scope\n  * Click on your application to get the client key, client secret and access token\n  * Add a `mastodon` section to your config file (check the example config)\n\nAs soon as the bot finds a mastodon section in the config, it will start sending toots.\n\n## Get Twitter credentials\n  * Sign up for a Developer Account over [here](https://developer.twitter.com/en/apply-for-access)\n  * Go to the [Projects\u0026Apps Overview](https://developer.twitter.com/en/portal/projects-and-apps) and create a new\n      project\n  * At the last step click \"New app\" and configure the new app inside your project\n  * Click the black button labeled \"App settings\" to go to the settings page of your new app\n  * Click \"Keys and tokens\" in the top navigation\n  * Click \"Generate\" in the box labeled \"Access Token and secrets\"\n  * Add a `twitter` section to your config file (check the example config) and paste the values from the popup (They\n      will only be shown once on the website!)\n\nAs soon as the bot finds a twitter section in the config, it will start sending tweets.\n\n## Usage\nTake the *config-example.json* and copy it to *config.json* and addapt to your needs. If you don't plan on using Twitter\nor Mastodon, you can completly remove the whole block from the config. Depending on the number of organisation you want\nto monitor, you can either put the IP ranges directly into the config file under *organisations* or put them in a\nseperate json (this way you can publish them publicly) and provide the path to the json in *organisations_file*.\n\nThen either take the compiled binary from the [Github releases](https://github.com/codemonauts/wikiwatch/releases) or\ndownload the Docker container:\n### Standalone\n```bash\n./wikiwatch -config ./config.json -loglevel INFO\n```\n\nor take the example systemd unitfile from this repo and deploy it.\n\n\n### Docker\n```bash\ndocker run --rm -v ${PWD}/config.json:/config.json ghcr.io/codemonauts/wikiwatch\n```\n\n\n\nWith ❤ by [codemonauts](https://codemonauts.com)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodemonauts%2Fwikiwatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodemonauts%2Fwikiwatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodemonauts%2Fwikiwatch/lists"}