aboutsummaryrefslogtreecommitdiff
path: root/p/api
AgeCommit message (Collapse)Author
2020-05-17Stream instead of memory copy of SimplePie entries (#2972)Gravatar Alexandre Alapetite
* Stream instead of memory copy of SimplePie entries https://github.com/FreshRSS/FreshRSS/issues/2952 * Undo lines delete * Typo * Remove unaccessible code https://github.com/FreshRSS/FreshRSS/pull/2972/files#r425624163 * Back-compatibility for Feed->entries https://github.com/FreshRSS/FreshRSS/pull/2972/files#r425631913
2020-05-08Fix bad relogging clients (#2961)Gravatar Alexandre Alapetite
* Fix bad relogging clients Some clients (like EasyRSS) are still using the old HTTP Authorization header after having logged to log in with another user. We should not attempt to process Authorization headers during a login request * Typo * A bit safer Avoid null exception
2020-05-07API relaxed detection of short/long item ID forms (#2957)Gravatar Alexandre Alapetite
#Fix https://github.com/FreshRSS/FreshRSS/issues/2956 Bug/feature introduced by https://github.com/FreshRSS/FreshRSS/pull/2947 (which was following the specification better) The original code `strpos($e_id, '/') !== null` was wrong (it can never be null, only false or integer), but the idea was to check whether the client was sending a short form (decimal) or long form of the ID (hexadecimal with prefixes including slashes). Since it has not given problem until my recent typo fix, this means that the short form is apparently not used by the clients we tested. But now that we are back to following the specification better, it looks like a client such as Reeder 4 is sending an hexadecimal form without a prefix, which breaks the detection. This patch changes the detection, which should work in all known cases AND comply with the specification https://feedhq.readthedocs.io/en/latest/api/terminology.html#items
2020-05-05Fix warning with FeedReader (#2947)Gravatar Alexandre Alapetite
FeedReader 2.10.0 sends something like `T=cd3421a73e8a09f955449d02beaf9593b0c0265cZZZZZZZZZZZZZZZZZ&r=user/-/state/com.google/read&i=-/tag%3Agoogle.com&i=-/2005%3Areader/item/0005a4b97779db22` to `/api/greader.php/reader/api/0/edit-tag` The first `i=-/tag/google.com` is wrong and cannot be converted to an entry ID. This resulted in: > PHP Warning: gmp_init(): Unable to convert variable to GMP - string is not an integer in /var/www/FreshRSS/p/api/greader.php on line 35
2020-05-03Fever integer type for numbers (#2946)Gravatar Alexandre Alapetite
* Fever integer type for feed ID #Fix https://github.com/FreshRSS/FreshRSS/issues/2940#issuecomment-623022435 * Fix feed_id * Ensure string for entry ID To be compatible with 32-bit platforms. Before, the type was inconsistent depending on architecture + database * Integer for entry count functions
2020-05-02Fever integer type for last_refreshed_on_time (#2944)Gravatar Alexandre Alapetite
#Fix https://github.com/FreshRSS/FreshRSS/issues/2940 https://feedafever.com/api
2020-04-30API Use string type for Usec (#2935)Gravatar Alexandre Alapetite
#Fix https://github.com/FreshRSS/FreshRSS/issues/2934
2020-04-16Expose podcast in API (#2898)Gravatar Alexandre Alapetite
* Expose podcast in API Expose RSS enclosures in our API, e.g. for clients supporting podcasts * PHP CS? * Annoying linter * Light optimisation
2020-04-01API return proper newestItemTimestampUsec (#2854)Gravatar Alexandre Alapetite
* API return proper newestItemTimestampUsec #fix https://github.com/FreshRSS/FreshRSS/issues/2853 * Minor naming * Add newestItemTimestampUsec for labels * Do not use t.name after all
2020-03-30API return OK for an empty request (#2855)Gravatar Alexandre Alapetite
Fix https://framateam.org/freshrss/pl/yozcezrnufno9eut3173d4wpry
2020-03-28GReader API consistent default category (#2840)Gravatar Alexandre Alapetite
* GReader API consistent default category #Fix https://github.com/FreshRSS/FreshRSS/issues/2839 * Also for subscription/list
2020-02-29GReader remove unsused parameter (#2816)Gravatar Alexandre Alapetite
2020-02-29Better performance with yield (#2588)Gravatar Alexandre Alapetite
* Better performance with yield Largely decrease the time to first byte, and reduced memory consumtion. Before, we used to make several copies in memory of the whole list of articles before sending them to the client. Now streamed as they are processed. * Travis
2020-01-18[API, extension] Use 'dateAdded()' to forge 'crawlTimeMsec' & ↵Gravatar Julien-Pierre Avérous
'timestampUsec' field in greader API. (#2773) - Add the ability to customize 'dateAdded()', so an extension can change it if needed.
2020-01-16Pass the entries to 'entry_before_display' extension hook (#2763)Gravatar Julien-Pierre Avérous
* Pass the entries to 'entry_before_display' extension hook. - #2762 * Fix code-style. * - Fix 'Whitespace found at end of line'. Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2019-12-29fix: Fix undefined function _t on WebSub (#2743)Gravatar Marien Fressinaud
I published an article via WebSub, but I never received it. So I checked my logs to find why and I found the following stacktrace: ``` 29/Dec/2019:15:58:32 +0000 "POST /api/pshb.php" 500 NOTICE: PHP message: PHP Fatal error: Uncaught Error: Call to undefined function _t() in /path/app/Models/Category.php:83 Stack trace: /path/app/Models/CategoryDAO.php(417): FreshRSS_Category->_id(1) /path/app/Models/CategoryDAO.php(192): FreshRSS_CategoryDAO::daoToCategory(Array) /path/app/Models/Feed.php(466): FreshRSS_CategoryDAO->searchById('1') /path/app/Controllers/feedController.php(416): FreshRSS_Feed->cleanOldEntries() /path/p/api/pshb.php(141): FreshRSS_feed_Controller::actualizeFeed(0, 'https://flus.io...', false, Object(SimplePie)) {main} thrown in /path/app/Models/Category.php on line 83 ``` The `_t` function should be loaded with the Minz_Translate class, but the latter isn't initialized on WebSub endpoint. In my opinion, we should not have to care about this kind of detail of implementation and it reveals a deeper architectural misconception, but for now the fix should be enough. It’s quite difficult to reproduce locally though.
2019-11-02API 64-bit ID as string (#2621)Gravatar Alexandre Alapetite
Fix https://github.com/FreshRSS/FreshRSS/issues/2620
2019-10-09Fix API i18n (#2565)Gravatar Alexandre Alapetite
Fix https://github.com/FreshRSS/FreshRSS/issues/2564
2019-09-29Quick fix: API PDO visibility bug (#2545)Gravatar Alexandre Alapetite
Introduced in https://github.com/FreshRSS/FreshRSS/pull/2522
2019-09-29PDO refactoring for code simplification (#2522)Gravatar Alexandre Alapetite
* PDO refactor * Automatic prefix when using the syntax `_tableName` * Uniformity: MySQL is now PDO::ATTR_EMULATE_PREPARES = false just like SQLite and PostgreSQL, with consequences such as only one statement per query * Use PDO methods exec(), query(), prepare() + execute() in a more efficient way * Remove auto-update SQL code for versions older than FreshRSS 1.5 (3 years old) * The name of the default category is set in PHP instead of in the DB (simplies SQL and allows changing the name according to the FreshRSS language) * Rename `->bd` to `->pdo` (less of a frenshism, and more informative) * Fix some requests, which were not compatible with MySQL prepared statements * Whitespace * Fix syntax for PostgreSQL sequences + MySQL install * Minor formatting * Fix lastInsertId for PostgreSQL * Use PHP 5.6+ const Take advantage of https://github.com/FreshRSS/FreshRSS/pull/2527 https://www.php.net/manual/en/migration56.new-features.php * A bit of forgotten PHP 5.6 simplification for cURL * Forgotten $s * Mini fix custom user config https://github.com/FreshRSS/FreshRSS/pull/2490/files#r326290346 * More work on install.php but not finished * install.php working * More cleaning of PDO in install * Even more simplification Take advantage of PDO->exec() to run multiple statements * Disallow changing the name of the default category https://github.com/FreshRSS/FreshRSS/pull/2522#discussion_r326967724
2019-09-18API Reeder compatibility (#2526)Gravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/2513
2019-08-20Require PHP 5.5+ (#2495)Gravatar Alexandre Alapetite
* Require PHP 5.5+ https://github.com/FreshRSS/FreshRSS/issues/2469#issuecomment-522255093 I think it would be reasonable to require PHP 5.5+ for the core of FreshRSS after all. As Frenzie said, WordPress currently requires PHP 5.6.20+, and it is the most popular PHP application. We would loose about 20% of the PHP servers according to https://w3techs.com/technologies/details/pl-php/5/all but I expect this number to drop fast after the release of CentOS 8 (CentOS accounts for 17% of Linux servers https://w3techs.com/technologies/details/os-linux/all/all ). Distributions: * no impact on Ubuntu, Fedora, Alpine, OpenWRT, FreeBSD, OpenSuze, Mageia, as all active versions have PHP > 7 * no impact on OpenSuze, Synology, as all active versions have PHP > 5.5 * we drop Debian 8 Jessie (-2020) - we keep supporting Debian 9 Stretch (2017-06) - current is Debian 10 Buster * we drop Red Hat 7 (-2024) - we keep supporting RHEL 8 (2019-05) * we drop CentOS 7 (-2024) - we will support CentOS 8 (to be released soonish) When dropping older versions, I can better like when it is for a good reason, and there is actually one with PHP 5.5, namely generators (yield) https://php.net/language.generators.overview which I consider using. * Version note for JSON.php * hex2bin * Update .travis.yml Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com>
2019-07-20Issue #2446 : Fix passing authentication headers (#2449)Gravatar Nick Cross
* Issue #2446 : Fix passing authentication headers. Use CGIPassAuth is version is high enough * Issue #2446 : Remove CGIPassAuth due to potential issues with AllowOverride rights. * Tabs
2019-06-16Fix API remove category (#2412)Gravatar Alexandre Alapetite
Fix https://github.com/FreshRSS/FreshRSS/issues/2411
2019-04-07Fix API minor code syntax warning (#2362)Gravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/2359#issuecomment-480620713
2019-03-19Fever remove semicolomn from author (#2283)Gravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/2281
2019-02-05Minor Unicode changesGravatar Alexandre Alapetite
2019-02-05Fever API encoding of special charsGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/2241
2019-01-31Case insensitive AuthorizationGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/2233
2019-01-05Automatic API test (#2207)Gravatar Alexandre Alapetite
* Automatic API test Easier for end-user, smarter, and the guess testing of greader authorization token was not reliable. * Travis + minor
2019-01-02Apache performance (#2202)Gravatar Alexandre Alapetite
* Apache performance API: Use SetEnvIf if available and fallback to RewriteRule Docker: Disable unused modules. Docker: Hard-include .htaccess to avoid having to scan for changes in that file. Docker: Disable security check of symlinks, which we do not use ayway. * Apache readme * Docker/Apache tuning Run cron job with correct www-data user instead of root Remove PHP GMP module uneeded for 64-bit Docker image Add option to mount custom .htaccess for HTTP authentication Re-add Apache module for HTTP authentication Move Alpine-specific instructions to Docker file (instead of Apache conf) to make it easier to have other base images than Alpine
2018-12-16Update naming to WebSub (#2184)Gravatar Alexandre Alapetite
Instead of PubSubHubbub / PuSH
2018-12-16Documentation Vienna (#2126)Gravatar Alexandre Alapetite
* Documentation Vienna / Open Reader https://github.com/FreshRSS/FreshRSS/issues/2091 https://github.com/FreshRSS/FreshRSS/pull/2093 https://github.com/ViennaRSS/vienna-rss/issues/1197 * Remove references to Open Reader API for now
2018-11-12API encoding tuning (#2120)Gravatar Alexandre Alapetite
Use only minimal XML->Unicode encoding for articles title. Follow-up of https://github.com/FreshRSS/FreshRSS/pull/2093
2018-11-11Tweaks for Vienna RSS (#2093)Gravatar Alexandre Alapetite
* 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
2018-10-24Add Fever API debug (#2063)Gravatar Alexandre Alapetite
* Add Fever API debug https://github.com/FreshRSS/FreshRSS/issues/2043 * Default without debug logging
2018-10-13Minor Google Reader API commentGravatar Alexandre Alapetite
2018-09-29Custom labels (#2027)Gravatar Alexandre Alapetite
* First draft of custom tags https://github.com/FreshRSS/FreshRSS/issues/928 https://github.com/FreshRSS/FreshRSS/issues/1367 * SMALLINT to BIGINT for id_entry And uppercase SQL types * Fix layout for unreads * Start UI menu * Change menu order * Clean database helpers https://github.com/FreshRSS/FreshRSS/pull/2027#discussion_r217971535 * Travis rules do not understand PostgreSQL constants Grrr * Tag controller + UI * Add column attributes to tags * Use only favicon for now, for label * Fix styling for different themes * Constant for maximum InnoDB index length in Unicode https://github.com/FreshRSS/FreshRSS/pull/2027#discussion_r219052200 (I would have personnally prefered keeping the readability of a real value instead of a constant, in this case of many SQL fields) * Use FreshRSS_Factory::createCategoryDao * Add view of all articles containing any tag * Fix search in tags * Mark as read tags * Partial auto-update unread tags * More auto update tag unreads * Add tag deletion * Do not purge tagged articles * Minor comment * Fix SQLite and UI bug * Google Reader API support for user tags Add SQL check that tag names must be distinct from category names * whitespace * Add missing API for EasyRSS * Compatibility SQLite Problematic parentheses * Add SQL DISTINCT for cases with multiple tags * Fix for PostgreSQL PostgreSQL needs some additional type hint to avoid "could not determine data type of parameter $1" http://www.postgresql-archive.org/Could-not-determine-data-type-of-parameter-1-tp2171092p2171094.html
2018-09-16Improve authors (#2025)Gravatar Alexandre Alapetite
* Links for authors and multiple authors Favour ';' as a separator instead of ',' to better cope with multi-author scientific articles. Follow-up of https://github.com/FreshRSS/FreshRSS/pull/1997 , https://github.com/FreshRSS/FreshRSS/issues/1968, https://github.com/FreshRSS/FreshRSS/pull/2023 * Change i18n authors * Update layout * Unicode-compatible search Example for `author:Loïc` * author <em> styling * Final details * Minor spacing
2018-07-23FeverAPI 32-bit fixes (#1964)Gravatar Alexandre Alapetite
* FeverAPI 32-bit fixes https://github.com/FreshRSS/FreshRSS/issues/1962 * Small fixes https://github.com/FreshRSS/FreshRSS/pull/1964#discussion_r204213613
2018-07-08Fix check username in API (#1957)Gravatar Alexandre Alapetite
* Fix check username in API Fix https://github.com/FreshRSS/FreshRSS/issues/1955 * Changelog 1955 https://github.com/FreshRSS/FreshRSS/issues/1955 https://github.com/FreshRSS/FreshRSS/pull/1957
2018-06-13Fix extension hook for updated articles (#1932)Gravatar Alexandre Alapetite
* Fix extension hook for updated articles https://github.com/FreshRSS/FreshRSS/issues/1926 * Enable extensions during PubSubHubbub * A little array protection * Changelog 1926 https://github.com/FreshRSS/FreshRSS/issues/1926 https://github.com/FreshRSS/FreshRSS/pull/1932 * Add null check
2018-06-12Fever fixes (#1931)Gravatar Alexandre Alapetite
* Fever fixes Was hardcoded for MySQL. Bug in "before" parameter. Bug in mark all as read. * Fix construct * Changelog 1930 https://github.com/FreshRSS/FreshRSS/issues/193 https://github.com/FreshRSS/FreshRSS/pull/1931
2018-06-01Fever API: Log messages for wrong credendials (#1910)Gravatar Alexandre Alapetite
2018-05-24Add Fever API and user documentation (#1836)Gravatar Kevin Papst
* added fever api and documentation * spaces to tabs * fixed code format * added links * added utf8 to header * removed XML support * removed before check, as we have to convert it afterwards * added sandboxed setting (currently disabled) added support for extensions using entry_before_display * listFeedsOrderUpdate LIMIT https://github.com/FreshRSS/FreshRSS/pull/1836/files#r175287881 * removed custom sql by using FreshRSS_FeedDAO::listFeedsOrderUpdate() * fixed mark all as read * replaced custom sql for getUnread() and getStarred() with dao functions * removed sanitization functions * Rework fever login * Fix config bug Plus documentation * Fix array syntax For compatibility with PHP 5.3 * Disable cookies and session for API * Fix currentUser * added response header and error log * adjusted phpdoc to match new authentication * Mechanism to delete old keys * replace PHP_INT_MAX with zero to disable limit * replace method_exists with check for explicit methods * removed Press support and smaller refactoring + updated docu * Rewrite bindParamArray Avoid one of the SQL injection risks * Docs and readme * Fix API link * Simplify reverse key check Using userConfig
2018-03-14Light Boolean search implementation (#1828)Gravatar Alexandre Alapetite
* Light Boolean search implementation "Hello intitle:World OR date:P1D example" https://github.com/FreshRSS/FreshRSS/issues/879 * Doc Boolean search * Doc typos
2018-02-28Fix API bug with EasyRSS (#1800)Gravatar Alexandre Alapetite
Regression in FreshRSS 1.10.0 https://github.com/FreshRSS/FreshRSS/issues/1799
2018-02-16Fix commented Minz_Log::debug (#1788)Gravatar Alexandre Alapetite
Move Minz_Log::debug() examples after the Minz_Configuration::register()
2018-02-08API /reader/api/0/stream/items/contents (#1774)Gravatar Alexandre Alapetite
* API /reader/api/0/stream/items/contents For FeedMe * Fix continuation * Continuation in stream/items/ids * Fix multiple continuations * Allow empty POST tokens For FeedMe. This token is not used by e.g. The Old Reader API. There is the Authorization header anyway. TODO: Check security consequences * API compatibility FeedMe: add/remove feed FeedMe uses GET for some parameters typically given by POST * A bit of sanitization * Links to FeedMe * API favicons more robust when base_url is not set * Changelog FeedMe
2018-01-01Add mute strategy configuration (#1750)Gravatar Alexis Degrugillier