Пример #1
0
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)
Пример #2
0
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
Пример #3
0
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)