mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-05 16:58:59 +00:00
150 lines
No EOL
4.9 KiB
JavaScript
150 lines
No EOL
4.9 KiB
JavaScript
NEWSBLUR.Router = Backbone.Router.extend({
|
|
|
|
routes: {
|
|
"add/?": "add_site",
|
|
"try/?": "try_site",
|
|
"site/:site_id/:slug": "site",
|
|
"site/:site_id/": "site",
|
|
"site/:site_id": "site",
|
|
"read": "read",
|
|
"saved": "starred",
|
|
"saved/:tag": "starred",
|
|
"folder/saved": "starred",
|
|
"folder/saved/:tag": "starred",
|
|
"folder/:folder_name": "folder",
|
|
"folder/:folder_name/": "folder",
|
|
"social/:user_id/:slug": "social",
|
|
"social/:user_id/": "social",
|
|
"social/:user_id": "social",
|
|
"user/*user": "user"
|
|
},
|
|
|
|
add_site: function() {
|
|
NEWSBLUR.log(["add", window.location, $.getQueryString('url')]);
|
|
NEWSBLUR.reader.open_add_feed_modal({url: $.getQueryString('url')});
|
|
},
|
|
|
|
try_site: function() {
|
|
NEWSBLUR.log(["try", window.location]);
|
|
},
|
|
|
|
site: function(site_id, slug) {
|
|
// NEWSBLUR.log(["site", site_id, slug]);
|
|
site_id = parseInt(site_id, 10);
|
|
var feed = NEWSBLUR.assets.get_feed(site_id);
|
|
var query = this.extract_query();
|
|
if (query) {
|
|
NEWSBLUR.reader.flags.searching = true;
|
|
NEWSBLUR.reader.flags.search = query;
|
|
}
|
|
if (feed) {
|
|
NEWSBLUR.reader.open_feed(site_id, {router: true, force: true, search: query});
|
|
} else {
|
|
NEWSBLUR.reader.load_feed_in_tryfeed_view(site_id, {
|
|
router: true,
|
|
force: true,
|
|
search: query,
|
|
feed: {
|
|
feed_title: _.string.humanize(slug || "")
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
read: function() {
|
|
var options = {
|
|
router: true
|
|
};
|
|
var query = this.extract_query();
|
|
if (query) {
|
|
NEWSBLUR.reader.flags.searching = true;
|
|
NEWSBLUR.reader.flags.search = query;
|
|
options['search'] = query;
|
|
}
|
|
console.log(["read stories", options]);
|
|
NEWSBLUR.reader.open_read_stories(options);
|
|
},
|
|
|
|
starred: function(tag) {
|
|
var options = {
|
|
router: true,
|
|
tag: tag
|
|
};
|
|
var query = this.extract_query();
|
|
if (query) {
|
|
NEWSBLUR.reader.flags.searching = true;
|
|
NEWSBLUR.reader.flags.search = query;
|
|
options['search'] = query;
|
|
}
|
|
console.log(["starred", options, tag]);
|
|
NEWSBLUR.reader.open_starred_stories(options);
|
|
},
|
|
|
|
folder: function(folder_name) {
|
|
folder_name = folder_name.replace(/-/g, ' ');
|
|
// NEWSBLUR.log(["folder", folder_name]);
|
|
var options = {router: true};
|
|
var query = this.extract_query();
|
|
if (query) {
|
|
NEWSBLUR.reader.flags.searching = true;
|
|
NEWSBLUR.reader.flags.search = query;
|
|
options['search'] = query;
|
|
}
|
|
|
|
if (folder_name == "everything") {
|
|
NEWSBLUR.reader.open_river_stories(null, null, options);
|
|
} else if (folder_name == "infrequent") {
|
|
options.infrequent = NEWSBLUR.assets.preference('infrequent_stories_per_month');
|
|
NEWSBLUR.reader.open_river_stories(null, null, options);
|
|
} else if (folder_name == "blurblogs") {
|
|
NEWSBLUR.reader.open_river_blurblogs_stories(options);
|
|
} else if (folder_name == "global blurblogs") {
|
|
options['global'] = true;
|
|
NEWSBLUR.reader.open_river_blurblogs_stories(options);
|
|
} else {
|
|
var folder = NEWSBLUR.assets.get_folder(folder_name);
|
|
if (folder) {
|
|
NEWSBLUR.reader.open_river_stories(folder.folder_view.$el, folder, options);
|
|
}
|
|
}
|
|
},
|
|
|
|
social: function(user_id, slug) {
|
|
NEWSBLUR.log(["router:social", user_id, slug]);
|
|
var query = this.extract_query();
|
|
if (query) {
|
|
NEWSBLUR.reader.flags.searching = true;
|
|
NEWSBLUR.reader.flags.search = query;
|
|
}
|
|
var feed_id = "social:" + user_id;
|
|
if (NEWSBLUR.assets.get_feed(feed_id)) {
|
|
NEWSBLUR.reader.open_social_stories(feed_id, {router: true, force: true, search: query});
|
|
} else {
|
|
NEWSBLUR.reader.load_social_feed_in_tryfeed_view(feed_id, {
|
|
router: true,
|
|
force: true,
|
|
search: query,
|
|
feed: {
|
|
username: _.string.humanize(slug),
|
|
id: feed_id,
|
|
user_id: parseInt(user_id, 10),
|
|
feed_title: _.string.humanize(slug)
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
extract_query: function() {
|
|
var search = $.getQueryString('search');
|
|
var sanitized = search && search.replace(/[^\w\s]+/g, " ");
|
|
|
|
// console.log('extract_query', search, sanitized);
|
|
|
|
return sanitized;
|
|
},
|
|
|
|
user: function(user) {
|
|
NEWSBLUR.log(["user", user]);
|
|
}
|
|
|
|
}); |