From cea3bda09099eba3cb02d0690ea76d4219b03b8e Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Mon, 30 Aug 2010 19:57:27 -0400 Subject: [PATCH] Minor bug fixes around error catching in feed exceptions, drag-and-drop on top-level feeds, and styling of feed title buttons. --- apps/reader/views.py | 7 +++++-- apps/rss_feeds/views.py | 5 +++-- media/css/reader.css | 10 +++++----- media/js/newsblur/reader.js | 1 + media/js/newsblur/reader_add_feed.js | 4 +++- templates/reader/feeds.xhtml | 2 +- utils/feed_fetcher.py | 10 ++++++++-- 7 files changed, 26 insertions(+), 13 deletions(-) diff --git a/apps/reader/views.py b/apps/reader/views.py index 96908f674..bef270f98 100644 --- a/apps/reader/views.py +++ b/apps/reader/views.py @@ -10,7 +10,7 @@ from django.db.models import Q from django.core.urlresolvers import reverse from django.contrib.auth import login as login_user from django.contrib.auth.models import User -from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden +from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, Http404 from django.conf import settings from mongoengine.queryset import OperationError from apps.analyzer.models import MClassifierTitle, MClassifierAuthor, MClassifierFeed, MClassifierTag @@ -283,7 +283,10 @@ def load_single_feed(request): return data def load_feed_page(request): - feed_id = int(request.GET.get('feed_id')) + feed_id = int(request.GET.get('feed_id', 0)) + if feed_id == 0: + raise Http404 + feed_page, created = MFeedPage.objects.get_or_create(feed_id=feed_id) data = None diff --git a/apps/rss_feeds/views.py b/apps/rss_feeds/views.py index b469c1bdd..c9c0c078c 100644 --- a/apps/rss_feeds/views.py +++ b/apps/rss_feeds/views.py @@ -2,6 +2,7 @@ import datetime from utils import log as logging from django.shortcuts import get_object_or_404 from django.http import HttpResponseForbidden +from django.db import IntegrityError from apps.rss_feeds.models import Feed, merge_feeds from utils.user_functions import ajax_login_required from utils import json, feedfinder @@ -70,7 +71,7 @@ def exception_change_feed_address(request): feed.next_scheduled_update = datetime.datetime.now() try: feed.save() - except: + except IntegrityError: original_feed = Feed.objects.get(feed_address=feed_address) original_feed.next_scheduled_update = datetime.datetime.now() original_feed.has_feed_exception = False @@ -104,7 +105,7 @@ def exception_change_feed_link(request): feed.next_scheduled_update = datetime.datetime.now() try: feed.save() - except: + except IntegrityError: original_feed = Feed.objects.get(feed_address=feed_address) original_feed.next_scheduled_update = datetime.datetime.now() original_feed.has_page_exception = False diff --git a/media/css/reader.css b/media/css/reader.css index afe63fef6..05a7ccc3b 100644 --- a/media/css/reader.css +++ b/media/css/reader.css @@ -691,7 +691,7 @@ background: transparent; height: 16px; display: none; cursor: pointer; - padding: 3px 4px 0 24px; + padding: 0 0 0 38px; } #story_titles .NB-feedbar .NB-feedbar-mark-feed-read { background-color: #3090cf; @@ -709,7 +709,7 @@ background: transparent; display: none; } #story_titles .NB-feedbar .NB-feedbar-statistics { - background: transparent url('../img/icons/silk/chart_curve.png') no-repeat center center; + background: transparent url('../img/icons/silk/chart_curve.png') no-repeat left center; width: 16px; height: 16px; display: none; @@ -1661,7 +1661,7 @@ a.NB-splash-link:hover { .NB-modal .NB-modal-submit .NB-modal-submit-button { border: 1px solid #606060; font-size: 12px; - padding: 4px 8px; + padding: 4px 12px; text-transform: uppercase; margin: 2px 4px 2px; border: 1px solid #606060; @@ -1691,7 +1691,7 @@ a.NB-splash-link:hover { } .NB-modal .NB-modal-submit .NB-modal-submit-delete { - background-color: #5E120D; + background-color: #7E020D; } .NB-modal .NB-modal-submit .NB-disabled { background-color: #d5d4dB; @@ -1961,7 +1961,7 @@ a.NB-splash-link:hover { } .NB-add input[type=text] { - width: 350px; + width: 340px; font-size: 14px; padding: 2px; margin: 2px 4px 2px; diff --git a/media/js/newsblur/reader.js b/media/js/newsblur/reader.js index 0084fa079..44eb020f0 100644 --- a/media/js/newsblur/reader.js +++ b/media/js/newsblur/reader.js @@ -1950,6 +1950,7 @@ open_add_feed_modal: function() { clearInterval(this.flags['bouncing_callout']); + $.modal.close(); NEWSBLUR.add_feed = new NEWSBLUR.ReaderAddFeed(); }, diff --git a/media/js/newsblur/reader_add_feed.js b/media/js/newsblur/reader_add_feed.js index 94ad24044..9e9438fe9 100644 --- a/media/js/newsblur/reader_add_feed.js +++ b/media/js/newsblur/reader_add_feed.js @@ -286,7 +286,9 @@ NEWSBLUR.ReaderAddFeed.prototype = { if (data.code > 0) { NEWSBLUR.reader.load_feeds(); - $.modal.close(); + _.defer(function() { + NEWSBLUR.reader.open_add_feed_modal(); + }); } else { var $error = $('.NB-error', '.NB-fieldset.NB-add-add-folder'); $error.text(data.message); diff --git a/templates/reader/feeds.xhtml b/templates/reader/feeds.xhtml index 7d1ff34ce..2f6003d36 100644 --- a/templates/reader/feeds.xhtml +++ b/templates/reader/feeds.xhtml @@ -279,7 +279,7 @@
Everything is on its way...
- +
diff --git a/utils/feed_fetcher.py b/utils/feed_fetcher.py index 302e06ae8..d05dcb13d 100644 --- a/utils/feed_fetcher.py +++ b/utils/feed_fetcher.py @@ -58,10 +58,16 @@ class FetchFeed: feed.save_feed_history(303, "Already fetched") return FEED_SAME, None + etag=self.feed.etag modified = self.feed.last_modified.utctimetuple()[:7] if self.feed.last_modified else None + + if self.options['force']: + modified = None + etag = None + self.fpf = feedparser.parse(self.feed.feed_address, agent=USER_AGENT, - etag=self.feed.etag, + etag=etag, modified=modified) return FEED_OK, self.fpf @@ -269,7 +275,7 @@ class Dispatcher: ffeed = FetchFeed(feed, self.options) ret_feed, fetched_feed = ffeed.fetch() - if fetched_feed and ret_feed == FEED_OK: + if (fetched_feed and ret_feed == FEED_OK): pfeed = ProcessFeed(feed, fetched_feed, db, self.options) ret_feed, ret_entries = pfeed.process()