def copy_subs(): already_done = [] while True: already_done=pickle.load(open("copied","r+")) for sub in subs: for s in r.get_subreddit(sub).get_new(limit=10): if s.id not in already_done: already_done.append(s.id) log("Submitting new story from {1}: {0}".format(s.short_link,sub)) t = "From /r/"+sub+":"+s.title t = t[0:300] if len(s.selftext) is not 0: handle_ratelimit(r.submit,h,t,text=s.selftext) elif len(s.url) is not 0: handle_ratelimit(r.submit,h,t,url=s.url) pickle.dump(already_done,open("copied","r+"))
def watch(self): subreddit = self.praw_reddit.get_subreddit(self.name) util.bot_stdout_print("Getting comments for subreddit: %s" % (self.name)) for submission in subreddit.get_comments(): if submission.id not in self.already_done: try: msg = submission.body successes,failures = self.msg_parser.parse(msg) self.already_done.append(submission.id) reply = self.get_reply(submission, successes, failures) if not reply is None: util.bot_stdout_print("Reply to %s: %s\n" % (submission.id, reply)) util.handle_ratelimit(submission.reply, reply) except: util.bot_stdout_print("Unknown exception: %s" % sys.exc_info()[0]) print traceback.format_exc() self.already_done.append(submission.id) self.cleanup_already_done()
def watch(self): now = int(time.time()) if self.last_run is None or now - self.last_run > self.DELAY: util.bot_stdout_print("Getting mentions for user: %s" % (self.username)) mentions = self.praw_reddit.get_mentions() self.last_run = int(time.time()) try: for mention in mentions: if mention.new == True and mention.id not in self.already_done: msg = mention.body successes,failures = self.msg_parser.parse(msg) reply = self.get_reply(successes, failures) self.already_done.append(mention.id) mention.mark_as_read() if not reply is None: util.bot_stdout_print("Reply to %s: %s\n" % (mention.id, reply)) util.handle_ratelimit(mention.reply, reply) except: util.bot_stdout_print("Unknown exception: %s" % sys.exc_info()[0]) print traceback.format_exc() self.already_done.append(mention.id) self.cleanup_already_done()
def add_single_comment(submission,victims): str = intro+info(victims)+footer.format(commit[0:MAX_SINGLE],commit) return handle_ratelimit(submission.add_comment,str)