From b7574a1ff7088fa0a688f0f0b2dd0f77dfe00d87 Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Thu, 2 Nov 2017 22:09:37 -0700 Subject: [PATCH] No longer finding the largest image in a story if the text view already successfully found one. Also using Mercury's builtin image finder. --- apps/rss_feeds/models.py | 8 ++++++-- apps/rss_feeds/text_importer.py | 12 +++++++----- media/js/newsblur/views/story_detail_view.js | 6 ++++-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/apps/rss_feeds/models.py b/apps/rss_feeds/models.py index 2139044b9..67cbe9d03 100644 --- a/apps/rss_feeds/models.py +++ b/apps/rss_feeds/models.py @@ -2689,8 +2689,12 @@ class MStory(mongo.Document): if not original_text_z or force: feed = Feed.get_by_id(self.story_feed_id) ti = TextImporter(self, feed=feed, request=request, debug=debug) - original_text = ti.fetch() - self.extract_image_urls(force=force, text=True) + original_doc = ti.fetch(return_document=True) + original_text = original_doc.get('content') + if original_doc and original_doc.get('image', False): + self.image_urls = [original_doc['image']] + else: + self.extract_image_urls(force=force, text=True) self.save() else: logging.user(request, "~FYFetching ~FGoriginal~FY story text, ~SBfound.") diff --git a/apps/rss_feeds/text_importer.py b/apps/rss_feeds/text_importer.py index c1ac38adf..97ed7c38d 100644 --- a/apps/rss_feeds/text_importer.py +++ b/apps/rss_feeds/text_importer.py @@ -76,8 +76,9 @@ class TextImporter: text = doc['content'] title = doc['title'] url = doc['url'] + image = doc['lead_image_url'] - return self.process_content(text, title, url, skip_save=skip_save, return_document=return_document) + return self.process_content(text, title, url, image, skip_save=skip_save, return_document=return_document) def fetch_manually(self, skip_save=False, return_document=False): try: @@ -122,15 +123,16 @@ class TextImporter: title = original_text_doc.title() except TypeError: title = "" + url = resp.url if content: content = self.rewrite_content(content) - return self.process_content(content, title, url, skip_save=skip_save, return_document=return_document, + return self.process_content(content, title, url, image=None, skip_save=skip_save, return_document=return_document, original_text_doc=original_text_doc) - def process_content(self, content, title, url, skip_save=False, return_document=False, original_text_doc=None): + def process_content(self, content, title, url, image, skip_save=False, return_document=False, original_text_doc=None): original_story_content = self.story and self.story.story_content_z and zlib.decompress(self.story.story_content_z) if not original_story_content: original_story_content = "" @@ -151,9 +153,9 @@ class TextImporter: len(original_story_content) )), warn_color=False) return - + if return_document: - return dict(content=content, title=title, url=url, doc=original_text_doc) + return dict(content=content, title=title, url=url, doc=original_text_doc, image=image) return content diff --git a/media/js/newsblur/views/story_detail_view.js b/media/js/newsblur/views/story_detail_view.js index 643203cef..cd879bede 100644 --- a/media/js/newsblur/views/story_detail_view.js +++ b/media/js/newsblur/views/story_detail_view.js @@ -93,7 +93,9 @@ NEWSBLUR.Views.StoryDetailView = Backbone.View.extend({ this.generate_gradients(); this.render_comments(); this.attach_handlers(); - this.watch_images_load(); + if (!this.model.get('image_urls') || (this.model.get('image_urls') && this.model.get('image_urls').length == 0)) { + this.watch_images_load(); + } return this; }, @@ -136,7 +138,7 @@ NEWSBLUR.Views.StoryDetailView = Backbone.View.extend({ } }); if ($largest) { - // console.log(["Largest!", $largest, this.model.get('story_title').substr(0, 30), this.model]); + // console.log(["Largest!", $largest, this.model.get('story_title').substr(0, 30), this.model, $largest.attr('src')]); this.model.story_title_view.found_largest_image($largest.attr('src')); } }, this));