]> git.wh0rd.org - tt-rss.git/commitdiff
Merge branch 'master' into hookhead
authorjustauser <justausr@hotmail.com>
Sun, 7 Jul 2013 17:57:06 +0000 (13:57 -0400)
committerjustauser <justausr@hotmail.com>
Sun, 7 Jul 2013 17:57:06 +0000 (13:57 -0400)
Conflicts:
include/functions.php

changes for conflicts with master

classes/api.php
classes/feeds.php
classes/handler/public.php
css/cdm.css
css/tt-rss.css
include/functions.php
include/sessions.php
js/tt-rss.js
plugins/googlereaderimport/init.php
templates/generated_feed.txt

index aa092df781356ad373d790a44a9212dd3adc7d21..b3f4ebc2aef7e665c1c831e76000c21e3e18a546 100644 (file)
@@ -203,7 +203,7 @@ class API extends Handler {
                        $override_order = false;
                        switch ($_REQUEST["order_by"]) {
                                case "date_reverse":
-                                       $override_order = "date_entered, updated";
+                                       $override_order = "score DESC, date_entered, updated";
                                        break;
                                case "feed_dates":
                                        $override_order = "updated DESC";
index 44af9ae0bfe4c9e3bc5065293c8441c8966b7950..ccc0548db07d12dc81fa159a7bdb422814cd15cd 100644 (file)
@@ -380,9 +380,9 @@ class Feeds extends Handler_Protected {
                                        title=\"$score\">";
 
                                if ($score > 500) {
-                                       $hlc_suffix = "H";
+                                       $hlc_suffix = "high";
                                } else if ($score < -100) {
-                                       $hlc_suffix = "L";
+                                       $hlc_suffix = "low";
                                } else {
                                        $hlc_suffix = "";
                                }
@@ -451,8 +451,8 @@ class Feeds extends Handler_Protected {
                                        $reply['content'] .= "</div>";
 
                                        $reply['content'] .= "<div onclick='return hlClicked(event, $id)'
-                                               class=\"hlTitle\"><span class='hlContent$hlc_suffix'>";
-                                       $reply['content'] .= "<a id=\"RTITLE-$id\" class=\"title\"
+                                               class=\"hlTitle\"><span class='hlContent $hlc_suffix'>";
+                                       $reply['content'] .= "<a id=\"RTITLE-$id\" class=\"title $hlc_suffix\"
                                                href=\"" . htmlspecialchars($line["link"]) . "\"
                                                onclick=\"\">" .
                                                truncate_string($line["title"], 200);
@@ -540,7 +540,7 @@ class Feeds extends Handler_Protected {
 
                                        $expanded_class = $expand_cdm ? "expanded" : "expandable";
 
-                                       $reply['content'] .= "<div class=\"cdm $expanded_class $class\"
+                                       $reply['content'] .= "<div class=\"cdm $hlc_suffix $expanded_class $class\"
                                                id=\"RROW-$id\" $mouseover_attrs>";
 
                                        $reply['content'] .= "<div class=\"cdmHeader\" style=\"$row_background\">";
@@ -557,8 +557,8 @@ class Feeds extends Handler_Protected {
 
                                        $reply['content'] .= "<span id=\"RTITLE-$id\"
                                                onclick=\"return cdmClicked(event, $id);\"
-                                               class=\"titleWrap$hlc_suffix\">
-                                               <a class=\"title\"
+                                               class=\"titleWrap $hlc_suffix\">
+                                               <a class=\"title $hlc_suffix\"
                                                target=\"_blank\" href=\"".
                                                htmlspecialchars($line["link"])."\">".
                                                $line["title"] .
@@ -864,7 +864,7 @@ class Feeds extends Handler_Protected {
                        $override_order = "ttrss_entries.title";
                        break;
                case "date_reverse":
-                       $override_order = "date_entered, updated";
+                       $override_order = "score DESC, date_entered, updated";
                        break;
                case "feed_dates":
                        $override_order = "updated DESC";
index 810f4c034518de758cb4e99a127c1dac25232781..60a961bfa273977c001874ab419139340b8fb39b 100644 (file)
@@ -3,7 +3,7 @@ class Handler_Public extends Handler {
 
        private function generate_syndicated_feed($owner_uid, $feed, $is_cat,
                $limit, $offset, $search, $search_mode,
-               $view_mode = false, $format = 'atom', $order = false) {
+               $view_mode = false, $format = 'atom', $order = false, $orig_guid = false) {
 
                require_once "lib/MiniTemplator.class.php";
 
@@ -65,8 +65,8 @@ class Handler_Public extends Handler {
                $last_error = $qfh_ret[3];
 
                $feed_self_url = get_self_url_prefix() .
-                       "/public.php?op=rss&id=-2&key=" .
-                       get_feed_access_key(-2, false, $owner_uid);
+                       "/public.php?op=rss&id=$feed&key=" .
+                       get_feed_access_key($feed, false, $owner_uid);
 
                if (!$feed_site_url) $feed_site_url = get_self_url_prefix();
 
@@ -91,7 +91,10 @@ class Handler_Public extends Handler {
                                        $line = $p->hook_query_headlines($line);
                                }
 
-                               $tpl->setVariable('ARTICLE_ID', htmlspecialchars($line['link']), true);
+                               $tpl->setVariable('ARTICLE_ID',
+                                       htmlspecialchars($orig_guid ? $line['link'] :
+                                               get_self_url_prefix() .
+                                                       "/public.php?url=" . urlencode($line['link'])), true);
                                $tpl->setVariable('ARTICLE_LINK', htmlspecialchars($line['link']), true);
                                $tpl->setVariable('ARTICLE_TITLE', htmlspecialchars($line['title']), true);
                                $tpl->setVariable('ARTICLE_EXCERPT', $line["content_preview"], true);
@@ -113,6 +116,9 @@ class Handler_Public extends Handler {
 
                                $tpl->setVariable('ARTICLE_AUTHOR', htmlspecialchars($line['author']), true);
 
+                               $tpl->setVariable('ARTICLE_SOURCE_LINK', htmlspecialchars($line['site_url']), true);
+                               $tpl->setVariable('ARTICLE_SOURCE_TITLE', htmlspecialchars($line['feed_title']), true);
+
                                $tags = get_article_tags($line["id"], $owner_uid);
 
                                foreach ($tags as $tag) {
@@ -348,7 +354,7 @@ class Handler_Public extends Handler {
        function rss() {
                $feed = $this->dbh->escape_string($_REQUEST["id"]);
                $key = $this->dbh->escape_string($_REQUEST["key"]);
-               $is_cat = $_REQUEST["is_cat"] != false;
+               $is_cat = sql_bool_to_bool($_REQUEST["is_cat"]);
                $limit = (int)$this->dbh->escape_string($_REQUEST["limit"]);
                $offset = (int)$this->dbh->escape_string($_REQUEST["offset"]);
 
@@ -358,6 +364,7 @@ class Handler_Public extends Handler {
                $order = $this->dbh->escape_string($_REQUEST["order"]);
 
                $format = $this->dbh->escape_string($_REQUEST['format']);
+               $orig_guid = !sql_bool_to_bool($_REQUEST["no_orig_guid"]);
 
                if (!$format) $format = 'atom';
 
@@ -377,7 +384,7 @@ class Handler_Public extends Handler {
 
                if ($owner_id) {
                        $this->generate_syndicated_feed($owner_id, $feed, $is_cat, $limit,
-                               $offset, $search, $search_mode, $view_mode, $format, $order);
+                               $offset, $search, $search_mode, $view_mode, $format, $order, $orig_guid);
                } else {
                        header('HTTP/1.1 403 Forbidden');
                }
@@ -549,6 +556,7 @@ class Handler_Public extends Handler {
                                }
                        } else {
                                $_SESSION["login_error_msg"] = __("Incorrect username or password");
+                               user_error("Failed login attempt from {$_SERVER['REMOTE_ADDR']}", E_USER_WARNING);
                        }
 
                        if ($_REQUEST['return']) {
index 18bedce0107b486a45d57c81e66ba1565a4f62a7..7e85cbfff6364b0033e23f735491e2f5eab8df17 100644 (file)
@@ -265,3 +265,22 @@ div#floatingTitle span.author,
 div#floatingTitle img.tinyFeedIcon {
        display : none;
 }
+
+.cdm.high .cdmHeader a.title.high, .cdm.high .cdmHeader .cdmExcerpt,
+.cdm.high .cdmHeader span.author {
+       color : #00aa00;
+}
+
+.cdm.Unread.high .cdmHeader a.title.high, .cdm.Unread.high .cdmHeader .cdmExcerpt,
+.cdm.Unread.high .cdmHeader span.author {
+       color : #00dd00;
+}
+
+.cdm .cdmHeader a.title.low, .cdm.low .cdmHeader .cdmExcerpt,
+.cdm.Unread .cdmHeader a.title.low, .cdm.Unread.low .cdmHeader .cdmExcerpt,
+.cdm.low .cdmHeader span.author {
+       color : #909090;
+       text-decoration : line-through;
+}
+
+
index 3e6b8cd3835c6076f0a3d163f7eba87232ed87c6..c5ab8d9919a36dce29844c991b685c8a41aa5150 100644 (file)
@@ -606,20 +606,15 @@ div#headlines-frame.wide .hlTitle {
        white-space : normal;
 }
 
-.hlContentH a, .hlContentH span {
-       color : #00cc00;
+.hl a.title.high, span.hlContent.high .contentPreview {
+       color : #00aa00;
 }
-
-.hlContentL a, .hlContentL span {
-       color : #909090;
-       text-decoration : line-through;
-}
-
-span.titleWrapH, span.titleWrapH a {
-       color : #00cc00;
+.hl.Unread a.title.high, .hl.Unread span.hlContent.high .contentPreview {
+       color : #00dd00;
 }
 
-span.titleWrapL, span.titleWrapL a {
+.hl a.title.low, span.hlContent.low .contentPreview,
+.hl.Unread a.title.low, .hl.Unread span.hlContent.low .contentPreview {
        color : #909090;
        text-decoration : line-through;
 }
index eb011b6db3c3d0b05a2ac3ecf360767fdd59abbe..556b8a8cdf0c3c99de569c744dca99fd6e8fa62d 100644 (file)
                                }
                        }
 
+
                        $content_query_part = "content, content AS content_preview, cached_content, ";
 
+
                        if (is_numeric($feed)) {
 
                                if ($feed >= 0) {
         * @return string Absolute URL
         */
        function rewrite_relative_url($url, $rel_url) {
-               if (strpos($rel_url, "magnet:") === 0) {
+               if (strpos($rel_url, ":") !== false) {
                        return $rel_url;
                } else if (strpos($rel_url, "://") !== false) {
                        return $rel_url;
                        $reg_qpart = "REGEXP";
 
                foreach ($filter["rules"] AS $rule) {
+                       $rule['reg_exp'] = str_replace('/', '\/', $rule["reg_exp"]);
                        $regexp_valid = preg_match('/' . $rule['reg_exp'] . '/',
                                $rule['reg_exp']) !== FALSE;
 
index 423ef0eda92ed0fd1cabb1cd722468c1d12350e4..66214afe76923af8779795222958f376854b2992 100644 (file)
                        return false;
                }
 
-               if ($_SESSION["ref_schema_version"] != session_get_schema_version(true))
+               if ($_SESSION["ref_schema_version"] != session_get_schema_version(true)) {
+                       $_SESSION["login_error_msg"] =
+                               __("Session failed to validate (schema version changed)");
                        return false;
+               }
 
-               if (sha1($_SERVER['HTTP_USER_AGENT']) != $_SESSION["user_agent"])
+               if (sha1($_SERVER['HTTP_USER_AGENT']) != $_SESSION["user_agent"]) {
+                       $_SESSION["login_error_msg"] =
+                               __("Session failed to validate (user agent changed)");
                        return false;
+               }
 
                if ($_SESSION["uid"]) {
                        $result = Db::get()->query(
 
                        // user not found
                        if (Db::get()->num_rows($result) == 0) {
+
+                               $_SESSION["login_error_msg"] =
+                                       __("Session failed to validate (user not found)");
+
                                return false;
                        } else {
                                $pwd_hash = Db::get()->fetch_result($result, 0, "pwd_hash");
 
                                if ($pwd_hash != $_SESSION["pwd_hash"]) {
+
+                                       $_SESSION["login_error_msg"] =
+                                               __("Session failed to validate (password changed)");
+
                                        return false;
                                }
                        }
index a1d7d6411afc79c971154decbc9fa20c570eef0b..46e282351d595b95ca660e2b075836aa674c5c35 100644 (file)
@@ -847,11 +847,16 @@ function hotkey_handler(e) {
 
                var keycode = false;
                var shift_key = false;
+               var ctrl_key = false;
+               var alt_key = false;
+               var meta_key = false;
 
                var cmdline = $('cmdline');
 
                shift_key = e.shiftKey;
                ctrl_key = e.ctrlKey;
+               alt_key = e.altKey;
+               meta_key = e.metaKey;
 
                if (window.event) {
                        keycode = window.event.keyCode;
@@ -893,6 +898,8 @@ function hotkey_handler(e) {
                // ensure ^*char notation
                if (shift_key) hotkey = "*" + hotkey;
                if (ctrl_key) hotkey = "^" + hotkey;
+               if (alt_key) hotkey = "+" + hotkey;
+               if (meta_key) hotkey = "%" + hotkey;
 
                hotkey = hotkey_prefix ? hotkey_prefix + " " + hotkey : hotkey;
                hotkey_prefix = false;
index 2e22161b975d8e2d4dda396c9c5413614aaba46d..dcb335a0da7ca0e4aee494393bd1ea543b0c41ed 100644 (file)
@@ -114,6 +114,7 @@ class GoogleReaderImport extends Plugin {
                                        $guid = db_escape_string(mb_substr($item['id'], 0, 250));
                                        $title = db_escape_string($item['title']);
                                        $updated = date('Y-m-d h:i:s', $item['updated']);
+                                       $last_marked = date('Y-m-d h:i:s', mb_substr($item['crawlTimeMsec'], 0, 10));
                                        $link = '';
                                        $content = '';
                                        $author = db_escape_string($item['author']);
@@ -165,7 +166,7 @@ class GoogleReaderImport extends Plugin {
 
                                        $imported += (int) $this->create_article($owner_uid, $guid, $title,
                                                $link, $updated,  $content, $author, $sql_set_marked, $tags,
-                                               $orig_feed_data);
+                                               $orig_feed_data, $last_marked);
 
                                        if ($file && $processed % 25 == 0) {
                                                _debug("processed $processed articles...");
@@ -196,7 +197,7 @@ class GoogleReaderImport extends Plugin {
        }
 
        // expects ESCAPED data
-       private function create_article($owner_uid, $guid, $title, $link, $updated,  $content, $author, $marked, $tags, $orig_feed_data) {
+       private function create_article($owner_uid, $guid, $title, $link, $updated,  $content, $author, $marked, $tags, $orig_feed_data, $last_marked) {
 
                if (!$guid) $guid = sha1($link);
 
@@ -299,7 +300,7 @@ class GoogleReaderImport extends Plugin {
                                        (ref_id, uuid, feed_id, orig_feed_id, owner_uid, marked, tag_cache, label_cache,
                                                last_read, note, unread, last_marked)
                                        VALUES
-                                       ('$ref_id', '', NULL, $orig_feed_id, $owner_uid, $marked, '', '', NOW(), '', false, NOW())");
+                                       ('$ref_id', '', NULL, $orig_feed_id, $owner_uid, $marked, '', '', '$last_marked', '', false, '$last_marked')");
 
                                $result = db_query("SELECT int_id FROM ttrss_user_entries, ttrss_entries
                                        WHERE owner_uid = $owner_uid AND ref_id = id AND ref_id = $ref_id");
index 6bfa50b1beacffc28c73b54f0a3c97e08d68fe88..c1f921c45ad78117ef40c8b5b8e1d517e006e2a0 100644 (file)
@@ -20,6 +20,9 @@
        <content type="html"><![CDATA[${ARTICLE_CONTENT}]]></content>
        <updated>${ARTICLE_UPDATED_ATOM}</updated>
        <author><name>${ARTICLE_AUTHOR}</name></author>
+       <source>
+               <link rel="self" href="${ARTICLE_SOURCE_LINK}"/>
+               <title>${ARTICLE_SOURCE_TITLE}</title></source>
 <!-- $BeginBlock category -->
        <category term="${ARTICLE_CATEGORY}"/>
 <!-- $EndBlock category -->