{"id":20757828,"url":"https://github.com/amdmi3/habrss","last_synced_at":"2025-10-08T02:32:54.552Z","repository":{"id":139657806,"uuid":"433177567","full_name":"AMDmi3/habrss","owner":"AMDmi3","description":"Proxy which merges, sanitizes and filters habr.ru RSS feeds","archived":false,"fork":false,"pushed_at":"2023-08-21T18:49:33.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-18T04:44:03.573Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/AMDmi3.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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":"2021-11-29T19:52:09.000Z","updated_at":"2021-12-22T15:41:51.000Z","dependencies_parsed_at":"2024-11-17T09:45:32.515Z","dependency_job_id":"05f22f7b-c196-41e3-b5fa-2276e9cd9412","html_url":"https://github.com/AMDmi3/habrss","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AMDmi3%2Fhabrss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AMDmi3%2Fhabrss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AMDmi3%2Fhabrss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AMDmi3%2Fhabrss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AMDmi3","download_url":"https://codeload.github.com/AMDmi3/habrss/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243067150,"owners_count":20230875,"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-11-17T09:45:27.471Z","updated_at":"2025-10-08T02:32:49.531Z","avatar_url":"https://github.com/AMDmi3.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# habrss\n\nThis is a simple proxy which merges and filters RSS feeds from\n[habr.ru](https://habr.ru).\n\nMotivation: habr/geektimes, which were useful sources of knowledge\nonce, are now clogged with low quality content and corporate blogs.\nWhen reading a feed of articles degrades into skipping through the\ngarbage, automated solution comes in rescue. Apart from advanced\nfiltering, this project is capable of skipping duplicate posts when\nbeing subscribed to multiple feeds.\n\n## Usage\n\n```\n./habrss.py [-l host] [-p port] -f config\n```\n\nwhere\n\n* `-l` specifies host to listen on (default 127.0.0.1, specify 0.0.0.0 to listen on all interfaces)\n* `-p` specifies port to listen on (default 8080)\n* `-f` specifies path to config file\n\nThe script serves HTTP on a given host/port. Available pages include\na list of configured feeds, feeds themselves and a statistics on\nposts blocked and passed by filters.\n\n## Config\n\nExample:\n\n```\n- name: myfeed\n  urls:\n    - https://habr.com/ru/rss/flows/develop/all/?fl=ru\n    - https://habr.com/ru/rss/flows/popsci/all/?fl=ru\n  exclude:\n    - title: .*iOS.*\n    - category: Natural Language Processing\n    - creator: ph_piter\n  include:\n    - title: .*python.*\n    - category: Python\n    - creator: Zelenyikot\n- name: anotherfeed\n  urls:\n    ...\n```\n\nEach config entry specifies an output feed served by the script.\nEach such feed may aggregate one or more (in which case duplicates\nare removed) habr.ru feeds speficied as a set of `urls`. It's also\npossible to specify `exclude` filters which match post title, author,\nor a category with a case-insenesitive regexp (so if you want a\npartial match, use e.g. `title: .*python.*`). `include` filters\noverride `exclude` filters.\n\n## License\n\nGPLv3 or later, see [COPYING](COPYING).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famdmi3%2Fhabrss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famdmi3%2Fhabrss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famdmi3%2Fhabrss/lists"}