JSON Feeds 1.1.

This commit is contained in:
Samuel Clay 2021-04-02 13:27:33 -04:00
parent db99ed2eac
commit c766e781ed
4 changed files with 7 additions and 6 deletions

View file

@ -405,7 +405,7 @@ class UserSubscription(models.Model):
us.save()
if not skip_fetch and feed.last_update < datetime.datetime.utcnow() - datetime.timedelta(days=1):
feed = feed.update()
feed = feed.update(verbose=True)
from apps.social.models import MActivity
MActivity.new_feed_subscription(user_id=user.pk, feed_id=feed.pk, feed_title=feed.title)

View file

@ -18,4 +18,4 @@ class Command(BaseCommand):
feed = Feed.objects.get(feed_title__icontains=options['title'])
else:
feed = Feed.get_by_id(options['feed'])
feed.update(force=options['force'], single_threaded=True, verbose=2)
feed.update(force=options['force'], single_threaded=True, verbose=True)

View file

@ -144,7 +144,8 @@ class FetchFeed:
logging.debug(" ***> [%-30s] ~FRFeed fetch was %s status code, trying fake user agent: %s" % (self.feed.log_title[:30], raw_feed.status_code, raw_feed.headers))
raw_feed = requests.get(self.feed.feed_address, headers=self.feed.fetch_headers(fake=True), timeout=15)
if raw_feed.content and 'application/json' in raw_feed.headers.get('Content-Type', ""):
json_feed_content_type = any(json_feed in raw_feed.headers.get('Content-Type', "") for json_feed in ['application/feed+json', 'application/json'])
if raw_feed.content and json_feed_content_type:
# JSON Feed
json_feed = self.fetch_json_feed(address, raw_feed)
if not json_feed:
@ -158,7 +159,7 @@ class FetchFeed:
self.raw_feed = smart_str(raw_feed.content)
self.fpf = feedparser.parse(self.raw_feed,
response_headers=response_headers)
if self.options.get('debug', False):
if self.options['verbose']:
logging.debug(" ---> [%-30s] ~FBFeed fetch status %s: %s length / %s" % (self.feed.log_title[:30],
raw_feed.status_code,
len(smart_str(raw_feed.content)),

View file

@ -47,10 +47,10 @@ class JSONFetcher:
'title': item.get('title', ""),
'link': item.get('external_url', item.get('url', "")),
'description': item.get('content_html', item.get('content_text', "")),
'author_name': item.get('author', {}).get('name', ""),
'author_name': item.get('authors', item.get('author', {})).get('name', ""),
'categories': item.get('tags', []),
'unique_id': str(item.get('id', item.get('url', ""))),
'pubdate': date_published,
}
return story
return story