]> git.wh0rd.org - tt-rss.git/blobdiff - classes/pref/feeds.php
Merge branch 'hook_feed_basic_info' of wn/tt-rss into master
[tt-rss.git] / classes / pref / feeds.php
index 2803d68ecfd6537ed213aa83848d2bf71b99ec4c..b0f82e7e4228a044460a868bde43133a936dd90c 100755 (executable)
@@ -62,7 +62,7 @@ class Pref_Feeds extends Handler_Protected {
                        $cat['items'] = $this->get_category_items($line['id']);
 
                        $num_children = $this->calculate_children_count($cat);
-                       $cat['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', $num_children), $num_children);
+                       $cat['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', (int) $num_children), $num_children);
 
                        if ($num_children > 0 || $show_empty_cats)
                                array_push($items, $cat);
@@ -84,7 +84,7 @@ class Pref_Feeds extends Handler_Protected {
                        $feed['checkbox'] = false;
                        $feed['unread'] = 0;
                        $feed['error'] = $feed_line['last_error'];
-                       $feed['icon'] = getFeedIcon($feed_line['id']);
+                       $feed['icon'] = Feeds::getFeedIcon($feed_line['id']);
                        $feed['param'] = make_local_datetime(
                                $feed_line['last_updated'], true);
 
@@ -171,7 +171,7 @@ class Pref_Feeds extends Handler_Protected {
 
                                while ($line = $this->dbh->fetch_assoc($result)) {
 
-                                       $label_id = label_to_feed_id($line['id']);
+                                       $label_id = Labels::label_to_feed_id($line['id']);
 
                                        $feed = $this->feedlist_init_feed($label_id, false, 0);
 
@@ -211,7 +211,7 @@ class Pref_Feeds extends Handler_Protected {
                                $cat['items'] = $this->get_category_items($line['id']);
 
                                $num_children = $this->calculate_children_count($cat);
-                               $cat['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', $num_children), $num_children);
+                               $cat['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', (int) $num_children), $num_children);
 
                                if ($num_children > 0 || $show_empty_cats)
                                        array_push($root['items'], $cat);
@@ -246,7 +246,7 @@ class Pref_Feeds extends Handler_Protected {
                                $feed['name'] = $feed_line['title'];
                                $feed['checkbox'] = false;
                                $feed['error'] = $feed_line['last_error'];
-                               $feed['icon'] = getFeedIcon($feed_line['id']);
+                               $feed['icon'] = Feeds::getFeedIcon($feed_line['id']);
                                $feed['param'] = make_local_datetime(
                                        $feed_line['last_updated'], true);
                                $feed['unread'] = 0;
@@ -261,7 +261,7 @@ class Pref_Feeds extends Handler_Protected {
                                array_push($root['items'], $cat);
 
                        $num_children = $this->calculate_children_count($root);
-                       $root['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', $num_children), $num_children);
+                       $root['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', (int) $num_children), $num_children);
 
                } else {
                        $feed_result = $this->dbh->query("SELECT id, title, last_error,
@@ -278,7 +278,7 @@ class Pref_Feeds extends Handler_Protected {
                                $feed['name'] = $feed_line['title'];
                                $feed['checkbox'] = false;
                                $feed['error'] = $feed_line['last_error'];
-                               $feed['icon'] = getFeedIcon($feed_line['id']);
+                               $feed['icon'] = Feeds::getFeedIcon($feed_line['id']);
                                $feed['param'] = make_local_datetime(
                                        $feed_line['last_updated'], true);
                                $feed['unread'] = 0;
@@ -339,7 +339,7 @@ class Pref_Feeds extends Handler_Protected {
                                owner_uid = " . $_SESSION["uid"]);
                }
 
-               $order_id = 0;
+               $order_id = 1;
 
                $cat = $data_map[$item_id];
 
@@ -548,9 +548,9 @@ class Pref_Feeds extends Handler_Protected {
                $title = htmlspecialchars($this->dbh->fetch_result($result,
                        0, "title"));
 
-               print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"id\" value=\"$feed_id\">";
-               print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pref-feeds\">";
-               print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"editSave\">";
+               print_hidden("id", "$feed_id");
+               print_hidden("op", "pref-feeds");
+               print_hidden("method", "editSave");
 
                print "<div class=\"dlgSec\">".__("Feed")."</div>";
                print "<div class=\"dlgSecCont\">";
@@ -646,7 +646,7 @@ class Pref_Feeds extends Handler_Protected {
 
                $auth_pass = $this->dbh->fetch_result($result, 0, "auth_pass");
 
-               if ($auth_pass_encrypted) {
+               if ($auth_pass_encrypted && function_exists("mcrypt_decrypt")) {
                        require_once "crypt.php";
                        $auth_pass = decrypt_string($auth_pass);
                }
@@ -729,7 +729,7 @@ class Pref_Feeds extends Handler_Protected {
                print "<hr/><input dojoType=\"dijit.form.CheckBox\" type=\"checkbox\" id=\"cache_images\"
                name=\"cache_images\"
                        $checked>&nbsp;<label for=\"cache_images\">".
-               __('Cache images locally')."</label>";
+               __('Cache media')."</label>";
 
                $mark_unread_on_update = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "mark_unread_on_update"));
 
@@ -784,20 +784,8 @@ class Pref_Feeds extends Handler_Protected {
                        <button class=\"danger\" dojoType=\"dijit.form.Button\" onclick='return unsubscribeFeed($feed_id, \"$title\")'>".
                                __('Unsubscribe')."</button>";
 
-               if (PUBSUBHUBBUB_ENABLED) {
-                       $pubsub_state = $this->dbh->fetch_result($result, 0, "pubsub_state");
-                       $pubsub_btn_disabled = ($pubsub_state == 2) ? "" : "disabled=\"1\"";
-
-                       print "<button dojoType=\"dijit.form.Button\" id=\"pubsubReset_Btn\" $pubsub_btn_disabled
-                                       onclick='return resetPubSub($feed_id, \"$title\")'>".__('Resubscribe to push updates').
-                                       "</button>";
-               }
-
                print "</div>";
 
-               print "<div dojoType=\"dijit.Tooltip\" connectId=\"pubsubReset_Btn\" position=\"below\">".
-                       __('Resets PubSubHubbub subscription status for push-enabled feeds.')."</div>";
-
                print "<button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('feedEditDlg').execute()\">".__('Save')."</button>
                        <button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('feedEditDlg').hide()\">".__('Cancel')."</button>
                </div>";
@@ -816,9 +804,9 @@ class Pref_Feeds extends Handler_Protected {
 
                print "<p>";
 
-               print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"ids\" value=\"$feed_ids\">";
-               print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pref-feeds\">";
-               print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"batchEditSave\">";
+               print_hidden("ids", "$feed_ids");
+               print_hidden("op", "pref-feeds");
+               print_hidden("method", "batchEditSave");
 
                print "<div class=\"dlgSec\">".__("Feed")."</div>";
                print "<div class=\"dlgSecCont\">";
@@ -925,7 +913,7 @@ class Pref_Feeds extends Handler_Protected {
                        name=\"cache_images\"
                        dojoType=\"dijit.form.CheckBox\">&nbsp;<label class='insensitive' id=\"cache_images_l\"
                        for=\"cache_images\">".
-               __('Cache images locally')."</label>";
+               __('Cache media')."</label>";
 
                print "&nbsp;"; $this->batch_edit_cbox("cache_images", "cache_images_l");
 
@@ -983,14 +971,7 @@ class Pref_Feeds extends Handler_Protected {
 
                $feed_language = $this->dbh->escape_string(trim($_POST["feed_language"]));
 
-               if (strlen(FEED_CRYPT_KEY) > 0) {
-                       require_once "crypt.php";
-                       $auth_pass = substr(encrypt_string($auth_pass), 0, 250);
-                       $auth_pass_encrypted = 'true';
-               } else {
-                       $auth_pass_encrypted = 'false';
-               }
-
+               $auth_pass_encrypted = 'false';
                $auth_pass = $this->dbh->escape_string($auth_pass);
 
                if (get_pref('ENABLE_FEED_CATS')) {
@@ -1031,9 +1012,7 @@ class Pref_Feeds extends Handler_Protected {
                        WHERE id = '$feed_id' AND owner_uid = " . $_SESSION["uid"]);
 
                        if ($reset_basic_info) {
-                               require_once "rssfuncs.php";
-
-                               set_basic_feed_info($feed_id);
+                               RSSUtils::set_basic_feed_info($feed_id);
                        }
 
                        PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_SAVE_FEED,
@@ -1127,16 +1106,6 @@ class Pref_Feeds extends Handler_Protected {
                return;
        }
 
-       function resetPubSub() {
-
-               $ids = $this->dbh->escape_string($_REQUEST["ids"]);
-
-               $this->dbh->query("UPDATE ttrss_feeds SET pubsub_state = 0 WHERE id IN ($ids)
-                       AND owner_uid = " . $_SESSION["uid"]);
-
-               return;
-       }
-
        function remove() {
 
                $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
@@ -1154,8 +1123,6 @@ class Pref_Feeds extends Handler_Protected {
        }
 
        function rescore() {
-               require_once "rssfuncs.php";
-
                $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
 
                foreach ($ids as $id) {
@@ -1175,13 +1142,13 @@ class Pref_Feeds extends Handler_Protected {
 
                        while ($line = $this->dbh->fetch_assoc($result)) {
 
-                               $tags = get_article_tags($line["ref_id"]);
+                               $tags = Article::get_article_tags($line["ref_id"]);
 
-                               $article_filters = get_article_filters($filters, $line['title'],
+                               $article_filters = RSSUtils::get_article_filters($filters, $line['title'],
                                        $line['content'], $line['link'], strtotime($line['updated']),
                                        $line['author'], $tags);
 
-                               $new_score = calculate_article_score($article_filters);
+                               $new_score = RSSUtils::calculate_article_score($article_filters);
 
                                if (!$scores[$new_score]) $scores[$new_score] = array();
 
@@ -1232,13 +1199,13 @@ class Pref_Feeds extends Handler_Protected {
 
                        while ($line = $this->dbh->fetch_assoc($tmp_result)) {
 
-                               $tags = get_article_tags($line["ref_id"]);
+                               $tags = Article::get_article_tags($line["ref_id"]);
 
-                               $article_filters = get_article_filters($filters, $line['title'],
+                               $article_filters = RSSUtils::get_article_filters($filters, $line['title'],
                                        $line['content'], $line['link'], strtotime($line['updated']),
                                        $line['author'], $tags);
 
-                               $new_score = calculate_article_score($article_filters);
+                               $new_score = RSSUtils::calculate_article_score($article_filters);
 
                                if (!$scores[$new_score]) $scores[$new_score] = array();
 
@@ -1418,6 +1385,7 @@ class Pref_Feeds extends Handler_Protected {
                <div dojoType=\"fox.PrefFeedTree\" id=\"feedTree\"
                        dndController=\"dijit.tree.dndSource\"
                        betweenThreshold=\"5\"
+                       autoExpand='true'
                        model=\"feedModel\" openOnClick=\"false\">
                <script type=\"dojo/method\" event=\"onClick\" args=\"item\">
                        var id = String(item.id);
@@ -1499,7 +1467,7 @@ class Pref_Feeds extends Handler_Protected {
 
                        print "<button onclick='window.navigator.registerContentHandler(" .
                       "\"application/vnd.mozilla.maybe.feed\", " .
-                      "\"" . add_feed_url() . "\", " . " \"Tiny Tiny RSS\")'>" .
+                      "\"" . $this->subscribe_to_feed_url() . "\", " . " \"Tiny Tiny RSS\")'>" .
                                                         __('Click here to register this site as a feed reader.') .
                                "</button>";
 
@@ -1541,14 +1509,14 @@ class Pref_Feeds extends Handler_Protected {
                $cat_id = (int) $cat_id;
 
                if ($cat_id > 0) {
-                       $cat_unread = ccache_find($cat_id, $_SESSION["uid"], true);
+                       $cat_unread = CCache::find($cat_id, $_SESSION["uid"], true);
                } else if ($cat_id == 0 || $cat_id == -2) {
-                       $cat_unread = getCategoryUnread($cat_id);
+                       $cat_unread = Feeds::getCategoryUnread($cat_id);
                }
 
                $obj['id'] = 'CAT:' . $cat_id;
                $obj['items'] = array();
-               $obj['name'] = getCategoryTitle($cat_id);
+               $obj['name'] = Feeds::getCategoryTitle($cat_id);
                $obj['type'] = 'category';
                $obj['unread'] = (int) $cat_unread;
                $obj['bare_id'] = $cat_id;
@@ -1561,7 +1529,7 @@ class Pref_Feeds extends Handler_Protected {
                $feed_id = (int) $feed_id;
 
                if (!$title)
-                       $title = getFeedTitle($feed_id, false);
+                       $title = Feeds::getFeedTitle($feed_id, false);
 
                if ($unread === false)
                        $unread = getFeedUnread($feed_id, false);
@@ -1572,7 +1540,7 @@ class Pref_Feeds extends Handler_Protected {
                $obj['type'] = 'feed';
                $obj['error'] = $error;
                $obj['updated'] = $updated;
-               $obj['icon'] = getFeedIcon($feed_id);
+               $obj['icon'] = Feeds::getFeedIcon($feed_id);
                $obj['bare_id'] = $feed_id;
                $obj['auxcounter'] = 0;
 
@@ -1746,7 +1714,7 @@ class Pref_Feeds extends Handler_Protected {
                $result = $this->dbh->query("DELETE FROM ttrss_entries WHERE
                        (SELECT COUNT(int_id) FROM ttrss_user_entries WHERE ref_id = id) = 0");
 
-               ccache_update($id, $_SESSION['uid']);
+               CCache::update($id, $_SESSION['uid']);
        } // function clear_feed_articles
 
        private function remove_feed_category($id, $owner_uid) {
@@ -1754,7 +1722,7 @@ class Pref_Feeds extends Handler_Protected {
                $this->dbh->query("DELETE FROM ttrss_feed_categories
                        WHERE id = '$id' AND owner_uid = $owner_uid");
 
-               ccache_remove($id, $owner_uid, true);
+               CCache::remove($id, $owner_uid, true);
        }
 
        static function remove_feed($id, $owner_uid) {
@@ -1809,17 +1777,17 @@ class Pref_Feeds extends Handler_Protected {
                                unlink(ICONS_DIR . "/$id.ico");
                        }
 
-                       ccache_remove($id, $owner_uid);
+                       CCache::remove($id, $owner_uid);
 
                } else {
-                       label_remove(feed_to_label_id($id), $owner_uid);
-                       //ccache_remove($id, $owner_uid); don't think labels are cached
+                       Labels::remove(Labels::feed_to_label_id($id), $owner_uid);
+                       //CCache::remove($id, $owner_uid); don't think labels are cached
                }
        }
 
        function batchSubscribe() {
-               print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pref-feeds\">";
-               print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"batchaddfeeds\">";
+               print_hidden("op", "pref-feeds");
+               print_hidden("method", "batchaddfeeds");
 
                print "<table width='100%'><tr><td>
                        ".__("Add one valid RSS feed per line (no feed detection is done)")."
@@ -1889,14 +1857,7 @@ class Pref_Feeds extends Handler_Protected {
                                        "SELECT id FROM ttrss_feeds
                                        WHERE feed_url = '$feed' AND owner_uid = ".$_SESSION["uid"]);
 
-                               if (strlen(FEED_CRYPT_KEY) > 0) {
-                                       require_once "crypt.php";
-                                       $pass = substr(encrypt_string($pass), 0, 250);
-                                       $auth_pass_encrypted = 'true';
-                               } else {
-                                       $auth_pass_encrypted = 'false';
-                               }
-
+                               $auth_pass_encrypted = 'false';
                                $pass = $this->dbh->escape_string($pass);
 
                                if ($this->dbh->num_rows($result) == 0) {
@@ -1989,5 +1950,11 @@ class Pref_Feeds extends Handler_Protected {
 
                print (int) $this->dbh->fetch_result($result, 0, "num_inactive");
        }
-}
-?>
+
+       static function subscribe_to_feed_url() {
+               $url_path = get_self_url_prefix() .
+                       "/public.php?op=subscribe&feed_url=%s";
+               return $url_path;
+       }
+
+}
\ No newline at end of file