PapersBot is an academic Twitter bot: it reads RSS feeds from journals and preprint archives, selects papers based on keyword matching, and tweets them.
I (@fxcoudert) wrote PapersBot to operate my @MOF_papers twitter bot, which tweets papers about metal–organic frameworks and related nanoporous materials.
PapersBot was inspired by (and borrows some code from) feedr.
Python 3 and the following modules: pyyaml, beautifulsoup4, feedparser, tweepy.
If you have Python 3 installed, you can install those modules with pip install pyyaml bs4 feedparser tweepy. On some systems (like Debian), pip may actually be called pip3 for Python 3.
In order to run PapersBot, you need to do the following:
- Create a file
credentials.ymlwhich will contain your Twitter app credentials, with four lines:
CONSUMER_KEY: "x1F3s..."
CONSUMER_SECRET: "3VNg..."
ACCESS_KEY: "7109..."
ACCESS_SECRET: "AdnA..."
If you do not know how to get your Twitter credentials, follow steps #1 and #2 in this tutorial to register your app with Twitter and get credentials.
- Adjust the file
feeds.txtwhich contains the list of RSS feeds you want to crawl. Lines starting with#are ignored. - Inside the code, adjust the regular expression that selects the papers of interest
- Some extra parameters can be tweaked in configuration file
config.yml.
PapersBot tracks in a file named posted.dat (which it will create) the papers that have already been tweeted. The first time you run it, if there is no posted.dat from a prior run, PapersBot can thus post a lot of papers. If you want to avoid this, especially on the first run or if it hasn't been run for a long time, use the --do-not-tweet option.
papersbot.py --do-not-tweet will list the papers it would tweet, without actually tweeting. But papers will still be recorded as tweeted in the posted.dat file.
- Running
papersbot.py --top-tweetswill give you a list of the 5 top tweets, from the bot's 200 latest tweets. It sorts tweets by adding number of retweets and likes.