def handlespam(data): try: d=json.loads(json.loads(data)["data"]) reason=",".join(FindSpam.testpost(d["titleEncodedFancy"],d["siteBaseHostAddress"])) s="[ [SmokeDetector](https://github.com/Charcoal-SE/SmokeDetector) ] %s: [%s](%s) on `%s`" % (reason,d["titleEncodedFancy"],d["url"],d["siteBaseHostAddress"]) print parser.unescape(s).encode('ascii',errors='replace') wrap.sendMessage("11540",s) wrapm.sendMessage("89",s) except UnboundLocalError: print "NOP"
def handlespam(data): try: d=json.loads(json.loads(data)["data"]) title = d["titleEncodedFancy"] reason=",".join(FindSpam.testpost(title,d["siteBaseHostAddress"])) escapedTitle = re.sub(r"([_*\\`\[\]])", r"\\\1", title) s="[ [SmokeDetector](https://github.com/Charcoal-SE/SmokeDetector) ] %s: [%s](%s) on `%s`" % (reason,escapedTitle,d["url"],d["siteBaseHostAddress"]) print parser.unescape(s).encode('ascii',errors='replace') room.send_message(s) roomm.send_message(s) except UnboundLocalError: print "NOP"
def checkifspam(data): d=json.loads(json.loads(data)["data"]) s= d["titleEncodedFancy"] print time.strftime("%Y-%m-%d %H:%M:%S"),parser.unescape(s).encode("ascii",errors="replace") site = d["siteBaseHostAddress"] site=site.encode("ascii",errors="replace") sys.stdout.flush() test=FindSpam.testpost(s,site) if (0<len(test)): post_id = d["id"] if(has_already_been_posted(site, post_id, s)): return False # Don't repost. Reddit will hate you. append_to_latest_questions(site, post_id, s) return True return False
def checkifspam(data): global lasthost,lastid d=json.loads(json.loads(data)["data"]) s= d["titleEncodedFancy"] print time.strftime("%Y-%m-%d %H:%M:%S"),parser.unescape(s).encode("ascii",errors="replace") site = d["siteBaseHostAddress"] site=site.encode("ascii",errors="replace") sys.stdout.flush() test=FindSpam.testpost(s,site) if (0<len(test)): if(lastid==d["id"] and lasthost == d["siteBaseHostAddress"]): return False # Don't repost. Reddit will hate you. lastid=d["id"] lasthost = d["siteBaseHostAddress"] return True return False
def handlespam(data): try: d=json.loads(json.loads(data)["data"]) title = d["titleEncodedFancy"] poster = d["ownerDisplayName"] reason=", ".join(FindSpam.testpost(title,poster,d["siteBaseHostAddress"])) titleToPost = GlobalVars.parser.unescape(re.sub(r"([_*\\`\[\]])", r"\\\1", title)).strip() s="[ [SmokeDetector](https://github.com/Charcoal-SE/SmokeDetector) ] %s: [%s](%s) by [%s](%s) on `%s`" % (reason,titleToPost,d["url"],poster,d["ownerUrl"],d["siteBaseHostAddress"]) print GlobalVars.parser.unescape(s).encode('ascii',errors='replace') if time.time() >= GlobalVars.blockedTime: GlobalVars.charcoal_hq.send_message(s) GlobalVars.tavern_on_the_meta.send_message(s) for specialroom in GlobalVars.specialrooms: sites = specialroom["sites"] if d["siteBaseHostAddress"] in sites and reason not in specialroom["unwantedReasons"]: specialroom["room"].send_message(s) except: print "NOP"
def checkifspam(data): d=json.loads(json.loads(data)["data"]) try: _ = d["ownerUrl"] except: return False # owner's account doesn't exist anymore, no need to post it in chat: http://chat.stackexchange.com/transcript/message/18380776#18380776 s= d["titleEncodedFancy"] poster = d["ownerDisplayName"] print time.strftime("%Y-%m-%d %H:%M:%S"),GlobalVars.parser.unescape(s).encode("ascii",errors="replace") quality_score = bayesian_score(s) print quality_score if(quality_score < 0.3 and d["siteBaseHostAddress"] == "stackoverflow.com"): print GlobalVars.bayesian_testroom.send_message("[ SmokeDetector | BayesianBeta ] Quality score " + str(quality_score*100) + ": [" + s + "](" + d["url"] + ")") site = d["siteBaseHostAddress"] site=site.encode("ascii",errors="replace") sys.stdout.flush() test=FindSpam.testpost(s,poster,site) if(is_blacklisted_user(get_user_from_url(d["ownerUrl"]))): if(len(test) == 0): test = "Blacklisted user" else: test += ", Blacklisted user" if (0<len(test)): post_id = d["id"] if(has_already_been_posted(site, post_id, s) or is_false_positive(post_id, site) or is_whitelisted_user(get_user_from_url(d["ownerUrl"]))): return False # Don't repost. Reddit will hate you. append_to_latest_questions(site, post_id, s) try: owner = d["ownerUrl"] users_file = open("users.txt", "a") users_file.write(site + " " + owner + " " + d["titleEncodedFancy"] + " " + d["url"] + "\n") users_file.close() except Exception as e: print e return True return False