import narwal import feedparser import time import calendar class vari(): r = narwal.Reddit(user_agent='RSS Bot') time.sleep(3) #rssbot bot_usr = ['User1', 'User2', 'User3', 'User4'] bot_pss = ['Pass1', 'Pass2', 'Pass3', 'Pass4'] bot_rss = ['http://feed1.com/rss', 'http://feed2.com/rss', 'http://feed3.com/rss', 'http://feed4.com/rss'] bot_sr = ['Subreddit1', 'Subreddit2', 'Subreddit3', 'Subreddit4'] last_check = time.gmtime() #Enum Broadcast Type class BCType: Info=1 Alert=2 Login=3 Post=4 Sleep=5 #Broadcast def Broadcast(BCType, message): if (BCType == 1): print '[INFO] ' + message elif (BCType == 2): print '[ALERT] ' + message elif (BCType == 3): print '[LOGIN] ' + message elif (BCType == 4): print '[POST] ' + message elif (BCType == 5): print '[SLEEP] ' + message #Login def Login(Username, Password): vari.r.login(Username, Password) time.sleep(3) if (vari.r.logged_in == False): Broadcast(BCType.Login, 'Login fail as ' + Username) time.sleep(90) Login(Username, Password) Broadcast(BCType.Login, 'Login as ' + Username) #RSSCheck def RSSPost(): curr_bot = 0 while (curr_bot < len(vari.bot_usr)): Broadcast(BCType.Info, 'Checking bot ' + vari.bot_usr[curr_bot]) to_post = [] feed = feedparser.parse(vari.bot_rss[curr_bot]) for e in feed.entries: try: if (calendar.timegm(e.published_parsed) > calendar.timegm(vari.last_check)): to_post.append(e) except: pass if (len(to_post) > 0): Login(vari.bot_usr[curr_bot], vari.bot_pss[curr_bot]) for e in to_post: try: r.submit_link(vari.bot_sr[curr_bot], e.title, e.link) Broadcast(BCType.Post, vari.bot_usr[curr_bot] + ' Posted ' + e.title) time.sleep(60) except: pass curr_bot += 1 vari.last_check = time.gmtime() #Main# while (True): #RSSbot try: RSSPost() except: Broadcast(BCType.Alert, 'RSSbot exception') vari.last_check = time.gmtime() #Sleep Broadcast(BCType.Sleep, 'Sleeping for 30min...') time.sleep(1800) # #Done Broadcast(BCType.Alert, 'Program Done...')