2010-08-31 18:07:47 -04:00
|
|
|
from celery.task import Task
|
2011-04-11 21:57:45 -04:00
|
|
|
from utils import log as logging
|
2011-11-04 09:45:10 -07:00
|
|
|
from django.conf import settings
|
2010-08-31 18:07:47 -04:00
|
|
|
|
2010-09-20 19:22:19 -04:00
|
|
|
class UpdateFeeds(Task):
|
|
|
|
name = 'update-feeds'
|
2010-08-31 18:07:47 -04:00
|
|
|
max_retries = 0
|
2010-09-01 08:19:58 -04:00
|
|
|
ignore_result = True
|
2010-08-31 18:07:47 -04:00
|
|
|
|
2010-09-01 10:37:58 -04:00
|
|
|
def run(self, feed_pks, **kwargs):
|
2010-12-23 12:32:24 -05:00
|
|
|
from apps.rss_feeds.models import Feed
|
2012-02-24 16:43:08 -08:00
|
|
|
from apps.statistics.models import MStatistics
|
|
|
|
|
2012-02-26 22:33:06 -08:00
|
|
|
options = {
|
|
|
|
'fake': bool(MStatistics.get('fake_fetch')),
|
2012-02-27 16:41:34 -08:00
|
|
|
'quick': float(MStatistics.get('quick_fetch', 0)),
|
2012-02-26 22:33:06 -08:00
|
|
|
}
|
2012-02-24 16:43:08 -08:00
|
|
|
|
2010-09-01 10:37:58 -04:00
|
|
|
if not isinstance(feed_pks, list):
|
|
|
|
feed_pks = [feed_pks]
|
|
|
|
|
|
|
|
for feed_pk in feed_pks:
|
2011-04-11 21:57:45 -04:00
|
|
|
try:
|
|
|
|
feed = Feed.objects.get(pk=feed_pk)
|
2012-03-26 17:04:35 -07:00
|
|
|
feed.update(**options)
|
2011-04-11 21:57:45 -04:00
|
|
|
except Feed.DoesNotExist:
|
|
|
|
logging.info(" ---> Feed doesn't exist: [%s]" % feed_pk)
|
2010-11-07 00:40:26 -04:00
|
|
|
# logging.debug(' Updating: [%s] %s' % (feed_pks, feed))
|
2010-08-31 18:07:47 -04:00
|
|
|
|
2010-09-28 05:16:00 -04:00
|
|
|
class NewFeeds(Task):
|
2010-09-20 19:22:19 -04:00
|
|
|
name = 'new-feeds'
|
2010-09-28 05:16:00 -04:00
|
|
|
max_retries = 0
|
|
|
|
ignore_result = True
|
|
|
|
|
|
|
|
def run(self, feed_pks, **kwargs):
|
2010-12-23 12:32:24 -05:00
|
|
|
from apps.rss_feeds.models import Feed
|
2010-09-28 05:16:00 -04:00
|
|
|
if not isinstance(feed_pks, list):
|
|
|
|
feed_pks = [feed_pks]
|
2012-03-26 12:40:13 -07:00
|
|
|
|
|
|
|
options = {
|
|
|
|
'force': True,
|
|
|
|
}
|
2010-09-28 05:16:00 -04:00
|
|
|
for feed_pk in feed_pks:
|
|
|
|
feed = Feed.objects.get(pk=feed_pk)
|
2012-03-26 12:40:13 -07:00
|
|
|
feed.update(options=options)
|
2012-03-28 15:49:21 -07:00
|
|
|
|
|
|
|
class PushFeeds(Task):
|
|
|
|
name = 'push-feeds'
|
|
|
|
max_retries = 0
|
|
|
|
ignore_result = True
|
|
|
|
|
|
|
|
def run(self, feed_id, xml, **kwargs):
|
|
|
|
from apps.rss_feeds.models import Feed
|
|
|
|
|
|
|
|
options = {
|
|
|
|
'feed_xml': xml
|
|
|
|
}
|
|
|
|
feed = Feed.objects.get(pk=feed_id)
|
|
|
|
feed.update(options=options)
|