remove feedbrowser (other feeds)

This commit is contained in:
Andrew Dolgov 2019-03-06 20:02:06 +03:00
parent 0881d0a00d
commit 0b74db5ad7
5 changed files with 1 additions and 231 deletions

View File

@ -6,7 +6,7 @@ class Feeds extends Handler_Protected {
private $params;
function csrf_ignore($method) {
$csrf_ignored = array("index", "feedbrowser", "quickaddfeed", "search");
$csrf_ignored = array("index", "quickaddfeed", "search");
return array_search($method, $csrf_ignored) !== false;
}
@ -707,65 +707,12 @@ class Feeds extends Handler_Protected {
print "<button dojoType='dijit.form.Button' class='alt-primary' type='submit'
onclick=\"return dijit.byId('feedAddDlg').execute()\">".__('Subscribe')."</button>";
if (!(defined('_DISABLE_FEED_BROWSER') && _DISABLE_FEED_BROWSER)) {
print "<button dojoType='dijit.form.Button' onclick=\"return CommonDialogs.feedBrowser()\">".__('More feeds')."</button>";
}
print "<button dojoType='dijit.form.Button' onclick=\"return dijit.byId('feedAddDlg').hide()\">".__('Cancel')."</button>";
print "</footer>";
print "</form>";
}
function feedBrowser() {
if (defined('_DISABLE_FEED_BROWSER') && _DISABLE_FEED_BROWSER) return;
$browser_search = $_REQUEST["search"];
print_hidden("op", "rpc");
print_hidden("method", "updateFeedBrowser");
print "<div dojoType=\"dijit.Toolbar\">
<div style='float : right'>
<img style='display : none'
id='feed_browser_spinner' src='images/indicator_white.gif'>
<input name='search' dojoType='dijit.form.TextBox' size='20' type='search'
onchange=\"dijit.byId('feedBrowserDlg').update()\" value=\"$browser_search\">
<button dojoType='dijit.form.Button' onclick=\"dijit.byId('feedBrowserDlg').update()\">".__('Search')."</button>
</div>";
print " <select name='mode' dojoType='dijit.form.Select' onchange=\"dijit.byId('feedBrowserDlg').update()\">
<option value='1'>" . __('Popular feeds') . "</option>
<option value='2'>" . __('Feed archive') . "</option>
</select> ";
print __("limit:");
print " <select dojoType='dijit.form.Select' name='limit' onchange=\"dijit.byId('feedBrowserDlg').update()\">";
foreach (array(25, 50, 100, 200) as $l) {
//$issel = ($l == $limit) ? "selected=\"1\"" : "";
print "<option value=\"$l\">$l</option>";
}
print "</select> ";
print "</div>";
require_once "feedbrowser.php";
print "<ul class='browseFeedList' id='browseFeedList'>";
print make_feed_browser("", 25);
print "</ul>";
print "<footer class='text-center'>
<button dojoType='dijit.form.Button' type='submit' class='alt-primary' onclick=\"dijit.byId('feedBrowserDlg').execute()\">".__('Subscribe')."</button>
<button dojoType='dijit.form.Button' style='display : none' id='feed_archive_remove' onclick=\"dijit.byId('feedBrowserDlg').removeFromArchive()\">".__('Remove')."</button>
<button dojoType='dijit.form.Button' onclick=\"dijit.byId('feedBrowserDlg').hide()\" >".__('Cancel')."</button>
</footer>";
}
function search() {
$this->params = explode(":", $_REQUEST["param"], 2);

View File

@ -347,20 +347,6 @@ class RPC extends Handler_Protected {
print "</ul>";
}
function updateFeedBrowser() {
if (defined('_DISABLE_FEED_BROWSER') && _DISABLE_FEED_BROWSER) return;
$search = clean($_REQUEST["search"]);
$limit = clean($_REQUEST["limit"]);
$mode = (int) clean($_REQUEST["mode"]);
require_once "feedbrowser.php";
print json_encode(array("content" =>
make_feed_browser($search, $limit, $mode),
"mode" => $mode));
}
// Silent
function massSubscribe() {

View File

@ -19,53 +19,6 @@ class RSSUtils {
return preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $str);
}
static function update_feedbrowser_cache() {
$pdo = Db::pdo();
$sth = $pdo->query("SELECT feed_url, site_url, title, COUNT(id) AS subscribers
FROM ttrss_feeds WHERE feed_url NOT IN (SELECT feed_url FROM ttrss_feeds
WHERE private IS true OR auth_login != '' OR auth_pass != '' OR feed_url LIKE '%:%@%/%')
GROUP BY feed_url, site_url, title ORDER BY subscribers DESC LIMIT 1000");
$pdo->beginTransaction();
$pdo->query("DELETE FROM ttrss_feedbrowser_cache");
$count = 0;
while ($line = $sth->fetch()) {
$subscribers = $line["subscribers"];
$feed_url = $line["feed_url"];
$title = $line["title"];
$site_url = $line["site_url"];
$tmph = $pdo->prepare("SELECT subscribers FROM
ttrss_feedbrowser_cache WHERE feed_url = ?");
$tmph->execute([$feed_url]);
if (!$tmph->fetch()) {
$tmph = $pdo->prepare("INSERT INTO ttrss_feedbrowser_cache
(feed_url, site_url, title, subscribers)
VALUES
(?, ?, ?, ?)");
$tmph->execute([$feed_url, $site_url, $title, $subscribers]);
++$count;
}
}
$pdo->commit();
return $count;
}
static function update_daemon_common($limit = DAEMON_FEED_LIMIT) {
$schema_version = get_schema_version();
@ -1542,9 +1495,6 @@ class RSSUtils {
RSSUtils::expire_error_log();
RSSUtils::expire_feed_archive();
$count = RSSUtils::update_feedbrowser_cache();
Debug::log("Feedbrowser updated, $count feeds processed.");
Article::purge_orphans();
RSSUtils::cleanup_counters_cache();

View File

@ -1,106 +0,0 @@
<?php
function make_feed_browser($search, $limit, $mode = 1) {
if (defined('_DISABLE_FEED_BROWSER') && _DISABLE_FEED_BROWSER) return;
$rv = '';
$pdo = Db::pdo();
if ($search) {
$search = $pdo->quote($search);
$search_qpart = "AND (UPPER(feed_url) LIKE UPPER('%$search%') OR
UPPER(title) LIKE UPPER('%$search%'))";
} else {
$search_qpart = "";
}
if ($mode == 1) {
$sth = $pdo->prepare("SELECT feed_url, site_url, title, SUM(subscribers) AS subscribers FROM
(SELECT feed_url, site_url, title, subscribers FROM ttrss_feedbrowser_cache UNION ALL
SELECT feed_url, site_url, title, subscribers FROM ttrss_linked_feeds) AS qqq
WHERE
(SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf
WHERE tf.feed_url = qqq.feed_url
AND owner_uid = ?) $search_qpart
GROUP BY feed_url, site_url, title ORDER BY subscribers DESC LIMIT " . (int)$limit);
$sth->execute([$_SESSION['uid']]);
} else if ($mode == 2) {
$sth = $pdo->prepare("SELECT *,
(SELECT COUNT(*) FROM ttrss_user_entries WHERE
orig_feed_id = ttrss_archived_feeds.id) AS articles_archived
FROM
ttrss_archived_feeds
WHERE
(SELECT COUNT(*) FROM ttrss_feeds
WHERE ttrss_feeds.feed_url = ttrss_archived_feeds.feed_url AND
owner_uid = :uid) = 0 AND
owner_uid = :uid $search_qpart
ORDER BY id DESC LIMIT " . (int)$limit);
$sth->execute([":uid" => $_SESSION['uid']]);
}
$feedctr = 0;
while ($line = $sth->fetch()) {
if ($mode == 1) {
$feed_url = htmlspecialchars($line["feed_url"]);
$site_url = htmlspecialchars($line["site_url"]);
$subscribers = $line["subscribers"];
$check_box = "<input onclick='Lists.onRowChecked(this)'
dojoType=\"dijit.form.CheckBox\"
type=\"checkbox\" \">";
$site_url = "<a target=\"_blank\" rel=\"noopener noreferrer\"
href=\"$site_url\">
<span class=\"fb_feedTitle\">".
htmlspecialchars($line["title"])."</span></a>";
$feed_url = "<a target=\"_blank\" rel=\"noopener noreferrer\" class=\"fb_feedUrl\"
href=\"$feed_url\"><i class='icon-syndicate material-icons'>rss_feed</i></a>";
$rv .= "<li>$check_box $feed_url $site_url".
"&nbsp;<span class='subscribers'>($subscribers)</span></li>";
} else if ($mode == 2) {
$feed_url = htmlspecialchars($line["feed_url"]);
$site_url = htmlspecialchars($line["site_url"]);
$check_box = "<input onclick='Lists.onRowChecked(this)' dojoType=\"dijit.form.CheckBox\"
type=\"checkbox\">";
if ($line['articles_archived'] > 0) {
$archived = sprintf(_ngettext("%d archived article", "%d archived articles", (int) $line['articles_archived']), $line['articles_archived']);
$archived = "&nbsp;<span class='subscribers'>($archived)</span>";
} else {
$archived = '';
}
$site_url = "<a target=\"_blank\" rel=\"noopener noreferrer\"
href=\"$site_url\">
<span class=\"fb_feedTitle\">".
htmlspecialchars($line["title"])."</span></a>";
$feed_url = "<a target=\"_blank\" rel=\"noopener noreferrer\" class=\"fb_feedUrl\"
href=\"$feed_url\"><i class='icon-syndicate material-icons'>rss_feed</i></a>";
$rv .= "<li id=\"FBROW-".$line["id"]."\">".
"$check_box $feed_url $site_url $archived</li>";
}
++$feedctr;
}
if ($feedctr == 0) {
$rv .= "<li style=\"text-align : center\"><p>".__('No feeds found.')."</p></li>";
}
return $rv;
}

View File

@ -22,7 +22,6 @@
init_plugins();
$longopts = array("feeds",
"feedbrowser",
"daemon",
"daemon-loop",
"task:",
@ -78,7 +77,6 @@
print "Tiny Tiny RSS data update script.\n\n";
print "Options:\n";
print " --feeds - update feeds\n";
print " --feedbrowser - update feedbrowser\n";
print " --daemon - start single-process update daemon\n";
print " --task N - create lockfile using this task id\n";
print " --cleanup-tags - perform tags table maintenance\n";
@ -181,11 +179,6 @@
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", $op);
}
if (isset($options["feedbrowser"])) {
$count = RSSUtils::update_feedbrowser_cache();
print "Finished, $count feeds processed.\n";
}
if (isset($options["daemon"])) {
while (true) {
$quiet = (isset($options["quiet"])) ? "--quiet" : "";