X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;ds=sidebyside;f=functions.php;h=9841f95c9f1f0cc037c2368f4b543f99157a2311;hb=cd42edf18dac1955a4046cc68a790aaf77cd6536;hp=2fdd132206b5667753c4d5e18f5c9782358d2a4f;hpb=ab3d0b9926f469540ac3d414b953a595aa5fec3e;p=tt-rss.git diff --git a/functions.php b/functions.php index 2fdd1322..9841f95c 100644 --- a/functions.php +++ b/functions.php @@ -1,28 +1,48 @@ 0) { - if (DB_TYPE == "pgsql") { - $result = db_query($link, "DELETE FROM ttrss_entries WHERE - marked = false AND - date_entered < NOW() - INTERVAL '".PURGE_OLD_DAYS." days'"); - } else { - $result = db_query($link, "DELETE FROM ttrss_entries WHERE - marked = false AND - date_entered < DATE_SUB(NOW(), INTERVAL ".PURGE_OLD_DAYS." DAY)"); + $user_id = $_SESSION["uid"]; + + $result = db_query($link, "SELECT id,purge_interval FROM ttrss_feeds + WHERE owner_uid = '$user_id'"); + + while ($line = db_fetch_assoc($result)) { + + $feed_id = $line["id"]; + $purge_interval = $line["purge_interval"]; + + if ($purge_interval == 0) $purge_interval = get_pref($link, 'PURGE_OLD_DAYS'); + + if ($purge_interval > 0) { + + if (DB_TYPE == "pgsql") { + db_query($link, "DELETE FROM ttrss_entries WHERE + marked = false AND feed_id = '$feed_id' AND + date_entered < NOW() - INTERVAL '$purge_interval days'"); + } else { + db_query($link, "DELETE FROM ttrss_entries WHERE + marked = false AND feed_id = '$feed_id' AND + date_entered < DATE_SUB(NOW(), INTERVAL $purge_interval DAY)"); + } } - } + } } function update_all_feeds($link, $fetch) { if (WEB_DEMO_MODE) return; - if (DAEMON_REFRESH_ONLY) { + if (get_pref($link, 'DAEMON_REFRESH_ONLY')) { if (!$_GET["daemon"]) { return; } @@ -30,14 +50,18 @@ db_query($link, "BEGIN"); + $user_id = $_SESSION["uid"]; + $result = db_query($link, "SELECT feed_url,id, substring(last_updated,1,19) as last_updated, - update_interval FROM ttrss_feeds"); + update_interval FROM ttrss_feeds WHERE owner_uid = '$user_id'"); while ($line = db_fetch_assoc($result)) { $upd_intl = $line["update_interval"]; - if (!$upd_intl || $upd_intl == 0) $upd_intl = DEFAULT_UPDATE_INTERVAL; + if (!$upd_intl || $upd_intl == 0) { + $upd_intl = get_pref($link, 'DEFAULT_UPDATE_INTERVAL'); + } if (!$line["last_updated"] || time() - strtotime($line["last_updated"]) > ($upd_intl * 60)) { @@ -52,7 +76,7 @@ } - function check_feed_favicon($feed_url, $feed) { + function check_feed_favicon($feed_url, $feed, $link) { $feed_url = str_replace("http://", "", $feed_url); $feed_url = preg_replace("/\/.*$/", "", $feed_url); @@ -105,8 +129,8 @@ if ($rss) { - if (ENABLE_FEED_ICONS) { - check_feed_favicon($feed_url, $feed); + if (get_pref($link, 'ENABLE_FEED_ICONS')) { + check_feed_favicon($feed_url, $feed, $link); } $result = db_query($link, "SELECT title,icon_url FROM ttrss_feeds WHERE id = '$feed'"); @@ -134,7 +158,7 @@ $result = db_query($link, "SELECT reg_exp, (SELECT name FROM ttrss_filter_types WHERE id = filter_type) as name - FROM ttrss_filters"); + FROM ttrss_filters WHERE owner_uid = ".$_SESSION["uid"]); while ($line = db_fetch_assoc($result)) { if (!$filters[$line["name"]]) $filters[$line["name"]] = array(); @@ -205,7 +229,7 @@ FROM ttrss_entries WHERE - guid = '$entry_guid'"); + guid = '$entry_guid' AND owner_uid = " . $_SESSION["uid"]); // print db_num_rows($result) . "$entry_guid
"; @@ -234,7 +258,8 @@ feed_id, comments, no_orig_date, - date_entered) + date_entered, + owner_uid) VALUES ('$entry_title', '$entry_guid', @@ -245,7 +270,7 @@ '$feed', '$entry_comments', $no_orig_date, - NOW())"; + NOW(),".$_SESSION["uid"].")"; $result = db_query($link, $query); @@ -275,7 +300,7 @@ if ($orig_content_hash != $content_hash) { // print "$orig_content_hash :: $content_hash
"; - if (UPDATE_POST_ON_CHECKSUM_CHANGE) { + if (get_pref($link, 'UPDATE_POST_ON_CHECKSUM_CHANGE')) { $last_read_qpart = 'last_read = null,'; } $entry_is_modified = true; @@ -339,14 +364,14 @@ $tag = db_escape_string(strtolower($tag)); $result = db_query($link, "SELECT id FROM ttrss_tags - WHERE tag_name = '$tag' AND post_id = '$entry_id' LIMIT 1"); + WHERE tag_name = '$tag' AND post_id = '$entry_id' AND owner_uid = ".$_SESSION["uid"]." LIMIT 1"); if ($result && db_num_rows($result) == 0) { // print "tagging $entry_id as $tag
"; - db_query($link, "INSERT INTO ttrss_tags (tag_name,post_id) - VALUES ('$tag', '$entry_id')"); + db_query($link, "INSERT INTO ttrss_tags (owner_uid,tag_name,post_id) + VALUES ('".$_SESSION["uid"]."','$tag', '$entry_id')"); } } } @@ -358,7 +383,8 @@ } else { $error_msg = db_escape_string(magpie_error()); db_query($link, - "UPDATE ttrss_feeds SET last_error = '$error_msg' WHERE id = '$feed'"); + "UPDATE ttrss_feeds SET last_error = '$error_msg', + last_updated = NOW() WHERE id = '$feed'"); } db_query($link, "COMMIT"); @@ -404,7 +430,7 @@ return false; } - function printFeedEntry($feed_id, $class, $feed_title, $unread, $icon_file) { + function printFeedEntry($feed_id, $class, $feed_title, $unread, $icon_file, $link) { if (file_exists($icon_file) && filesize($icon_file) > 0) { $feed_icon = ""; @@ -415,7 +441,7 @@ $feed = "$feed_title"; print "
  • "; - if (ENABLE_FEED_ICONS) { + if (get_pref($link, 'ENABLE_FEED_ICONS')) { print "$feed_icon"; } @@ -439,4 +465,92 @@ return ((float)$usec + (float)$sec); } + function print_radio($id, $default, $values, $attributes = "") { + foreach ($values as $v) { + + if ($v == $default) + $sel = "checked"; + else + $sel = ""; + + if ($v == "Yes") { + $sel .= " value=\"1\""; + } else { + $sel .= " value=\"0\""; + } + + print " $v "; + + } + } + + function initialize_user_prefs($link, $uid) { + + $uid = db_escape_string($uid); + + db_query($link, "BEGIN"); + + $result = db_query($link, "SELECT pref_name,def_value FROM ttrss_prefs"); + + $u_result = db_query($link, "SELECT pref_name + FROM ttrss_user_prefs WHERE owner_uid = '$uid'"); + + $active_prefs = array(); + + while ($line = db_fetch_assoc($u_result)) { + array_push($active_prefs, $line["pref_name"]); + } + + while ($line = db_fetch_assoc($result)) { + if (array_search($line["pref_name"], $active_prefs) === FALSE) { +// print "adding " . $line["pref_name"] . "
    "; + + db_query($link, "INSERT INTO ttrss_user_prefs + (owner_uid,pref_name,value) VALUES + ('$uid', '".$line["pref_name"]."','".$line["def_value"]."')"); + + } + } + + db_query($link, "COMMIT"); + + } + + function authenticate_user($link, $login, $password) { + + $pwd_hash = 'SHA1:' . sha1($password); + + $result = db_query($link, "SELECT id,login,access_level FROM ttrss_users WHERE + login = '$login' AND (pwd_hash = '$password' OR pwd_hash = '$pwd_hash')"); + + if (db_num_rows($result) == 1) { + $_SESSION["uid"] = db_fetch_result($result, 0, "id"); + $_SESSION["name"] = db_fetch_result($result, 0, "login"); + $_SESSION["access_level"] = db_fetch_result($result, 0, "access_level"); + + return true; + } + + return false; + + } + + function http_authenticate_user($link) { + + if (!$_SERVER['PHP_AUTH_USER']) { + + header('WWW-Authenticate: Basic realm="Tiny Tiny RSS"'); + header('HTTP/1.0 401 Unauthorized'); + print "

    401 Unathorized

    "; + exit; + + } else { + + $login = db_escape_string($_SERVER['PHP_AUTH_USER']); + $password = db_escape_string($_SERVER['PHP_AUTH_PW']); + + return authenticate_user($link, $login, $password); + } + } + ?>