{"id":15374623,"url":"https://github.com/ading2210/ext-watcher","last_synced_at":"2025-04-15T15:12:11.381Z","repository":{"id":182049736,"uuid":"665526651","full_name":"ading2210/ext-watcher","owner":"ading2210","description":"A Python script which provides update notifications for Chrome extensions, as well as automatic deobfuscation and diff generation.","archived":false,"fork":false,"pushed_at":"2023-10-30T16:53:32.000Z","size":59,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-15T15:12:05.586Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ading2210.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-07-12T11:59:01.000Z","updated_at":"2025-03-16T18:22:42.000Z","dependencies_parsed_at":"2023-07-18T14:53:55.551Z","dependency_job_id":null,"html_url":"https://github.com/ading2210/ext-watcher","commit_stats":null,"previous_names":["ading2210/ext-watcher"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ading2210%2Fext-watcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ading2210%2Fext-watcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ading2210%2Fext-watcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ading2210%2Fext-watcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ading2210","download_url":"https://codeload.github.com/ading2210/ext-watcher/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249094932,"owners_count":21211837,"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":[],"created_at":"2024-10-01T13:59:12.514Z","updated_at":"2025-04-15T15:12:11.361Z","avatar_url":"https://github.com/ading2210.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chrome Extension Update Watcher\nThis is a Python script which provides update notifications for Chrome extensions. It is also able to automatically deobfuscate the extension's source and generate diffs between two versions. The script then exports these results to a Discord webhook.\n\n## Usage:\n1. Clone this repository.\n2. Install [webcrack](https://github.com/j4k0xb/webcrack) by running `npm install -g webcrack`. Make sure it is in your PATH.\n3. Install this project's dependencies by running `pip3 install -r requirements.txt`.\n4. Run `python3 main.py` to generate the config file.\n5. Edit `config/config.json`. The configuration options are detailed in the next section.\n6. Run `python3 main.py` to download the extensions you configured. Running this file in the future will also check for updates and report them to the configured webhook.\n7. (optional) Put `main.py` on a cron job to run it repeatedly. \n\n## Configuration:\n- `watched_extensions` - A dict of extensions that the script will check for updates, with the extension ID as the key and any options as the value.\n- `discord_webhooks` - A list of strings containing Discord webhook URLs to report to.\n- `collapse_diffs` - If this is set to true, the generated diffs will be in one file, instead of being split up for each modified file.\n- `debug` - If this is set to true, the logging level will be set to `logging.DEBUG` instead of `logging.INFO`.\n\n### Extension Options:\nExtension options should be specified as a dict. All settings in this list are optional.\n - `update_url` - The custom update server for the extension. This defaults to Google's official servers.\n - `name_override` - Overrides the extension's name.\n\n### Example Config File:\n```json\n{\n  \"watched_extensions\": {\n    \"haldlgldplgnggkjaafhelgiaglafanh\": {\n      \"update_url\": \"https://ext.goguardian.com/stable.xml\"\n    },\n    \"joflmkccibkooplaeoinecjbmdebglab\": {\n      \"update_url\": \"https://extensions.securly.com/extensions.xml\"\n    },\n    \"pgmjaihnmedpcdkjcgigocogcbffgkbn\": {},\n    \"iheobagjkfklnlikgihanlhcddjoihkg\": {\n      \"name_override\": \"Securly for Chromebooks (old)\"\n    },\n    \"ddfbkhpmcdbciejenfcolaaiebnjcbfc\": {}\n  },\n  \"discord_webhooks\": [\n    \"https://discord.com/api/webhooks/xxxxxxxxxxxxxx/xxxxxxxxxxxxxx\"\n  ],\n  \"collapse_diffs\": true,\n  \"debug\": false\n}\n```\n\n## Copyright Notice:\n\nThis project uses [webcrack](https://github.com/j4k0xb/webcrack) for the deobfuscation of JS files. \n```\nading2210/ext-watcher: A Python program for Chrome extension update notifications.\nCopyright (C) 2023 ading2210\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with this program.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fading2210%2Fext-watcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fading2210%2Fext-watcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fading2210%2Fext-watcher/lists"}