August 19, 2014

How to Synchronise a Syndication Feed to Reddit

The python code below will let you post the newest entry in your blog's syndication feed to Reddit's programming subreddit automatically:


#!/Users/hdiwan/.virtualenvs/blogger2reddit/bin/python
import argparse
import feedparser
import logging
import operator
import praw

if __name__ == '__main__':
    parse = argparse.ArgumentParser(description="Submit a feed's newest entry to reddit")
    parse.add_argument('-f', '--feed', action='store', help='Feed URL', default='http://www.prolificprogrammer.com/atom.xml')
    parse.add_argument('-p', '--password', action='store', help='Reddit password')
    parse.add_argument('-u', '--user', action='store', help='Reddit Username')
    parse.add_argument('-v', '--verbose', action='store_true', help='Verbose debugging')
    args = parse.parse_args()

    if args.verbose:
        logging.basicConfig(level=logging.DEBUG)
    else:
        logging.basicConfig(level=logging.FATAL)

    feed = feedparser.parse(args.feed)
    entries = feed.entries
    entries = sorted(entries, key=operator.itemgetter('published'))
    logging.debug(entries)

    entry = entries[0]
    submission_title = entry.title
    submission_link = entry.link

    r = praw.Reddit(user_agent='example')

    r.login(args.user, args.password)
    logging.debug('logged in to reddit as {}'.format(args.user))
    sr = r.get_subreddit('programming')
    sr.submit(submission_title, url=submission_link)

No comments:

Post a Comment