def test_computer_monitor_blurbs(): """ This email was generated by google alerts in production for the alert "computer monitors" """ alert = create_alert() blurbs = alerts.create_blurbs(compmsg, alert)
def test_create_blurbs(): alertsmsg = MailRequest( "fakepeer", sender, "*****@*****.**", open(home("tests/data/emails/alerts.msg")).read() ) alert = Alert.objects.all()[0] blurbs = alerts.create_blurbs(alertsmsg, alert) assert len(blurbs) == 26 blurb = blurbs[1] assert blurb.title.startswith("Audio reveals swipes at Obama, other Illinois Democrats") assert blurb.source == "Chicago Tribune" assert blurb.byline == "" assert len(Blurb.objects.all()) == 26
def START(message, alert_id=None, host=None): """ This reads in the alert emails, parses them and sticks them in the database as blurbs. """ try: alert = Alert.objects.get(pk=int(alert_id)) if not alert.disabled: gtext = "".join([b.text for b in alert.client.blurb_set.filter(approved=True).all()]) rtext = "".join([b.text for b in alert.client.blurb_set.filter(rejected=True).all()]) url = alerts.get_remove_url(message.body()) LOG.debug("The removeurl for alert %s is %s" % (alert.id, url)) if url: alert.removeurl = url else: q = queue.Queue("run/error") q.push(message) alert.save() blurbs = alerts.create_blurbs(message, alert) # if there are examples of good and rejected text, # then try to filter them. if gtext and rtext: b = bayes.Bayes(gtext, rtext) for blurb in blurbs: blurb.junk_score = b.rejected_given_text(blurb.text) blurb.save() transaction.commit() else: LOG.debug("Received alerts for a disabled alert with id %s and remove url %s" % (alert.id, alert.removeurl)) except Exception as e: #queue up any messages that failed so we can diagnose #and try later. LOG.debug("Something bad happened with the alerts queue: %s" % str(e)) transaction.rollback() q = queue.Queue("run/error") q.push(message)