mirror of
https://github.com/viq/NewsBlur.git
synced 2025-09-18 21:43:31 +00:00
Fixing errors around a user trying to open a feed that has been de-duped and lost. The server now finds the de-duped feed and sends it back.
This commit is contained in:
parent
10f58f8608
commit
7b4060a384
5 changed files with 40 additions and 10 deletions
|
@ -1,5 +1,6 @@
|
|||
import datetime
|
||||
from django.db import models
|
||||
from django.db import IntegrityError
|
||||
from django.contrib.auth.models import User
|
||||
from django.db.models.signals import post_save
|
||||
from django.core.mail import mail_admins
|
||||
|
@ -26,8 +27,11 @@ class Profile(models.Model):
|
|||
subs = UserSubscription.objects.filter(user=self.user)
|
||||
for sub in subs:
|
||||
sub.active = True
|
||||
try:
|
||||
sub.save()
|
||||
sub.feed.setup_feed_for_premium_subscribers()
|
||||
except IntegrityError:
|
||||
pass
|
||||
|
||||
logging.info(' ---> [%s] NEW PREMIUM ACCOUNT! WOOHOO!!! %s subscriptions!' % (self.user.username, subs.count()))
|
||||
message = """Woohoo!
|
||||
|
|
|
@ -35,6 +35,10 @@ class UserSubscription(models.Model):
|
|||
def __unicode__(self):
|
||||
return '[' + self.feed.feed_title + '] '
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if self.feed:
|
||||
super(UserSubscription, self).save(*args, **kwargs)
|
||||
|
||||
def mark_feed_read(self):
|
||||
now = datetime.datetime.utcnow()
|
||||
if MStory.objects(story_feed_id=self.feed.pk).first():
|
||||
|
@ -53,7 +57,6 @@ class UserSubscription(models.Model):
|
|||
|
||||
def calculate_feed_scores(self, silent=False, stories_db=None):
|
||||
UNREAD_CUTOFF = datetime.datetime.utcnow() - datetime.timedelta(days=settings.DAYS_OF_UNREAD)
|
||||
now = datetime.datetime.utcnow()
|
||||
|
||||
if self.user.profile.last_seen_on < UNREAD_CUTOFF:
|
||||
# if not silent:
|
||||
|
|
|
@ -115,6 +115,7 @@ def load_feeds(request):
|
|||
feeds[sub.feed.pk] = {
|
||||
'id': sub.feed.pk,
|
||||
'feed_title': sub.feed.feed_title,
|
||||
'feed_address': sub.feed.feed_address,
|
||||
'feed_link': sub.feed.feed_link,
|
||||
'ps': sub.unread_count_positive,
|
||||
'nt': sub.unread_count_neutral,
|
||||
|
@ -228,8 +229,20 @@ def load_single_feed(request):
|
|||
page = int(request.REQUEST.get('page', 0))
|
||||
if page:
|
||||
offset = limit * page
|
||||
feed_id = int(request.REQUEST['feed_id'])
|
||||
feed_id = int(request.REQUEST.get('feed_id', 0))
|
||||
if feed_id == 0:
|
||||
raise Http404
|
||||
|
||||
try:
|
||||
feed = Feed.objects.get(id=feed_id)
|
||||
except Feed.DoesNotExist:
|
||||
feed_address = request.REQUEST.get('feed_address')
|
||||
dupe_feed = DuplicateFeed.objects.filter(duplicate_address=feed_address)
|
||||
if dupe_feed:
|
||||
feed = dupe_feed[0].feed
|
||||
else:
|
||||
raise Http404
|
||||
|
||||
force_update = request.GET.get('force_update', False)
|
||||
|
||||
now = datetime.datetime.utcnow()
|
||||
|
|
|
@ -132,7 +132,7 @@ NEWSBLUR.AssetModel.Reader.prototype = {
|
|||
);
|
||||
},
|
||||
|
||||
load_feeds: function(callback) {
|
||||
load_feeds: function(callback, error_callback) {
|
||||
var self = this;
|
||||
|
||||
var pre_callback = function(subscriptions) {
|
||||
|
@ -154,7 +154,7 @@ NEWSBLUR.AssetModel.Reader.prototype = {
|
|||
callback();
|
||||
};
|
||||
|
||||
this.make_request('/reader/load_feeds', {}, pre_callback);
|
||||
this.make_request('/reader/load_feeds', {}, pre_callback, error_callback);
|
||||
},
|
||||
|
||||
load_feed: function(feed_id, page, first_load, callback) {
|
||||
|
@ -164,12 +164,13 @@ NEWSBLUR.AssetModel.Reader.prototype = {
|
|||
return self.load_feed_precallback(data, feed_id, callback, first_load);
|
||||
};
|
||||
|
||||
// NEWSBLUR.log(['load_feed', feed_id, page, first_load, callback, pre_callback]);
|
||||
// NEWSBLUR.log(['load_feed', feed_id, page, first_load, callback, pre_callback, this.feeds[feed_id].feed_address]);
|
||||
if (feed_id) {
|
||||
this.make_request('/reader/load_single_feed',
|
||||
{
|
||||
feed_id: feed_id,
|
||||
page: page
|
||||
page: page,
|
||||
feed_address: this.feeds[feed_id].feed_address
|
||||
}, pre_callback,
|
||||
null,
|
||||
{
|
||||
|
@ -285,7 +286,8 @@ NEWSBLUR.AssetModel.Reader.prototype = {
|
|||
{
|
||||
feed_id: feed_id,
|
||||
page: 0,
|
||||
limit: limit
|
||||
limit: limit,
|
||||
feed_address: this.feeds[feed_id].feed_address
|
||||
}, pre_callback,
|
||||
null,
|
||||
{
|
||||
|
|
|
@ -3784,6 +3784,14 @@
|
|||
e.preventDefault();
|
||||
self.switch_taskbar_view_direction(1);
|
||||
});
|
||||
$document.bind('keydown', 'h', function(e) {
|
||||
e.preventDefault();
|
||||
self.switch_taskbar_view_direction(-1);
|
||||
});
|
||||
$document.bind('keydown', 'l', function(e) {
|
||||
e.preventDefault();
|
||||
self.switch_taskbar_view_direction(1);
|
||||
});
|
||||
$document.bind('keydown', 'enter', function(e) {
|
||||
e.preventDefault();
|
||||
self.open_feed_link();
|
||||
|
|
Loading…
Add table
Reference in a new issue