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: beautifulsoup4, feedparser, tweepy.
If you have Python 3 installed, you can install those modules with pip install bs4 feedparser tweepy.
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, ajust 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.