{"id":20116316,"url":"https://github.com/cschreib/flexible-arxiv-rss","last_synced_at":"2026-06-07T04:31:24.117Z","repository":{"id":77388519,"uuid":"73632854","full_name":"cschreib/flexible-arxiv-rss","owner":"cschreib","description":"Suite of tools to discover new articles on the arXiv, filter them, and broadcast them as an RSS feed, for your own use or for others.","archived":false,"fork":false,"pushed_at":"2018-07-12T09:20:25.000Z","size":64,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-02T19:25:03.219Z","etag":null,"topics":["arxiv","rss-generator"],"latest_commit_sha":null,"homepage":null,"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/cschreib.png","metadata":{"files":{"readme":"README","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":"2016-11-13T17:55:52.000Z","updated_at":"2019-06-29T19:57:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"e44d1fdf-3bb8-4fe4-9753-8d611e46b8ca","html_url":"https://github.com/cschreib/flexible-arxiv-rss","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cschreib/flexible-arxiv-rss","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cschreib%2Fflexible-arxiv-rss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cschreib%2Fflexible-arxiv-rss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cschreib%2Fflexible-arxiv-rss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cschreib%2Fflexible-arxiv-rss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cschreib","download_url":"https://codeload.github.com/cschreib/flexible-arxiv-rss/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cschreib%2Fflexible-arxiv-rss/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34009201,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["arxiv","rss-generator"],"created_at":"2024-11-13T18:40:02.848Z","updated_at":"2026-06-07T04:31:24.098Z","avatar_url":"https://github.com/cschreib.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Install instructions\n====================\n\n*) Install a simple web server (nginx):\n        sudo apt-get install nginx-common nginx-light\n\n   Note: you do not need root permission to do any of the following.\n\n*) Build and install the arxiv-transform tools. From the source directory:\n        mkdir build \u0026\u0026 cd build\n        cmake ../\n        make\n        make install\n\n*) Run the web server: (note: the path has to be absolute here)\n        nginx -c /home/\u003cyour_username\u003e/.local/share/arxiv-transform/nginx.conf\n\n   It may print an error about being unable to open a log file. You can ignore this error. If\n   instead you get errors about \"98: Adress already in use\", this means that nginx is already\n   running, so it is not necesary to run this command again. To make sure everything is fine, you\n   can \"killall nginx\" and run the command once more. Ideally, this command should be added to\n   your list of commands to run at startup as well, so you don't have to manually call it.\n\n*) Then we need to setup the daily probe of the arXiv. If you leave your computer running during\n   the whole week without turning it off, you will want to use a chron job. For example, open your\n   cron table with:\n        crontab -e\n\n   Then add this line to the file to probe the arXiv every day at 7am:\n        00 07 * * * /home/\u003cyour_username\u003e/.local/share/arxiv-transform/poll_arxiv_oai.sh\n\n   You can choose this update time yourself: you should choose a time that is a) before you\n   usually arrive to work, and b) after the arXiv daily update to remain on top of the flow...\n\n   If you shutdown your computer every day, then you can instead simply add the command to your\n   list of startup programs:\n        /home/\u003cyour_username\u003e/.local/share/arxiv-transform/poll_arxiv_oai.sh\n\n   It does not matter if this command is executed before or after the web server is started.\n\n*) To continue we need a first probe of the arXiv to work with.\n   Run the script manually (just this one time):\n        /home/\u003cyour_username\u003e/.local/share/arxiv-transform/poll_arxiv_oai.sh\n\n*) Then open your favorite RSS reader and use the following RSS feed URL:\n        http://localhost:8080/arxiv/rss/feed.rss\n\n   If you are using Thunderbird, you need a \"Blog and news\" account. If you don't have one already,\n   go to \"Edit \u003e Account Settings \u003e Account Actions \u003e Add Feed account...\". This will add a new\n   entry alongside your inbox.\n\n   Right click on that entry and choose \"Subscribe...\", then write the above URL in the \"Feed URL\"\n   edit box. Then press \"Add\".\n\n*) And that's it! Now you will get an RSS feed from the arXiv without missing any article if you go\n   traveling without internet connection for a week. The first time the program is ran, it will\n   fetch the new articles from the past 5 days, and will accumulate papers with up to 2 weeks of\n   history.\n\n*) Note that this setup will only work locally, one one computer. If you need to access this RSS\n   feed from multiple computers, or if you wish to use a feed aggregator, you need to make the\n   website public, and use the public address instead of \"localhost\" when registering to the feed.\n   This may require you to:\n    1) Have a static public IP address (depending on your internet provider, you can have either a\n       fixed or dynamic address). NB: you can see your ip by Googleing \"what is my ip\".\n    2) Have a static local IP address (192.168.0.1, for example).\n    3) Configure your router to forward the traffic through port 8080 toward your computer.\n\n   Obviously this requires you to have admin access to your network. If this is not possible, an\n   alternative solution is to build (or pay for) a dedicated server on which the code will run.\n\n   The filters will be shared among all computers, but each computer can have a different read\n   history.\n\n*) You can also edit the preferences.xml file to setup some filtering to reduce the amount of\n   papers that appear in the RSS feed. See next section.\n\n\nCustomizing RSS feed\n====================\n\nOpen the file:\n    /home/\u003cyour_username\u003e/.local/share/arxiv-transform/preferences.xml\n\nThis file controls, among other things, the various filters that can be applied to the arXiv\nentries before they are sent to the RSS feed. Below is a description of all these options.\n\n*) keep_history\nThis defines the amount of time a paper will remain in the RSS feed. Papers older than this will\nbe removed. You should set this amount of time to the longest time you may expect your computer to\nbe turned off (or without internet access). The syntax is that of the \"date\" command line tool, so\nyou can have \"3 days ago\" or \"1 month ago\". For example:\n    \u003cpref name=\"keep_history\"\u003e2 weeks ago\u003c/pref\u003e\n\n*) star_include\nThis is a list of comma-separated words or expressions that will be searched for in each paper's\ntitle and abstract. If at least one of these is found, the paper will appear with a little star in\nits title in your RSS feed. These are case-insensitive. For example:\n    \u003cpref name=\"content_must_include\"\u003egalaxy, main sequence, main-sequence, bulges\u003c/pref\u003e\n\n*) content_exclude\nSame as above, except that a paper is deleted if any of these words or expressions is found in the\ntitle or abstract.\n    \u003cpref name=\"content_must_include\"\u003echemistry, neutralino, comet\u003c/pref\u003e\n\n*) categories_must_include/categories_exclude\nThese two options work exactly the same as star_include and content_exclude, but will be applied\nto the arXiv category string instead. The category string contains all the categories the paper\nhas been attributed to. There can be only one category (usually), or several if the paper has been\ncrossposted. For example:\n    \u003cpref name=\"categories_must_include\"\u003eastro-ph.GA, astro-ph.CO\u003c/pref\u003e\n    \u003cpref name=\"categories_exclude\"\u003egr-qc, astro-ph.SR\u003c/pref\u003e\n... will only display articles listed in astro-ph.GA or astro-ph.CO, and will exclude those that\nare also listed in gr-qc and astro-ph.SR.\n\n*) allow_crosspost\nSet this to \"0\" to hide all entries that are listed in more than one arXiv category.\n\n*) allow_replacements\nSet this to \"0\" to only show papers when they appear on arXiv for the first time, and hide\nannouncements for updates and revisions.\n\n*) only_accepted\nSet this to \"1\" to only display the papers that contain the word \"accepted\" in their comment\nfield. The goal is to only list papers that are accepted for publication, rather than just\nsubmitted. This option will take precedence over \"allow_replacement\", so you may see the same\npaper appearing twice if the authors update the arXiv version multiple times after the paper\nhas been accepted.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcschreib%2Fflexible-arxiv-rss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcschreib%2Fflexible-arxiv-rss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcschreib%2Fflexible-arxiv-rss/lists"}