mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
Attempting new Infrequent Site Stories river.
This commit is contained in:
parent
3fa2a7562d
commit
f543e408e9
7 changed files with 53 additions and 15 deletions
|
@ -1239,6 +1239,7 @@ def load_river_stories__redis(request):
|
|||
include_hidden = is_true(request.REQUEST.get('include_hidden', False))
|
||||
include_feeds = is_true(request.REQUEST.get('include_feeds', False))
|
||||
initial_dashboard = is_true(request.REQUEST.get('initial_dashboard', False))
|
||||
infrequent = is_true(request.REQUEST.get('infrequent', False))
|
||||
now = localtime_for_timezone(datetime.datetime.now(), user.profile.timezone)
|
||||
usersubs = []
|
||||
code = 1
|
||||
|
@ -1275,6 +1276,8 @@ def load_river_stories__redis(request):
|
|||
).order_by('%sstarred_date' % ('-' if order == 'newest' else ''))[offset:offset+limit]
|
||||
stories = Feed.format_stories(mstories)
|
||||
else:
|
||||
if infrequent:
|
||||
feed_ids = Feed.low_volume_feeds(feed_ids)
|
||||
usersubs = UserSubscription.subs_for_feeds(user.pk, feed_ids=feed_ids,
|
||||
read_filter=read_filter)
|
||||
all_feed_ids = [f for f in feed_ids]
|
||||
|
|
|
@ -324,6 +324,12 @@ class Feed(models.Model):
|
|||
r.expire('zF:%s' % self.pk, settings.DAYS_OF_STORY_HASHES*24*60*60)
|
||||
# r2.expire('zF:%s' % self.pk, settings.DAYS_OF_STORY_HASHES*24*60*60)
|
||||
|
||||
@classmethod
|
||||
def low_volume_feeds(cls, feed_ids):
|
||||
feeds = Feed.objects.filter(pk__in=feed_ids, average_stories_per_month__lte=30).only('pk')
|
||||
|
||||
return [f.pk for f in feeds]
|
||||
|
||||
@classmethod
|
||||
def autocomplete(self, prefix, limit=5):
|
||||
results = SearchFeed.query(prefix)
|
||||
|
|
|
@ -688,8 +688,17 @@ NEWSBLUR.AssetModel = Backbone.Router.extend({
|
|||
});
|
||||
},
|
||||
|
||||
fetch_river_stories: function(feed_id, feeds, page, callback, error_callback, first_load) {
|
||||
fetch_river_stories: function(feed_id, feeds, page, options, callback, error_callback, first_load) {
|
||||
var self = this;
|
||||
options = $.extend({
|
||||
feeds: feeds,
|
||||
page: page,
|
||||
order: this.view_setting(feed_id, 'order'),
|
||||
read_filter: this.view_setting(feed_id, 'read_filter'),
|
||||
query: NEWSBLUR.reader.flags.search,
|
||||
include_hidden: true,
|
||||
infrequent: false
|
||||
}, options);
|
||||
|
||||
var pre_callback = function(data) {
|
||||
if (!NEWSBLUR.Globals.is_premium && NEWSBLUR.Globals.is_authenticated) {
|
||||
|
@ -705,15 +714,8 @@ NEWSBLUR.AssetModel = Backbone.Router.extend({
|
|||
};
|
||||
|
||||
this.feed_id = feed_id;
|
||||
|
||||
this.make_request('/reader/river_stories', {
|
||||
feeds: feeds,
|
||||
page: page,
|
||||
order: this.view_setting(feed_id, 'order'),
|
||||
read_filter: this.view_setting(feed_id, 'read_filter'),
|
||||
query: NEWSBLUR.reader.flags.search,
|
||||
include_hidden: true
|
||||
}, pre_callback, error_callback, {
|
||||
|
||||
this.make_request('/reader/river_stories', options, pre_callback, error_callback, {
|
||||
'ajax_group': (page ? 'feed_page' : 'feed'),
|
||||
'request_type': 'GET'
|
||||
});
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
$feeds_progress: $('#NB-progress'),
|
||||
$dashboard: $('.NB-feeds-header-dashboard'),
|
||||
$river_sites_header: $('.NB-feeds-header-river-sites'),
|
||||
$river_infrequent_header: $('.NB-feeds-header-river-infrequent'),
|
||||
$river_blurblogs_header: $('.NB-feeds-header-river-blurblogs'),
|
||||
$river_global_header: $('.NB-feeds-header-river-global'),
|
||||
$starred_header: $('.NB-feeds-header-starred'),
|
||||
|
@ -1305,6 +1306,7 @@
|
|||
this.$s.$starred_header.removeClass('NB-selected');
|
||||
this.$s.$read_header.removeClass('NB-selected');
|
||||
this.$s.$river_sites_header.removeClass('NB-selected');
|
||||
this.$s.$river_infrequent_header.removeClass('NB-selected');
|
||||
this.$s.$river_blurblogs_header.removeClass('NB-selected');
|
||||
this.$s.$river_global_header.removeClass('NB-selected');
|
||||
this.$s.$tryfeed_header.removeClass('NB-selected');
|
||||
|
@ -1960,7 +1962,10 @@
|
|||
}
|
||||
|
||||
this.hide_splash_page();
|
||||
if (!folder || folder.get('fake') || !folder.get('folder_title')) {
|
||||
if (options.infrequent) {
|
||||
this.active_feed = 'river:infrequent';
|
||||
this.$s.$river_infrequent_header.addClass('NB-selected');
|
||||
} else if (!folder || folder.get('fake') || !folder.get('folder_title')) {
|
||||
this.active_feed = 'river:';
|
||||
if (options.feed) {
|
||||
options.feed.set('selected', true);
|
||||
|
@ -2035,10 +2040,10 @@
|
|||
if (this.counts['select_story_in_feed'] || this.flags['select_story_in_feed']) {
|
||||
this.select_story_in_feed();
|
||||
}
|
||||
this.model.fetch_river_stories(this.active_feed, feeds, 1,
|
||||
this.model.fetch_river_stories(this.active_feed, feeds, 1, {'infrequent': options.infrequent},
|
||||
_.bind(this.post_open_river_stories, this), NEWSBLUR.app.taskbar_info.show_stories_error, false);
|
||||
} else {
|
||||
this.model.fetch_river_stories(this.active_feed, feeds, 1,
|
||||
this.model.fetch_river_stories(this.active_feed, feeds, 1, {'infrequent': options.infrequent},
|
||||
_.bind(this.post_open_river_stories, this), NEWSBLUR.app.taskbar_info.show_stories_error, true);
|
||||
}
|
||||
},
|
||||
|
@ -2768,6 +2773,8 @@
|
|||
NEWSBLUR.app.story_titles.show_loading(options);
|
||||
}
|
||||
|
||||
if (this.active_feed == 'river:infrequent') options.infrequent = true;
|
||||
|
||||
if (this.flags['starred_view']) {
|
||||
this.model.fetch_starred_stories(this.counts['page'], this.flags['starred_tag'], _.bind(this.post_open_starred_stories, this),
|
||||
NEWSBLUR.app.taskbar_info.show_stories_error, false);
|
||||
|
@ -2786,7 +2793,8 @@
|
|||
NEWSBLUR.app.taskbar_info.show_stories_error, false);
|
||||
} else if (this.flags['river_view']) {
|
||||
this.model.fetch_river_stories(this.active_feed, this.cache['river_feeds_with_unreads'],
|
||||
this.counts['page'], _.bind(this.post_open_river_stories, this),
|
||||
this.counts['page'], {'infrequent': options.infrequent},
|
||||
_.bind(this.post_open_river_stories, this),
|
||||
NEWSBLUR.app.taskbar_info.show_stories_error, false);
|
||||
} else {
|
||||
this.model.load_feed(feed_id, this.counts['page'], false,
|
||||
|
@ -2817,6 +2825,8 @@
|
|||
var title = "All Site Stories";
|
||||
if (NEWSBLUR.reader.active_feed == "read") {
|
||||
title = "Read Stories";
|
||||
} else if (NEWSBLUR.reader.active_feed == "infrequent") {
|
||||
title = "Infrequent Site Stories";
|
||||
} else if (NEWSBLUR.reader.flags['starred_view']) {
|
||||
title = "Saved Stories";
|
||||
if (NEWSBLUR.reader.flags['starred_tag']) {
|
||||
|
|
|
@ -104,7 +104,7 @@ NEWSBLUR.Views.FeedList = Backbone.View.extend({
|
|||
// this.load_sortable_feeds();
|
||||
_.delay(_.bind(NEWSBLUR.reader.update_starred_count, NEWSBLUR.reader), 250);
|
||||
NEWSBLUR.reader.check_hide_getting_started();
|
||||
$('.NB-feeds-header-river-sites-container').css({
|
||||
$('.NB-feeds-header-river-sites-container,.NB-feeds-header-river-infrequent-container').css({
|
||||
'display': 'block',
|
||||
'opacity': 0
|
||||
}).animate({'opacity': 1}, {'duration': 700});
|
||||
|
@ -368,6 +368,8 @@ NEWSBLUR.Views.FeedList = Backbone.View.extend({
|
|||
|
||||
if (!$selected_view && NEWSBLUR.reader.active_feed == 'river:') {
|
||||
$selected_view = NEWSBLUR.reader.$s.$river_sites_header.closest(".NB-feeds-header-container");
|
||||
} else if (!$selected_view && NEWSBLUR.reader.active_feed == 'river:infrequent') {
|
||||
$selected_view = NEWSBLUR.reader.$s.$river_infrequent_header.closest(".NB-feeds-header-container");
|
||||
} else if (!$selected_view && NEWSBLUR.reader.active_feed == 'starred') {
|
||||
$selected_view = NEWSBLUR.reader.$s.$starred_header.closest(".NB-feeds-header-container");
|
||||
} else if (!$selected_view && NEWSBLUR.reader.active_feed == 'read') {
|
||||
|
|
|
@ -7,6 +7,7 @@ NEWSBLUR.Views.Sidebar = Backbone.View.extend({
|
|||
"click .NB-feeds-header-starred": "open_starred_stories",
|
||||
"click .NB-feeds-header-read": "open_read_stories",
|
||||
"click .NB-feeds-header-river-sites": "open_river_stories",
|
||||
"click .NB-feeds-header-river-infrequent": "open_river_infrequent_stories",
|
||||
"click .NB-feeds-header-river-blurblogs .NB-feedlist-collapse-icon": "collapse_river_blurblog",
|
||||
"click .NB-feeds-header-river-blurblogs": "open_river_blurblogs_stories",
|
||||
"click .NB-feeds-header-river-global": "open_river_global_stories"
|
||||
|
@ -174,6 +175,10 @@ NEWSBLUR.Views.Sidebar = Backbone.View.extend({
|
|||
return NEWSBLUR.reader.open_river_stories();
|
||||
},
|
||||
|
||||
open_river_infrequent_stories: function() {
|
||||
return NEWSBLUR.reader.open_river_stories(null, null, {'infrequent': true});
|
||||
},
|
||||
|
||||
collapse_river_blurblog: function(e, options) {
|
||||
e.stopPropagation();
|
||||
options = options || {};
|
||||
|
|
|
@ -79,6 +79,16 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="NB-feeds-header-container NB-feeds-header-river-container NB-feeds-header-river-infrequent-container">
|
||||
<div class="NB-feeds-header NB-feeds-header-river-infrequent NB-empty">
|
||||
<div class="NB-feeds-header-count unread_count"></div>
|
||||
<div class="NB-feeds-header-icon"></div>
|
||||
<div class="NB-feeds-header-title">
|
||||
Infrequent Site Stories
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul class="folder NB-feedlist" id="feed_list"></ul>
|
||||
|
||||
<div class="NB-feeds-header-container NB-feeds-header-read-container NB-hidden">
|
||||
|
|
Loading…
Add table
Reference in a new issue