remove feedbrowser (other feeds)
This commit is contained in:
parent
0881d0a00d
commit
0b74db5ad7
|
@ -6,7 +6,7 @@ class Feeds extends Handler_Protected {
|
||||||
private $params;
|
private $params;
|
||||||
|
|
||||||
function csrf_ignore($method) {
|
function csrf_ignore($method) {
|
||||||
$csrf_ignored = array("index", "feedbrowser", "quickaddfeed", "search");
|
$csrf_ignored = array("index", "quickaddfeed", "search");
|
||||||
|
|
||||||
return array_search($method, $csrf_ignored) !== false;
|
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'
|
print "<button dojoType='dijit.form.Button' class='alt-primary' type='submit'
|
||||||
onclick=\"return dijit.byId('feedAddDlg').execute()\">".__('Subscribe')."</button>";
|
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 "<button dojoType='dijit.form.Button' onclick=\"return dijit.byId('feedAddDlg').hide()\">".__('Cancel')."</button>";
|
||||||
print "</footer>";
|
print "</footer>";
|
||||||
|
|
||||||
print "</form>";
|
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() {
|
function search() {
|
||||||
$this->params = explode(":", $_REQUEST["param"], 2);
|
$this->params = explode(":", $_REQUEST["param"], 2);
|
||||||
|
|
||||||
|
|
|
@ -347,20 +347,6 @@ class RPC extends Handler_Protected {
|
||||||
print "</ul>";
|
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
|
// Silent
|
||||||
function massSubscribe() {
|
function massSubscribe() {
|
||||||
|
|
||||||
|
|
|
@ -19,53 +19,6 @@ class RSSUtils {
|
||||||
return preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $str);
|
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) {
|
static function update_daemon_common($limit = DAEMON_FEED_LIMIT) {
|
||||||
$schema_version = get_schema_version();
|
$schema_version = get_schema_version();
|
||||||
|
|
||||||
|
@ -1542,9 +1495,6 @@ class RSSUtils {
|
||||||
RSSUtils::expire_error_log();
|
RSSUtils::expire_error_log();
|
||||||
RSSUtils::expire_feed_archive();
|
RSSUtils::expire_feed_archive();
|
||||||
|
|
||||||
$count = RSSUtils::update_feedbrowser_cache();
|
|
||||||
Debug::log("Feedbrowser updated, $count feeds processed.");
|
|
||||||
|
|
||||||
Article::purge_orphans();
|
Article::purge_orphans();
|
||||||
RSSUtils::cleanup_counters_cache();
|
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();
|
init_plugins();
|
||||||
|
|
||||||
$longopts = array("feeds",
|
$longopts = array("feeds",
|
||||||
"feedbrowser",
|
|
||||||
"daemon",
|
"daemon",
|
||||||
"daemon-loop",
|
"daemon-loop",
|
||||||
"task:",
|
"task:",
|
||||||
|
@ -78,7 +77,6 @@
|
||||||
print "Tiny Tiny RSS data update script.\n\n";
|
print "Tiny Tiny RSS data update script.\n\n";
|
||||||
print "Options:\n";
|
print "Options:\n";
|
||||||
print " --feeds - update feeds\n";
|
print " --feeds - update feeds\n";
|
||||||
print " --feedbrowser - update feedbrowser\n";
|
|
||||||
print " --daemon - start single-process update daemon\n";
|
print " --daemon - start single-process update daemon\n";
|
||||||
print " --task N - create lockfile using this task id\n";
|
print " --task N - create lockfile using this task id\n";
|
||||||
print " --cleanup-tags - perform tags table maintenance\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);
|
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"])) {
|
if (isset($options["daemon"])) {
|
||||||
while (true) {
|
while (true) {
|
||||||
$quiet = (isset($options["quiet"])) ? "--quiet" : "";
|
$quiet = (isset($options["quiet"])) ? "--quiet" : "";
|
||||||
|
|
Loading…
Reference in New Issue