{"id":21450563,"url":"https://github.com/mightybroccoli/bl-imp","last_synced_at":"2026-05-18T18:38:36.548Z","repository":{"id":38095412,"uuid":"162816138","full_name":"mightyBroccoli/bl-imp","owner":"mightyBroccoli","description":"Python tool to grab, parse and dump the JabberSpam blacklist to an ejabberd compatible yml file","archived":false,"fork":false,"pushed_at":"2024-02-07T11:17:35.000Z","size":118,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-17T02:24:27.289Z","etag":null,"topics":["blacklist","fight-spam","jabber","jabberspam","xmpp","xmpp-server"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mightyBroccoli.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":"2018-12-22T14:03:40.000Z","updated_at":"2023-09-24T00:15:42.000Z","dependencies_parsed_at":"2025-01-23T08:23:44.421Z","dependency_job_id":"635dd4c5-41e3-4052-9721-fbc5c17aaef7","html_url":"https://github.com/mightyBroccoli/bl-imp","commit_stats":{"total_commits":52,"total_committers":2,"mean_commits":26.0,"dds":"0.34615384615384615","last_synced_commit":"04b143f334b9299ebfa05901bfa678be8be37b2b"},"previous_names":["mightybroccoli/blacklist_importer"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mightyBroccoli%2Fbl-imp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mightyBroccoli%2Fbl-imp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mightyBroccoli%2Fbl-imp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mightyBroccoli%2Fbl-imp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mightyBroccoli","download_url":"https://codeload.github.com/mightyBroccoli/bl-imp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243960637,"owners_count":20375108,"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":["blacklist","fight-spam","jabber","jabberspam","xmpp","xmpp-server"],"created_at":"2024-11-23T04:15:47.509Z","updated_at":"2026-05-18T18:38:36.490Z","avatar_url":"https://github.com/mightyBroccoli.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## bl-imp - the JabberSpam bl(acklist) imp(orter)\n\n### precursor\nPlease be warned that at this point the JabberSpam blacklist is the only list that will be used. It is planed to open up\nthe tool to also import other lists in the future.\n\n### install\nThe tool can be installed easily via that Python package Index (pip). After that the local wrapper `/usr/bin/bl-imp`\ncan be called to use the module.\n```bash\npip install bl-imp\n```\n\n### `bl-imp` usage\n```\nusage: bl-imp [-h] [-o OUTFILE] [-dr]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -o OUTFILE, --outfile OUTFILE\n                        set path to output file\n  -dr, --dry-run        perform a dry run\n```\n\n#### without any arguments\nRunning `bl-imp` without any arguments, cause the tool to update the local cache and etag file. After that the tool will\nexit with the exit code `2` followed by the help message to stderr.\n\n```bash\nno outfile assigned\n```\n\n#### dry run\nRunning `bl-imp` with `-dr` or `--dry-run` as argument will cause the tool to only output the aggregated yaml file to\nstdout. Except the local etag and cache file no file is written to disk.\n\n```bashinstaller\n$ /usr/bin/bl-imp --dry-run\noutfile selected: None\nacl:\n  spamblacklist:\n    server:\n      - \"a-server.tld\"\n      - \"b-server.tld\"\n```\n\n#### --outfile /path/out.yml\nAdding the `outfile` argument while omitting the dry run argument runs the tools silently while doing its thing.\n\n### ejabberd configuration\nTo fully utilize the tool some configuration changes are required.\nFirstly it is necessary that `bl-imp` is the only one editing the defined yml file, because any local change not\npresent in the remote list will be overwritten automatically. Furthermore it is necessary for the file to be separate\nfrom the \"main\" ejabberd configuration e.g `ejabberd.yml`. Lastly to protect the integrity of your config files the\n`allow_only` argument restricts the external file to only allow for `acl` rules.\n\n#### ejabberd acl config\n```yaml\n## acl\ninclude_config_file:\n  \"/etc/ejabberd/blacklist.yml\":   # ⟵ the path is completely user configurable\n    allow_only:                    # ⟵ the allow_only section is optional but recommended\n      - acl\n\n## access rules\naccess_rules:\n  s2s_access:\n    - deny: spamblacklist\n    - allow\n```\n\n### automation\nThe tool is meant to be used in an automatic fashion. It is build to operate silently without any user interaction.\n\nFor example the script could be run every day at 00:01 to automatically add/ remove affected servers from the local\nblacklist and reload the configuration if the first task finished successfully.\n\n```cron\n# jabber blacklist update\n\n# the outfile here is configured with the shortflag -o instead of the long form\n1 0 * * * /usr/bin/bl-imp -o  /etc/ejabberd/config/blacklist.yml \u0026\u0026 /usr/bin/ejabberdctl reload_config\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmightybroccoli%2Fbl-imp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmightybroccoli%2Fbl-imp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmightybroccoli%2Fbl-imp/lists"}