aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2018-11-11 17:31:50 +0100
committerGravatar GitHub <noreply@github.com> 2018-11-11 17:31:50 +0100
commitb672fc190d7df163449e91400c6d6a08a3775835 (patch)
treeddb616efd040ba67783665a4f4372afd43e3b23d /app
parent55992d454811f49fedc157854a6bb068c0f8c74c (diff)
Tweaks for Vienna RSS (#2093)
* Tweaks for Vienna RSS https://github.com/FreshRSS/FreshRSS/issues/2091 https://github.com/ViennaRSS/vienna-rss/issues/1197 * Fix get feed by URL * Fix get item ids returning starred elements * API add item ids by feed URL * Add API filter `it` https://feedhq.readthedocs.io/en/latest/api/reference.html#stream-items-ids * API add `nt=` filter + refactoring * No ; prefix for author https://github.com/FreshRSS/FreshRSS/issues/2091#issuecomment-435562495 * Add id long form prefix and accept short id form https://github.com/FreshRSS/FreshRSS/issues/2091#issuecomment-435631259 * Fix quote problem https://github.com/FreshRSS/FreshRSS/issues/2091#issuecomment-435683930 * Isolate bug fix for News+ https://github.com/FreshRSS/FreshRSS/issues/2091#issuecomment-435687041 * Rework encoding conventions https://github.com/FreshRSS/FreshRSS/issues/2091#issuecomment-437441834 * Unicode escaping alternative Alternative approach to encode XML special characters and other problematic characters into their Unicode fullwidth version when we cannot use HTML-encoding because clients disagree wether they should HTML-decode or not. https://github.com/FreshRSS/FreshRSS/issues/2091#issuecomment-436059559
Diffstat (limited to 'app')
-rw-r--r--app/Models/BooleanSearch.php8
-rw-r--r--app/Models/EntryDAO.php4
-rw-r--r--app/Models/Feed.php2
-rw-r--r--app/Models/Search.php8
4 files changed, 19 insertions, 3 deletions
diff --git a/app/Models/BooleanSearch.php b/app/Models/BooleanSearch.php
index 6e016f7e9..88eeea73c 100644
--- a/app/Models/BooleanSearch.php
+++ b/app/Models/BooleanSearch.php
@@ -45,6 +45,14 @@ class FreshRSS_BooleanSearch {
return $this->searches;
}
+ public function add($search) {
+ if ($search instanceof FreshRSS_Search) {
+ $this->searches[] = $search;
+ return $search;
+ }
+ return null;
+ }
+
public function __toString() {
return $this->getRawInput();
}
diff --git a/app/Models/EntryDAO.php b/app/Models/EntryDAO.php
index 708d01a69..6d77a33cd 100644
--- a/app/Models/EntryDAO.php
+++ b/app/Models/EntryDAO.php
@@ -921,8 +921,8 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
return self::daoToEntries($stm->fetchAll(PDO::FETCH_ASSOC));
}
- public function listIdsWhere($type = 'a', $id = '', $state = FreshRSS_Entry::STATE_ALL, $order = 'DESC', $limit = 1, $firstId = '', $filters = null, $date_min = 0) { //For API
- list($values, $sql) = $this->sqlListWhere($type, $id, $state, $order, $limit, $firstId, $filters, $date_min);
+ public function listIdsWhere($type = 'a', $id = '', $state = FreshRSS_Entry::STATE_ALL, $order = 'DESC', $limit = 1, $firstId = '', $filters = null) { //For API
+ list($values, $sql) = $this->sqlListWhere($type, $id, $state, $order, $limit, $firstId, $filters);
$stm = $this->bd->prepare($sql);
$stm->execute($values);
diff --git a/app/Models/Feed.php b/app/Models/Feed.php
index e1dd2990d..a5ef33d6b 100644
--- a/app/Models/Feed.php
+++ b/app/Models/Feed.php
@@ -424,7 +424,7 @@ class FreshRSS_Feed extends Minz_Model {
$author_names = '';
if (is_array($authors)) {
foreach ($authors as $author) {
- $author_names .= html_only_entity_decode(strip_tags($author->name == '' ? $author->email : $author->name)) . '; ';
+ $author_names .= escapeToUnicodeAlternative(strip_tags($author->name == '' ? $author->email : $author->name)) . '; ';
}
}
$author_names = substr($author_names, 0, -2);
diff --git a/app/Models/Search.php b/app/Models/Search.php
index c52e391fa..f9cda7354 100644
--- a/app/Models/Search.php
+++ b/app/Models/Search.php
@@ -73,10 +73,18 @@ class FreshRSS_Search {
return $this->min_date;
}
+ public function setMinDate($value) {
+ return $this->min_date = $value;
+ }
+
public function getMaxDate() {
return $this->max_date;
}
+ public function setMaxDate($value) {
+ return $this->max_date = $value;
+ }
+
public function getMinPubdate() {
return $this->min_pubdate;
}