move out common subops from viewfeed handler
This commit is contained in:
parent
3c81ae1aec
commit
23aa0d167c
2 changed files with 144 additions and 152 deletions
154
backend.php
154
backend.php
|
@ -1159,161 +1159,11 @@
|
||||||
</script>";
|
</script>";
|
||||||
|
|
||||||
if ($subop == "ForceUpdate" && sprintf("%d", $feed) > 0) {
|
if ($subop == "ForceUpdate" && sprintf("%d", $feed) > 0) {
|
||||||
|
update_generic_feed($link, $feed, $cat_view);
|
||||||
/* if (ENABLE_UPDATE_DAEMON) {
|
|
||||||
|
|
||||||
if ($cid == 0) {
|
|
||||||
|
|
||||||
db_query($link, "INSERT INTO ttrss_scheduled_updates
|
|
||||||
(owner_uid, feed_id, entered) VALUES
|
|
||||||
(".$_SESSION["uid"].", '$feed', NOW())");
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
// fixme update_rss_feed...
|
|
||||||
} */
|
|
||||||
|
|
||||||
if ($cat_view) {
|
|
||||||
|
|
||||||
if ($feed > 0) {
|
|
||||||
$cat_qpart = "cat_id = '$feed'";
|
|
||||||
} else {
|
|
||||||
$cat_qpart = "cat_id IS NULL";
|
|
||||||
}
|
|
||||||
|
|
||||||
$tmp_result = db_query($link, "SELECT feed_url FROM ttrss_feeds
|
|
||||||
WHERE $cat_qpart AND owner_uid = " . $_SESSION["uid"]);
|
|
||||||
|
|
||||||
while ($tmp_line = db_fetch_assoc($tmp_result)) {
|
|
||||||
$feed_url = $tmp_line["feed_url"];
|
|
||||||
update_rss_feed($link, $feed_url, $feed, ENABLE_UPDATE_DAEMON);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
$tmp_result = db_query($link, "SELECT feed_url FROM ttrss_feeds
|
|
||||||
WHERE id = '$feed'");
|
|
||||||
$feed_url = db_fetch_result($tmp_result, 0, "feed_url");
|
|
||||||
update_rss_feed($link, $feed_url, $feed, ENABLE_UPDATE_DAEMON);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($subop == "MarkAllRead") {
|
if ($subop == "MarkAllRead") {
|
||||||
|
catchup_feed($link, $feed, $cat_view);
|
||||||
if (preg_match("/^[0-9][0-9]*$/", $feed) != false && $feed >= 0) {
|
|
||||||
|
|
||||||
if ($cat_view) {
|
|
||||||
|
|
||||||
if ($feed > 0) {
|
|
||||||
$cat_qpart = "cat_id = '$feed'";
|
|
||||||
} else {
|
|
||||||
$cat_qpart = "cat_id IS NULL";
|
|
||||||
}
|
|
||||||
|
|
||||||
$tmp_result = db_query($link, "SELECT id
|
|
||||||
FROM ttrss_feeds WHERE $cat_qpart AND owner_uid = " .
|
|
||||||
$_SESSION["uid"]);
|
|
||||||
|
|
||||||
while ($tmp_line = db_fetch_assoc($tmp_result)) {
|
|
||||||
|
|
||||||
$tmp_feed = $tmp_line["id"];
|
|
||||||
|
|
||||||
db_query($link, "UPDATE ttrss_user_entries
|
|
||||||
SET unread = false,last_read = NOW()
|
|
||||||
WHERE feed_id = '$tmp_feed' AND owner_uid = " . $_SESSION["uid"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if ($feed > 0) {
|
|
||||||
|
|
||||||
$tmp_result = db_query($link, "SELECT id
|
|
||||||
FROM ttrss_feeds WHERE parent_feed = '$feed'
|
|
||||||
ORDER BY cat_id,title");
|
|
||||||
|
|
||||||
$parent_ids = array();
|
|
||||||
|
|
||||||
if (db_num_rows($tmp_result) > 0) {
|
|
||||||
while ($p = db_fetch_assoc($tmp_result)) {
|
|
||||||
array_push($parent_ids, "feed_id = " . $p["id"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$children_qpart = implode(" OR ", $parent_ids);
|
|
||||||
|
|
||||||
db_query($link, "UPDATE ttrss_user_entries
|
|
||||||
SET unread = false,last_read = NOW()
|
|
||||||
WHERE (feed_id = '$feed' OR $children_qpart)
|
|
||||||
AND owner_uid = " . $_SESSION["uid"]);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
db_query($link, "UPDATE ttrss_user_entries
|
|
||||||
SET unread = false,last_read = NOW()
|
|
||||||
WHERE feed_id = '$feed' AND owner_uid = " . $_SESSION["uid"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if ($feed < 0 && $feed > -10) { // special, like starred
|
|
||||||
|
|
||||||
if ($feed == -1) {
|
|
||||||
db_query($link, "UPDATE ttrss_user_entries
|
|
||||||
SET unread = false,last_read = NOW()
|
|
||||||
WHERE marked = true AND owner_uid = ".$_SESSION["uid"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if ($feed < -10) { // label
|
|
||||||
|
|
||||||
// TODO make this more efficient
|
|
||||||
|
|
||||||
$label_id = -$feed - 11;
|
|
||||||
|
|
||||||
$tmp_result = db_query($link, "SELECT sql_exp FROM ttrss_labels
|
|
||||||
WHERE id = '$label_id'");
|
|
||||||
|
|
||||||
if ($tmp_result) {
|
|
||||||
$sql_exp = db_fetch_result($tmp_result, 0, "sql_exp");
|
|
||||||
|
|
||||||
db_query($link, "BEGIN");
|
|
||||||
|
|
||||||
$tmp2_result = db_query($link,
|
|
||||||
"SELECT
|
|
||||||
int_id
|
|
||||||
FROM
|
|
||||||
ttrss_user_entries,ttrss_entries
|
|
||||||
WHERE
|
|
||||||
ref_id = id AND
|
|
||||||
$sql_exp AND
|
|
||||||
owner_uid = " . $_SESSION["uid"]);
|
|
||||||
|
|
||||||
while ($tmp_line = db_fetch_assoc($tmp2_result)) {
|
|
||||||
db_query($link, "UPDATE
|
|
||||||
ttrss_user_entries
|
|
||||||
SET
|
|
||||||
unread = false, last_read = NOW()
|
|
||||||
WHERE
|
|
||||||
int_id = " . $tmp_line["int_id"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
db_query($link, "COMMIT");
|
|
||||||
|
|
||||||
/* db_query($link, "UPDATE ttrss_user_entries,ttrss_entries
|
|
||||||
SET unread = false,last_read = NOW()
|
|
||||||
WHERE $sql_exp
|
|
||||||
AND ref_id = id
|
|
||||||
AND owner_uid = ".$_SESSION["uid"]); */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else { // tag
|
|
||||||
db_query($link, "BEGIN");
|
|
||||||
|
|
||||||
$tag_name = db_escape_string($feed);
|
|
||||||
|
|
||||||
$result = db_query($link, "SELECT post_int_id FROM ttrss_tags
|
|
||||||
WHERE tag_name = '$tag_name' AND owner_uid = " . $_SESSION["uid"]);
|
|
||||||
|
|
||||||
while ($line = db_fetch_assoc($result)) {
|
|
||||||
db_query($link, "UPDATE ttrss_user_entries SET
|
|
||||||
unread = false, last_read = NOW()
|
|
||||||
WHERE int_id = " . $line["post_int_id"]);
|
|
||||||
}
|
|
||||||
db_query($link, "COMMIT");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$search = db_escape_string($_GET["search"]);
|
$search = db_escape_string($_GET["search"]);
|
||||||
|
|
142
functions.php
142
functions.php
|
@ -1055,4 +1055,146 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function catchup_feed($link, $feed, $cat_view) {
|
||||||
|
if (preg_match("/^[0-9][0-9]*$/", $feed) != false && $feed >= 0) {
|
||||||
|
|
||||||
|
if ($cat_view) {
|
||||||
|
|
||||||
|
if ($feed > 0) {
|
||||||
|
$cat_qpart = "cat_id = '$feed'";
|
||||||
|
} else {
|
||||||
|
$cat_qpart = "cat_id IS NULL";
|
||||||
|
}
|
||||||
|
|
||||||
|
$tmp_result = db_query($link, "SELECT id
|
||||||
|
FROM ttrss_feeds WHERE $cat_qpart AND owner_uid = " .
|
||||||
|
$_SESSION["uid"]);
|
||||||
|
|
||||||
|
while ($tmp_line = db_fetch_assoc($tmp_result)) {
|
||||||
|
|
||||||
|
$tmp_feed = $tmp_line["id"];
|
||||||
|
|
||||||
|
db_query($link, "UPDATE ttrss_user_entries
|
||||||
|
SET unread = false,last_read = NOW()
|
||||||
|
WHERE feed_id = '$tmp_feed' AND owner_uid = " . $_SESSION["uid"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if ($feed > 0) {
|
||||||
|
|
||||||
|
$tmp_result = db_query($link, "SELECT id
|
||||||
|
FROM ttrss_feeds WHERE parent_feed = '$feed'
|
||||||
|
ORDER BY cat_id,title");
|
||||||
|
|
||||||
|
$parent_ids = array();
|
||||||
|
|
||||||
|
if (db_num_rows($tmp_result) > 0) {
|
||||||
|
while ($p = db_fetch_assoc($tmp_result)) {
|
||||||
|
array_push($parent_ids, "feed_id = " . $p["id"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$children_qpart = implode(" OR ", $parent_ids);
|
||||||
|
|
||||||
|
db_query($link, "UPDATE ttrss_user_entries
|
||||||
|
SET unread = false,last_read = NOW()
|
||||||
|
WHERE (feed_id = '$feed' OR $children_qpart)
|
||||||
|
AND owner_uid = " . $_SESSION["uid"]);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
db_query($link, "UPDATE ttrss_user_entries
|
||||||
|
SET unread = false,last_read = NOW()
|
||||||
|
WHERE feed_id = '$feed' AND owner_uid = " . $_SESSION["uid"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if ($feed < 0 && $feed > -10) { // special, like starred
|
||||||
|
|
||||||
|
if ($feed == -1) {
|
||||||
|
db_query($link, "UPDATE ttrss_user_entries
|
||||||
|
SET unread = false,last_read = NOW()
|
||||||
|
WHERE marked = true AND owner_uid = ".$_SESSION["uid"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if ($feed < -10) { // label
|
||||||
|
|
||||||
|
// TODO make this more efficient
|
||||||
|
|
||||||
|
$label_id = -$feed - 11;
|
||||||
|
|
||||||
|
$tmp_result = db_query($link, "SELECT sql_exp FROM ttrss_labels
|
||||||
|
WHERE id = '$label_id'");
|
||||||
|
|
||||||
|
if ($tmp_result) {
|
||||||
|
$sql_exp = db_fetch_result($tmp_result, 0, "sql_exp");
|
||||||
|
|
||||||
|
db_query($link, "BEGIN");
|
||||||
|
|
||||||
|
$tmp2_result = db_query($link,
|
||||||
|
"SELECT
|
||||||
|
int_id
|
||||||
|
FROM
|
||||||
|
ttrss_user_entries,ttrss_entries
|
||||||
|
WHERE
|
||||||
|
ref_id = id AND
|
||||||
|
$sql_exp AND
|
||||||
|
owner_uid = " . $_SESSION["uid"]);
|
||||||
|
|
||||||
|
while ($tmp_line = db_fetch_assoc($tmp2_result)) {
|
||||||
|
db_query($link, "UPDATE
|
||||||
|
ttrss_user_entries
|
||||||
|
SET
|
||||||
|
unread = false, last_read = NOW()
|
||||||
|
WHERE
|
||||||
|
int_id = " . $tmp_line["int_id"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
db_query($link, "COMMIT");
|
||||||
|
|
||||||
|
/* db_query($link, "UPDATE ttrss_user_entries,ttrss_entries
|
||||||
|
SET unread = false,last_read = NOW()
|
||||||
|
WHERE $sql_exp
|
||||||
|
AND ref_id = id
|
||||||
|
AND owner_uid = ".$_SESSION["uid"]); */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else { // tag
|
||||||
|
db_query($link, "BEGIN");
|
||||||
|
|
||||||
|
$tag_name = db_escape_string($feed);
|
||||||
|
|
||||||
|
$result = db_query($link, "SELECT post_int_id FROM ttrss_tags
|
||||||
|
WHERE tag_name = '$tag_name' AND owner_uid = " . $_SESSION["uid"]);
|
||||||
|
|
||||||
|
while ($line = db_fetch_assoc($result)) {
|
||||||
|
db_query($link, "UPDATE ttrss_user_entries SET
|
||||||
|
unread = false, last_read = NOW()
|
||||||
|
WHERE int_id = " . $line["post_int_id"]);
|
||||||
|
}
|
||||||
|
db_query($link, "COMMIT");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_generic_feed($link, $feed, $cat_view) {
|
||||||
|
if ($cat_view) {
|
||||||
|
|
||||||
|
if ($feed > 0) {
|
||||||
|
$cat_qpart = "cat_id = '$feed'";
|
||||||
|
} else {
|
||||||
|
$cat_qpart = "cat_id IS NULL";
|
||||||
|
}
|
||||||
|
|
||||||
|
$tmp_result = db_query($link, "SELECT feed_url FROM ttrss_feeds
|
||||||
|
WHERE $cat_qpart AND owner_uid = " . $_SESSION["uid"]);
|
||||||
|
|
||||||
|
while ($tmp_line = db_fetch_assoc($tmp_result)) {
|
||||||
|
$feed_url = $tmp_line["feed_url"];
|
||||||
|
update_rss_feed($link, $feed_url, $feed, ENABLE_UPDATE_DAEMON);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$tmp_result = db_query($link, "SELECT feed_url FROM ttrss_feeds
|
||||||
|
WHERE id = '$feed'");
|
||||||
|
$feed_url = db_fetch_result($tmp_result, 0, "feed_url");
|
||||||
|
update_rss_feed($link, $feed_url, $feed, ENABLE_UPDATE_DAEMON);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Reference in a new issue