Esempio n. 1
0
def news():
    """Get news from different ATOM RSS feeds."""
    import feedparser
    from pybossa.core import sentinel
    from pybossa.news import get_news, notify_news_admins, FEED_KEY
    try:
        import cPickle as pickle
    except ImportError:  # pragma: no cover
        import pickle
    urls = ['https://github.com/pybossa/pybossa/releases.atom',
            'http://scifabric.com/blog/all.atom.xml']
    score = 0
    notify = False
    if current_app.config.get('NEWS_URL'):
        urls += current_app.config.get('NEWS_URL')
    for url in urls:
        d = feedparser.parse(url)
        tmp = get_news(score)
        if (len(tmp) == 0) or (tmp[0]['updated'] != d.entries[0]['updated']):
            sentinel.master.zadd(FEED_KEY, float(score),
                                 pickle.dumps(d.entries[0]))
            notify = True
        score += 1
    if notify:
        notify_news_admins()
Esempio n. 2
0
 def test_notify_news_admins(self):
     user = UserFactory.create(admin=True)
     notify_news_admins()
     key = "notify:admin:%s" % user.id
     value = sentinel.slave.get(key)
     err_msg = "Key should exist"
     assert value == str(1), err_msg
Esempio n. 3
0
def news():
    """Get news from different ATOM RSS feeds."""
    import feedparser
    from pybossa.core import sentinel
    from pybossa.news import get_news, notify_news_admins, FEED_KEY
    try:
        import cPickle as pickle
    except ImportError:  # pragma: no cover
        import pickle
    urls = [
        'https://github.com/pybossa/pybossa/releases.atom',
        'http://scifabric.com/blog/all.atom.xml'
    ]
    score = 0
    notify = False
    if current_app.config.get('NEWS_URL'):
        urls += current_app.config.get('NEWS_URL')
    for url in urls:
        d = feedparser.parse(url)
        tmp = get_news(score)
        if (len(tmp) == 0) or (tmp[0]['updated'] != d.entries[0]['updated']):
            sentinel.master.zadd(FEED_KEY, float(score),
                                 pickle.dumps(d.entries[0]))
            notify = True
        score += 1
    if notify:
        notify_news_admins()
Esempio n. 4
0
 def test_notify_news_admins(self):
     user = UserFactory.create(admin=True)
     notify_news_admins()
     key = "notify:admin:%s" % user.id
     value = sentinel.slave.get(key)
     err_msg = "Key should exist"
     assert value == str(1), err_msg
Esempio n. 5
0
 def test_notify_news_admins(self):
     user = UserFactory.create(admin=False)
     user2 = UserFactory.create(admin=False)
     notify_news_admins()
     key = "notify:admin:%s" % user2.id
     value = sentinel.slave.get(key)
     err_msg = "Key should not exist"
     assert value is None, err_msg
Esempio n. 6
0
 def test_notify_news_admins(self):
     user = UserFactory.create(admin=False)
     user2 = UserFactory.create(admin=False)
     notify_news_admins()
     key = "notify:admin:%s" % user2.id
     value = sentinel.slave.get(key)
     err_msg = "Key should not exist"
     assert value is None, err_msg