Skip to content

Read journal RSS feeds and tweet selected entries

License

Notifications You must be signed in to change notification settings

oliver-s-lee/PapersBot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PapersBot

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.


Requirements

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.

Setup

In order to run PapersBot, you need to do the following:

  • Create a file credentials.yml which 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.txt which 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.

How to run

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.

Other features

  • Running papersbot.py --top-tweets will 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.

About

Read journal RSS feeds and tweet selected entries

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%