2010-06-08 11:19:41 -04:00
|
|
|
NEWSBLUR.AssetModel = function() {
|
|
|
|
var _Reader = null;
|
2010-06-11 20:55:38 -04:00
|
|
|
var _Prefs = null;
|
2010-06-08 11:19:41 -04:00
|
|
|
|
|
|
|
return {
|
|
|
|
reader: function(){
|
|
|
|
if(!_Reader){
|
|
|
|
_Reader = new NEWSBLUR.AssetModel.Reader();
|
|
|
|
_Reader.init();
|
|
|
|
} else {
|
|
|
|
_Reader.init();
|
|
|
|
}
|
|
|
|
return _Reader;
|
2010-06-11 20:55:38 -04:00
|
|
|
}
|
2010-06-08 11:19:41 -04:00
|
|
|
};
|
|
|
|
}();
|
|
|
|
|
|
|
|
NEWSBLUR.AssetModel.Reader = function() {
|
|
|
|
this.feeds = {};
|
|
|
|
this.folders = [];
|
|
|
|
this.stories = {};
|
|
|
|
this.read_stories = {};
|
|
|
|
this.classifiers = {};
|
2010-07-06 18:43:06 -04:00
|
|
|
|
|
|
|
this.DEFAULT_VIEW = 'page';
|
2010-06-08 11:19:41 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
NEWSBLUR.AssetModel.Reader.prototype = {
|
|
|
|
|
|
|
|
init: function() {
|
|
|
|
this.ajax = {};
|
|
|
|
this.ajax['queue'] = $.manageAjax.create('queue', {queue: false, domSuccessTrigger: true, traditional: true});
|
|
|
|
this.ajax['queue_clear'] = $.manageAjax.create('queue_clear', {queue: 'clear', domSuccessTrigger: true, traditional: true});
|
|
|
|
this.ajax['feed'] = $.manageAjax.create('feed', {queue: 'clear', abortOld: true, domSuccessTrigger: true, traditional: true});
|
|
|
|
this.ajax['feed_page'] = $.manageAjax.create('feed_page', {queue: false, abortOld: true, abortIsNoSuccess: false, domSuccessTrigger: true, domCompleteTrigger: true, traditional: true});
|
2010-07-25 23:13:27 -04:00
|
|
|
this.ajax['statistics'] = $.manageAjax.create('feed', {queue: 'clear', abortOld: true, domSuccessTrigger: true, traditional: true});
|
2010-06-08 11:19:41 -04:00
|
|
|
return;
|
|
|
|
},
|
|
|
|
|
|
|
|
make_request: function(url, data, callback, error_callback, options) {
|
|
|
|
var self = this;
|
|
|
|
var options = $.extend({
|
|
|
|
'ajax_group': 'queue',
|
|
|
|
'traditional': true,
|
|
|
|
'preventDoubbleRequests': false
|
|
|
|
}, options);
|
2010-07-25 23:13:27 -04:00
|
|
|
var request_type = 'POST';
|
|
|
|
var clear_queue = false;
|
2010-06-08 11:19:41 -04:00
|
|
|
|
|
|
|
if (options['ajax_group'] == 'feed') {
|
2010-07-25 23:13:27 -04:00
|
|
|
clear_queue = true;
|
|
|
|
}
|
|
|
|
if (options['ajax_group'] == 'statistics') {
|
|
|
|
clear_queue = true;
|
|
|
|
request_type = 'GET';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (clear_queue) {
|
2010-06-08 11:19:41 -04:00
|
|
|
this.ajax[options['ajax_group']].clear(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
this.ajax[options['ajax_group']].add({
|
|
|
|
url: url,
|
|
|
|
data: data,
|
2010-07-25 23:13:27 -04:00
|
|
|
type: request_type,
|
2010-06-08 11:19:41 -04:00
|
|
|
dataType: 'json',
|
|
|
|
beforeSend: function() {
|
|
|
|
// NEWSBLUR.log(['beforeSend', options]);
|
|
|
|
$.isFunction(options['beforeSend']) && options['beforeSend']();
|
|
|
|
return true;
|
|
|
|
},
|
|
|
|
success: function(o) {
|
|
|
|
// NEWSBLUR.log(['make_request 1', o]);
|
|
|
|
|
|
|
|
if ($.isFunction(callback)) {
|
|
|
|
callback(o);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
error: function(e) {
|
|
|
|
// NEWSBLUR.log(['AJAX Error', e]);
|
|
|
|
if ($.isFunction(error_callback)) {
|
|
|
|
error_callback();
|
2010-07-24 15:54:25 -04:00
|
|
|
} else if ($.isFunction(callback)) {
|
|
|
|
callback({'message': 'Please create an account. Not much to do without an account.'});
|
2010-06-08 11:19:41 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
mark_story_as_read: function(story_id, feed_id, callback) {
|
|
|
|
var self = this;
|
|
|
|
var read = false;
|
|
|
|
|
|
|
|
for (s in this.stories) {
|
|
|
|
if (this.stories[s].id == story_id) {
|
|
|
|
read = this.stories[s].read_status ? true : false;
|
|
|
|
this.stories[s].read_status = true;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!read && NEWSBLUR.Globals.is_authenticated) {
|
|
|
|
if (!(feed_id in this.read_stories)) { this.read_stories[feed_id] = []; }
|
|
|
|
this.read_stories[feed_id].push(story_id);
|
|
|
|
NEWSBLUR.log(['Marking Read', this.read_stories, story_id]);
|
|
|
|
|
|
|
|
this.make_request('/reader/mark_story_as_read', {
|
2010-08-23 18:37:59 -04:00
|
|
|
story_id: this.read_stories[feed_id],
|
2010-06-08 11:19:41 -04:00
|
|
|
feed_id: feed_id
|
|
|
|
}, function() {}, function() {}, {
|
|
|
|
'ajax_group': 'queue_clear',
|
|
|
|
'traditional': true,
|
|
|
|
'beforeSend': function() {
|
|
|
|
self.read_stories[feed_id] = [];
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2010-09-05 18:08:08 -07:00
|
|
|
$.isFunction(callback) && callback(read);
|
2010-06-08 11:19:41 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
mark_feed_as_read: function(feed_id, callback) {
|
|
|
|
var self = this;
|
|
|
|
|
|
|
|
this.make_request('/reader/mark_feed_as_read',
|
|
|
|
{
|
|
|
|
feed_id: feed_id
|
|
|
|
}, callback
|
|
|
|
);
|
|
|
|
},
|
|
|
|
|
|
|
|
load_feeds: function(callback) {
|
|
|
|
var self = this;
|
|
|
|
|
|
|
|
var pre_callback = function(subscriptions) {
|
|
|
|
self.feeds = subscriptions.feeds;
|
|
|
|
self.folders = subscriptions.folders;
|
|
|
|
callback();
|
|
|
|
};
|
|
|
|
|
|
|
|
this.make_request('/reader/load_feeds', {}, pre_callback);
|
|
|
|
},
|
|
|
|
|
|
|
|
load_feed: function(feed_id, page, first_load, callback) {
|
|
|
|
var self = this;
|
|
|
|
|
|
|
|
var pre_callback = function(data) {
|
|
|
|
return self.load_feed_precallback(data, feed_id, callback, first_load);
|
|
|
|
};
|
|
|
|
|
|
|
|
// NEWSBLUR.log(['load_feed', feed_id, page, first_load, callback, pre_callback]);
|
|
|
|
if (feed_id) {
|
|
|
|
this.make_request('/reader/load_single_feed',
|
|
|
|
{
|
|
|
|
feed_id: feed_id,
|
|
|
|
page: page
|
|
|
|
}, pre_callback,
|
|
|
|
null,
|
|
|
|
{
|
|
|
|
'ajax_group': (page ? 'feed_page' : 'feed')
|
|
|
|
}
|
|
|
|
);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
load_feed_precallback: function(data, feed_id, callback, first_load) {
|
|
|
|
// NEWSBLUR.log(['pre_callback', data]);
|
|
|
|
if (feed_id != this.feed_id) {
|
|
|
|
this.stories = data.stories;
|
|
|
|
this.feed_tags = data.feed_tags;
|
|
|
|
this.feed_authors = data.feed_authors;
|
|
|
|
this.feed_id = feed_id;
|
|
|
|
this.classifiers = data.classifiers;
|
|
|
|
this.story_keys = [];
|
|
|
|
for (var s in data.stories) {
|
|
|
|
this.story_keys.push(data.stories[s].id);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$.merge(this.stories, data.stories);
|
|
|
|
|
|
|
|
// Assemble key cache for later, removing dupes
|
|
|
|
var data_stories = $.merge([], data.stories);
|
|
|
|
for (var s in data_stories) {
|
|
|
|
var story_id = data_stories[s].id;
|
|
|
|
if (!(story_id in this.story_keys)) {
|
|
|
|
this.story_keys.push(story_id);
|
|
|
|
} else {
|
|
|
|
// There's a dupe story. Remove it!
|
|
|
|
for (var s2 in this.stories) {
|
|
|
|
if (story_id == this.stories[s2].id) {
|
|
|
|
delete this.stories[s2];
|
|
|
|
delete data.stories[s];
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$.isFunction(callback) && callback(data, first_load);
|
|
|
|
},
|
|
|
|
|
2010-08-01 19:12:42 -04:00
|
|
|
get_feeds_trainer: function(callback) {
|
|
|
|
var self = this;
|
|
|
|
|
2010-08-11 23:02:17 -04:00
|
|
|
if (NEWSBLUR.Globals.is_authenticated) {
|
|
|
|
this.make_request('/reader/get_feeds_trainer', {}, callback,
|
|
|
|
null, {'ajax_group': 'feed'});
|
|
|
|
} else {
|
|
|
|
if ($.isFunction(callback)) callback();
|
|
|
|
}
|
2010-08-01 19:12:42 -04:00
|
|
|
},
|
|
|
|
|
2010-08-11 11:43:48 -04:00
|
|
|
refresh_feeds: function(callback, has_unfetched_feeds) {
|
2010-06-08 11:19:41 -04:00
|
|
|
var self = this;
|
|
|
|
|
2010-08-11 22:02:47 -04:00
|
|
|
var pre_callback = function(data) {
|
2010-06-08 11:19:41 -04:00
|
|
|
var updated_feeds = [];
|
2010-08-11 11:43:48 -04:00
|
|
|
|
2010-08-11 22:02:47 -04:00
|
|
|
for (var f in data.feeds) {
|
2010-09-14 23:47:21 -04:00
|
|
|
if (!self.feeds[f]) continue;
|
2010-08-11 22:02:47 -04:00
|
|
|
var updated = false;
|
|
|
|
f = parseInt(f, 10);
|
|
|
|
var feed = data.feeds[f];
|
|
|
|
for (var k in feed) {
|
|
|
|
if (self.feeds[f][k] != feed[k]) {
|
|
|
|
// NEWSBLUR.log(['New Feed', self.feeds[f][k], feed[k], f, k]);
|
|
|
|
self.feeds[f][k] = feed[k];
|
|
|
|
NEWSBLUR.log(['Different', k, self.feeds[f], feed]);
|
|
|
|
updated = true;
|
2010-06-08 11:19:41 -04:00
|
|
|
}
|
|
|
|
}
|
2010-08-25 10:18:08 -04:00
|
|
|
if ((feed['has_exception'] && !self.feeds[f]['has_exception']) ||
|
|
|
|
(self.feeds[f]['has_exception'] && !feed['has_exception'])) {
|
|
|
|
updated = true;
|
|
|
|
self.feeds[f]['has_exception'] = !!feed['has_exception'];
|
|
|
|
}
|
2010-08-11 22:02:47 -04:00
|
|
|
if (updated && !(f in updated_feeds)) {
|
|
|
|
updated_feeds.push(f);
|
|
|
|
}
|
2010-06-08 11:19:41 -04:00
|
|
|
}
|
|
|
|
callback(updated_feeds);
|
|
|
|
};
|
|
|
|
|
2010-08-11 22:02:47 -04:00
|
|
|
var data = {};
|
|
|
|
if (has_unfetched_feeds) {
|
|
|
|
data['check_fetch_status'] = has_unfetched_feeds;
|
|
|
|
}
|
|
|
|
|
2010-06-08 11:19:41 -04:00
|
|
|
if (NEWSBLUR.Globals.is_authenticated) {
|
2010-08-11 22:02:47 -04:00
|
|
|
this.make_request('/reader/refresh_feeds', data, pre_callback);
|
2010-06-08 11:19:41 -04:00
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
refresh_feed: function(feed_id, callback, limit) {
|
|
|
|
var self = this;
|
|
|
|
|
|
|
|
var pre_callback = function(data) {
|
|
|
|
// NEWSBLUR.log(['refresh_feed pre_callback', data]);
|
|
|
|
self.load_feed_precallback(data, feed_id, callback);
|
|
|
|
};
|
|
|
|
|
|
|
|
// NEWSBLUR.log(['refresh_feed', feed_id, page, first_load, callback, pre_callback]);
|
|
|
|
if (feed_id) {
|
|
|
|
this.make_request('/reader/load_single_feed',
|
|
|
|
{
|
|
|
|
feed_id: feed_id,
|
|
|
|
page: 0,
|
|
|
|
limit: limit
|
|
|
|
}, pre_callback,
|
|
|
|
null,
|
|
|
|
{
|
|
|
|
'ajax_group': 'feed_page'
|
|
|
|
}
|
|
|
|
);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2010-08-11 22:02:47 -04:00
|
|
|
count_unfetched_feeds: function() {
|
|
|
|
var counts = {
|
|
|
|
'unfetched_feeds': 0,
|
|
|
|
'fetched_feeds': 0
|
|
|
|
};
|
|
|
|
|
|
|
|
for (var f in this.feeds) {
|
|
|
|
var feed = this.feeds[f];
|
|
|
|
|
|
|
|
if (feed['not_yet_fetched']) {
|
|
|
|
counts['unfetched_feeds'] += 1;
|
|
|
|
} else {
|
|
|
|
counts['fetched_feeds'] += 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return counts;
|
|
|
|
},
|
|
|
|
|
2010-06-08 11:19:41 -04:00
|
|
|
get_feed: function(feed_id) {
|
|
|
|
var self = this;
|
|
|
|
|
|
|
|
return this.feeds[feed_id];
|
|
|
|
},
|
|
|
|
|
|
|
|
get_feeds: function() {
|
|
|
|
var self = this;
|
|
|
|
|
|
|
|
return this.feeds;
|
|
|
|
},
|
|
|
|
|
|
|
|
get_folders: function() {
|
|
|
|
var self = this;
|
|
|
|
|
|
|
|
return this.folders;
|
|
|
|
},
|
|
|
|
|
|
|
|
get_feed_tags: function() {
|
|
|
|
return this.feed_tags;
|
|
|
|
},
|
|
|
|
|
|
|
|
get_feed_authors: function() {
|
|
|
|
return this.feed_authors;
|
|
|
|
},
|
|
|
|
|
|
|
|
get_story: function(story_id, callback) {
|
|
|
|
var self = this;
|
|
|
|
for (s in this.stories) {
|
|
|
|
if (this.stories[s].id == story_id) {
|
|
|
|
return this.stories[s];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
},
|
|
|
|
|
|
|
|
process_opml_import: function(data, callback) {
|
2010-08-11 23:02:17 -04:00
|
|
|
if (NEWSBLUR.Globals.is_authenticated) {
|
|
|
|
this.make_request('/import/process', data, callback);
|
|
|
|
} else {
|
|
|
|
if ($.isFunction(callback)) callback();
|
|
|
|
}
|
2010-06-08 11:19:41 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
save_classifier_story: function(story_id, data, callback) {
|
2010-08-11 23:02:17 -04:00
|
|
|
if (NEWSBLUR.Globals.is_authenticated) {
|
|
|
|
this.make_request('/classifier/save/story/', data, callback);
|
|
|
|
} else {
|
|
|
|
if ($.isFunction(callback)) callback();
|
|
|
|
}
|
2010-06-08 11:19:41 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
save_classifier_publisher: function(data, callback) {
|
2010-08-11 23:02:17 -04:00
|
|
|
if (NEWSBLUR.Globals.is_authenticated) {
|
|
|
|
this.make_request('/classifier/save/publisher', data, callback);
|
|
|
|
} else {
|
|
|
|
if ($.isFunction(callback)) callback();
|
|
|
|
}
|
2010-06-08 11:19:41 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
get_feed_classifier: function(feed_id, callback) {
|
|
|
|
this.make_request('/classifier/get/publisher/', {
|
|
|
|
'feed_id': feed_id
|
|
|
|
}, callback, null, {
|
|
|
|
'ajax_group': 'feed'
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
2010-09-14 20:49:28 -04:00
|
|
|
delete_feed: function(feed_id, in_folder, callback) {
|
2010-06-08 11:19:41 -04:00
|
|
|
delete this.feeds[feed_id];
|
2010-08-11 23:02:17 -04:00
|
|
|
if (NEWSBLUR.Globals.is_authenticated) {
|
2010-09-14 20:49:28 -04:00
|
|
|
this.make_request('/reader/delete_feed', {
|
|
|
|
'feed_id': feed_id,
|
|
|
|
'in_folder': in_folder
|
|
|
|
}, callback, null);
|
|
|
|
} else {
|
|
|
|
if ($.isFunction(callback)) callback();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2010-09-16 10:35:36 -04:00
|
|
|
delete_folder: function(folder_name, in_folder, callback) {
|
2010-09-14 20:49:28 -04:00
|
|
|
if (NEWSBLUR.Globals.is_authenticated) {
|
2010-09-16 10:35:36 -04:00
|
|
|
this.make_request('/reader/delete_folder', {
|
|
|
|
'folder_name': folder_name,
|
|
|
|
'in_folder': in_folder
|
|
|
|
}, callback, null);
|
2010-08-11 23:02:17 -04:00
|
|
|
} else {
|
|
|
|
if ($.isFunction(callback)) callback();
|
|
|
|
}
|
2010-06-08 11:19:41 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
save_add_url: function(url, folder, callback) {
|
|
|
|
this.make_request('/reader/add_url/', {
|
|
|
|
'url': url,
|
|
|
|
'folder': folder
|
|
|
|
}, callback, null);
|
|
|
|
},
|
|
|
|
|
|
|
|
save_add_folder: function(folder, parent_folder, callback) {
|
|
|
|
this.make_request('/reader/add_folder/', {
|
|
|
|
'folder': folder,
|
|
|
|
'parent_folder': parent_folder
|
|
|
|
}, callback, null);
|
|
|
|
},
|
|
|
|
|
2010-06-11 20:55:38 -04:00
|
|
|
preference: function(preference, value, callback) {
|
|
|
|
if (typeof value == 'undefined') {
|
2010-07-06 14:57:32 -04:00
|
|
|
return NEWSBLUR.Preferences[preference];
|
2010-06-11 20:55:38 -04:00
|
|
|
}
|
|
|
|
|
2010-08-18 20:35:45 -04:00
|
|
|
if (NEWSBLUR.Preferences[preference] == value) {
|
|
|
|
return $.isFunction(callback) && callback();
|
|
|
|
}
|
|
|
|
|
2010-07-06 14:57:32 -04:00
|
|
|
NEWSBLUR.Preferences[preference] = value;
|
2010-06-12 21:20:06 -04:00
|
|
|
if (NEWSBLUR.Globals.is_authenticated) {
|
2010-07-06 14:57:32 -04:00
|
|
|
this.make_request('/profile/set_preference', {
|
2010-06-12 21:20:06 -04:00
|
|
|
'preference': preference,
|
|
|
|
'value': value
|
|
|
|
}, callback, null);
|
|
|
|
}
|
2010-06-14 01:01:21 -04:00
|
|
|
},
|
|
|
|
|
2010-07-06 14:57:32 -04:00
|
|
|
view_setting: function(feed_id, feed_view_setting, callback) {
|
|
|
|
if (typeof feed_view_setting == 'undefined') {
|
2010-07-06 18:43:06 -04:00
|
|
|
return NEWSBLUR.Preferences.view_settings[feed_id+''] || this.DEFAULT_VIEW;
|
2010-07-06 14:57:32 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
NEWSBLUR.Preferences.view_settings[feed_id+''] = feed_view_setting;
|
|
|
|
if (NEWSBLUR.Globals.is_authenticated) {
|
|
|
|
this.make_request('/profile/set_view_setting', {
|
|
|
|
'feed_id': feed_id+'',
|
|
|
|
'feed_view_setting': feed_view_setting
|
|
|
|
}, callback, null);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2010-09-05 18:08:08 -07:00
|
|
|
collapsed_folders: function(folder_title, is_collapsed, callback) {
|
|
|
|
var folders = NEWSBLUR.Preferences.collapsed_folders;
|
|
|
|
var changed = false;
|
|
|
|
|
|
|
|
if (is_collapsed && NEWSBLUR.Preferences.collapsed_folders.indexOf(folder_title) == -1) {
|
|
|
|
NEWSBLUR.Preferences.collapsed_folders.push(folder_title);
|
|
|
|
changed = true;
|
|
|
|
} else if (!is_collapsed && NEWSBLUR.Preferences.collapsed_folders.indexOf(folder_title) != -1) {
|
|
|
|
NEWSBLUR.Preferences.collapsed_folders = _.without(folders, folder_title);
|
|
|
|
changed = true;
|
|
|
|
}
|
|
|
|
if (NEWSBLUR.Globals.is_authenticated && changed) {
|
|
|
|
this.make_request('/profile/set_collapsed_folders', {
|
|
|
|
'collapsed_folders': $.toJSON(NEWSBLUR.Preferences.collapsed_folders)
|
|
|
|
}, callback, null);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2010-06-14 01:01:21 -04:00
|
|
|
save_mark_read: function(days, callback) {
|
2010-07-06 14:57:32 -04:00
|
|
|
if (NEWSBLUR.Globals.is_authenticated) {
|
|
|
|
this.make_request('/reader/mark_all_as_read', {'days': days}, callback);
|
|
|
|
} else {
|
2010-07-11 11:10:45 -04:00
|
|
|
if ($.isFunction(callback)) callback();
|
2010-07-06 14:57:32 -04:00
|
|
|
}
|
2010-06-30 12:17:22 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
get_features_page: function(page, callback) {
|
|
|
|
this.make_request('/reader/load_features', {'page': page}, callback);
|
2010-07-11 11:10:45 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
save_feed_order: function(folders, callback) {
|
|
|
|
if (NEWSBLUR.Globals.is_authenticated) {
|
|
|
|
this.make_request('/reader/save_feed_order', {'folders': $.toJSON(folders)}, callback);
|
|
|
|
} else {
|
|
|
|
if ($.isFunction(callback)) callback();
|
|
|
|
}
|
2010-07-25 23:13:27 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
get_feed_statistics: function(feed_id, callback) {
|
|
|
|
this.make_request('/rss_feeds/statistics', {
|
|
|
|
'feed_id': feed_id
|
|
|
|
}, callback, callback, {
|
|
|
|
'ajax_group': 'statistics'
|
|
|
|
});
|
2010-08-17 23:40:03 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
start_import_from_google_reader: function(callback) {
|
|
|
|
this.make_request('/import/import_from_google_reader/', {}, callback);
|
2010-08-25 10:18:08 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
save_exception_retry: function(feed_id, callback) {
|
|
|
|
var self = this;
|
|
|
|
if (NEWSBLUR.Globals.is_authenticated) {
|
2010-08-30 18:41:53 -04:00
|
|
|
this.make_request('/rss_feeds/exception_retry', {
|
|
|
|
'feed_id': feed_id,
|
2010-08-30 22:42:44 -04:00
|
|
|
'reset_fetch': !!(this.feeds[feed_id].has_feed_exception || this.feeds[feed_id].has_page_exception)
|
2010-08-30 18:41:53 -04:00
|
|
|
}, callback);
|
2010-08-25 20:43:35 -04:00
|
|
|
} else {
|
|
|
|
if ($.isFunction(callback)) callback();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
save_exception_change_feed_link: function(feed_id, feed_link, callback) {
|
|
|
|
var self = this;
|
|
|
|
if (NEWSBLUR.Globals.is_authenticated) {
|
|
|
|
this.make_request('/rss_feeds/exception_change_feed_link', {
|
|
|
|
'feed_id': feed_id,
|
|
|
|
'feed_link': feed_link
|
|
|
|
}, callback);
|
|
|
|
} else {
|
|
|
|
if ($.isFunction(callback)) callback();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
save_exception_change_feed_address: function(feed_id, feed_address, callback) {
|
|
|
|
var self = this;
|
|
|
|
if (NEWSBLUR.Globals.is_authenticated) {
|
|
|
|
this.make_request('/rss_feeds/exception_change_feed_address', {
|
|
|
|
'feed_id': feed_id,
|
|
|
|
'feed_address': feed_address
|
|
|
|
}, callback);
|
2010-08-25 10:18:08 -04:00
|
|
|
} else {
|
|
|
|
if ($.isFunction(callback)) callback();
|
|
|
|
}
|
2010-06-08 11:19:41 -04:00
|
|
|
}
|
2010-08-25 10:18:08 -04:00
|
|
|
|
2010-06-08 11:19:41 -04:00
|
|
|
};
|
|
|
|
|
2010-06-11 20:55:38 -04:00
|
|
|
|