remove feedbrowser (other feeds)
This commit is contained in:
parent
0881d0a00d
commit
0b74db5ad7
|
@ -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);
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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".
|
||||
" <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 = " <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;
|
||||
}
|
|
@ -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" : "";
|
||||
|
|
Loading…
Reference in New Issue