{"id":15099195,"url":"https://github.com/ckath/rssr","last_synced_at":"2026-02-21T23:04:59.537Z","repository":{"id":195051930,"uuid":"687688273","full_name":"Ckath/rssr","owner":"Ckath","description":"shoddy rss torrent utility","archived":false,"fork":false,"pushed_at":"2023-10-04T23:47:21.000Z","size":31,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-25T20:48:20.848Z","etag":null,"topics":["libcurl","rss","torrent","transmission"],"latest_commit_sha":null,"homepage":"","language":"C","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/Ckath.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-05T19:49:13.000Z","updated_at":"2025-04-12T02:00:36.000Z","dependencies_parsed_at":"2024-09-15T17:22:18.991Z","dependency_job_id":null,"html_url":"https://github.com/Ckath/rssr","commit_stats":{"total_commits":18,"total_committers":1,"mean_commits":18.0,"dds":0.0,"last_synced_commit":"df116634c7d5a71e159ff759646de0dc5cc0eb0c"},"previous_names":["ckath/rssr"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ckath/rssr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ckath%2Frssr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ckath%2Frssr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ckath%2Frssr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ckath%2Frssr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ckath","download_url":"https://codeload.github.com/Ckath/rssr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ckath%2Frssr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29696947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T18:18:25.093Z","status":"ssl_error","status_checked_at":"2026-02-21T18:18:22.435Z","response_time":107,"last_error":"SSL_read: 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":["libcurl","rss","torrent","transmission"],"created_at":"2024-09-25T17:07:26.349Z","updated_at":"2026-02-21T23:04:59.504Z","avatar_url":"https://github.com/Ckath.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RSSR\nminimal (read: sensible for me only) rss torrent utility for torrent clients\n\n## features\n- genuinely serviceless, run to update, throw in cron or systemd timer to automate\n- optimized for dedicated feeds, delays to not hit ratelimits\n- compatible with any torrent client that allows adding .torrent through command\n- works for me\n\n## install\n```\nmake install\n```\nbesides having a reasonable OS, libcurl should be the only dep\n\n## usage\n```\nusage: rssr [-t delay] [-c cmd] [-l dir] [-a url -w dest -f filter] [-d id] [-p c/u/d]\noptions\n-t\tdelay between requests (seconds), default 22\n-c\ttorrent add cmd (use {file} and {dest} in it), default transmission-remote -a \"{file}\" -w \"{dest}\"\n-l\tconfig and cache location, default ~/.config/rssr/\nactions\n-a\tadd \"url\" -w \"dest\" to config the -f filter is optional\n-d\tdelete entry matching id\n-p\tprint current feeds in format, c csv, u urls, d destinations\n```\n\nthe rss parser is minimal and meant to work with most rss feeds, there doesnt seem to be a totally agreed format but it should be able to get the info from most. if it doesnt make an issue I guess.\n\nbasic usage will be very simple:\n```\n# add feed\nrssr -a \"https://url.com/rssfeed\" -w \"/mnt/drive/myquestionablemedia/qualityshow\"\n# grab and add every (new) torrent found in feed\nrssr\n# or automate it\nln -s $(which rssr) /etc/cron.hourly/\n# see feeds with ids\nrssr -p c\n# delete feed at position 0\nrssr -d 0\n# if for some reason you need torrents to be readded\nrm -rf ~/.config/rssr/cache\n```\n\nand thats all there is, use the other flags as mentioned in usage to overwrite default config. any further torrent client specific integration is out of the scope for this utility, its only job is to watch feeds and add new torrents.\n\n## reviews\n\u003e You should parse XML with a library. You generally shouldn't write parsers on your own, those take a lifetime to get right, specially for something as awful as XML. A malicious server could pwn your parser.\n\n\\- Bernd\n\u003e Your string handling seems to be full of bugs, poor practices, and very low performance in general. There's lots of unnecessary copying, you unnecessarily use hardcoded 2000 byte buffers with 2000 as a magic number everywhere, and often there is no reason to make the buffer 2000 bytes long either. The is also more complicated than it needs to be.\n\n\\- Bernd\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fckath%2Frssr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fckath%2Frssr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fckath%2Frssr/lists"}