Commit Graph

2407 Commits

Author SHA1 Message Date
wn_ 1646aba944 Minor tweak to favicon avg color debug log message. 2023-02-03 01:30:35 +00:00
wn_ b28d339bf2 Don't set 'favicon_avg_color' on feed obj unless it's valid. 2023-02-03 01:28:24 +00:00
wn_ f484988967 Fix logging favicon-related bools in 'RSSUtils::update_rss_feed()'. 2023-02-03 01:17:53 +00:00
wn_ 380624a484 Persist failure to detect favicon average color.
Previously, an empty string returned by '\Colors\calculate_avg_color()' would be set as the 'favicon_avg_color' value, resulting in always reattempting average color calculation.
2023-02-03 01:02:42 +00:00
wn_ f0f7a5f958 Ensure custom favicon color detection happens. 2023-02-03 00:45:04 +00:00
Andrew Dolgov c30b24d09f
deal with type errors in batch feed editor properly, un-deprecate PDO wrapper functions and document them for posterity 2022-12-30 19:51:34 +03:00
Andrew Dolgov 5c0a5da88c
batch feed editor: silence some more php8.1 undefined field warnings 2022-12-30 19:10:41 +03:00
Andrew Dolgov a16acd65fc
batch feed editor:
- fix some field changes not applying because of DB type errors
 - rework to use bound vars instead of sql query concatenation
deprecate: checkbox_to_sql_bool(), bool_to_sql_bool()
2022-12-30 19:07:15 +03:00
Andrew Dolgov 9c0ead3640
show full commit timestamp with version information in prefs footer 2022-12-30 09:46:01 +03:00
wn_ 371af1a39c Fix getting active feeds with errors.
fb4bc2615e incorrectly excluded feeds using the default update interval.  This change ignores the unlikely scenario where someone has the default update interval set to 'disabled'.
2022-12-24 21:22:16 +00:00
wn_ 46e2635869 Only count updating (i.e. enabled) feeds when determining active feeds with errors.
This excludes feeds that had errors and currently have updating disabled (e.g. disabled due to the site being down for a while, getting compromised, etc.).

Disabled / non-updating feeds' error states are still visible when viewed in the feed tree.
2022-12-21 21:05:59 +00:00
wn_ 8b129626cd Only touch on send for expirable cache files.
With d373b7b452 feed icon modification times get used for cache-busting, but 'Cache_Local' updates that
value on each send.  This change makes it so the modification time only gets updated on files in expirable caches, keeping the value
consistent between sends for files in non-expiring caches.

Also, marking 'Cache_Local::send_local_file()' private since it's unique to that adapter.
2022-12-20 02:16:47 +00:00
Andrew Dolgov c6d21b3196
make phpstan happy 2022-12-19 21:42:34 +03:00
Andrew Dolgov d373b7b452
* bring back cache-busting for feed icons based on timestamp
* DiskCache: use singleton pattern to create less cache object instances
 * DiskCache: implement ETag
2022-12-19 21:36:50 +03:00
Andrew Dolgov fa9c614ff1
Merge branch 'master' of git.tt-rss.org:tt-rss/tt-rss 2022-12-02 07:35:11 +03:00
Andrew Dolgov 824addbc9d
fix cleanup_feed_icons unlinking nonexistant files, limit it to actual feed icons 2022-12-02 07:34:51 +03:00
wn_ a355221e7f Consistently get the self URL.
This ensures all uses of the self URL get the same normalized/sanitized value.
2022-11-28 17:40:42 +00:00
Andrew Dolgov 94c49399cc
get_self_url: strip all trailing slashes 2022-11-28 19:24:12 +03:00
Andrew Dolgov 52180c9f8f
DiskCache: enforce basename() on filenames passed to cache adapter 2022-11-26 14:15:45 +03:00
Andrew Dolgov 3212c51ce8
migrate favicons directly to new cache 2022-11-24 23:43:46 +03:00
Andrew Dolgov a30b9bb649
rework favicon storage to use DiskCache 2022-11-24 23:31:33 +03:00
Andrew Dolgov be6bc72a74
DiskCache: tweak how expiration is invoked 2022-11-24 18:49:36 +03:00
Andrew Dolgov 3180b35807
deprecate DiskCache->touch() 2022-11-24 08:16:56 +03:00
Andrew Dolgov 9732d8fc9f
update_rss_feed: use DiskCache to store feed data 2022-11-23 22:09:04 +03:00
Andrew Dolgov 10a1dd35e3
* split local cache implementation into a separate class
* allow custom implementations provided by plugins
2022-11-23 21:18:40 +03:00
wn_ d376cd6142 Address upcoming string interpolation deprecation.
https://wiki.php.net/rfc/deprecate_dollar_brace_string_interpolation
2022-11-12 16:20:59 +00:00
Andrew Dolgov f56a049641
fix some PHP8 warnings generated while dragging feed tree items around 2022-10-15 13:44:02 +03:00
jmechnich 560caf8377 Fix PHP8 strtime warning if argument is null (addendum) 2022-10-01 11:05:12 +02:00
Andrew Dolgov 42bc1620b8
make phpstan happy 2022-09-29 20:02:59 +03:00
Shemi f0a20a62c7 Merge branch 'master' into master 2022-09-29 11:18:41 +03:00
Shemi e2f9a3b9a4 Added support for api plugins virtual feeds 2022-09-29 08:37:56 +03:00
jmechnich 359f0af2e7 Fix PHP8 strtime warning if argument is null 2022-09-28 12:29:57 +02:00
powerivq 96595ca4c5 Set user related sessions for single user mode 2022-08-31 14:52:42 -07:00
fox 5fea1a7ea9 Merge pull request 'Fix PHP8 empty param warning' (#79) from powerivq/tt-rss:php8compat into master
Reviewed-on: https://dev.tt-rss.org/fox/tt-rss/pulls/79
2022-08-31 18:50:39 +03:00
powerivq f0f44c6ea5 Add last_login to single user mode 2022-08-31 00:41:57 -07:00
powerivq f490bdd17a Fix PHP8 empty param problem 2022-08-31 00:36:49 -07:00
fox 60658be5bc Merge pull request 'Use PHP 7.4 features' (#77) from wn/tt-rss:feature/php-7.4-stuff into master
Reviewed-on: https://dev.tt-rss.org/fox/tt-rss/pulls/77
2022-08-17 19:38:15 +03:00
Andrew Dolgov ec764f97e7
generate_syndicated_feed: add source section to JSON-formatted output 2022-08-16 20:02:28 +03:00
wn_ 0dbed700ef Merge remote-tracking branch 'origin/master' into feature/php-7.4-stuff 2022-08-15 10:43:14 +00:00
Andrew Dolgov 7d77edd1fb
amend logic flow to fix phpstan warning in previous 2022-08-15 07:59:24 +03:00
wn_ 830a20debf Handle 'file_get_contents()' failure in 'UrlHelper::fetch()'. 2022-08-14 16:52:44 +00:00
wn_ 57e31fe5a7 Handle valid HTTP responses with no response body. 2022-08-14 16:39:03 +00:00
wn_ c301053965 Use the null coalescing assignment operator in various places. 2022-08-12 18:21:38 +00:00
wn_ 3487c922b3 Replace use of 'array_merge' with the spread operator and 'array_push' in various places.
This isn't supported for arrays with string keys until PHP 8.1.

https://wiki.php.net/rfc/spread_operator_for_array
2022-08-12 17:58:38 +00:00
wn_ a63c949a55 Use arrow functions in some places. 2022-08-12 14:41:21 +00:00
wn_ 7567676ed8 Remove a PHP < 7.1 branch in UrlHelper. 2022-08-12 14:16:40 +00:00
wn_ 93fd85df6f Switch to direct type declarations of class properties. 2022-08-12 14:13:26 +00:00
Andrew Dolgov 26c67dba77
update phpstan to 1.8.2 2022-07-31 13:55:09 +03:00
Andrew Dolgov 4aefbd628e
properly check for baseline required PHP version (7.4) 2022-07-29 06:34:20 +03:00
Andrew Dolgov 7c45b3f789
* add HOOK_LOGINFORM_ADDITIONAL_BUTTONS
* allow plugins to inject JS code into login form
2022-07-24 16:33:28 +03:00
Andrew Dolgov c0385c2098
public: allow system plugins to expose public methods 2022-07-24 15:51:56 +03:00
Andrew Dolgov 74d7f88fae
make_self_url: properly strip out GET params 2022-07-24 14:50:03 +03:00
Andrew Dolgov 5006c754c4
readability: add missing dependencies 2022-07-24 14:03:04 +03:00
Chih-Hsuan Yen f3aceb4648
Fix an error when disabling all user plugins
If I enabled some user plugins via Preferences -> Plugins and then
disabled all of them, an error occurred:

Jul 16 22:34:20 php[100]: PHP Fatal error:  Uncaught TypeError: array_filter(): Argument #1 ($array) must be of type array, null given in /usr/share/webapps/tt-rss/classes/pref/prefs.php:1027
Jul 16 22:34:20 php[100]: Stack trace:
Jul 16 22:34:20 php[100]: #0 /usr/share/webapps/tt-rss/classes/pref/prefs.php(1027): array_filter()
Jul 16 22:34:20 php[100]: #1 /usr/share/webapps/tt-rss/backend.php(136): Pref_Prefs->setplugins()
Jul 16 22:34:20 php[100]: #2 {main}
Jul 16 22:34:20 php[100]:   thrown in /usr/share/webapps/tt-rss/classes/pref/prefs.php on line 1027

Apparently the issue was elevated from a warning to an error in PHP 8.0
[1].

[1] https://php.watch/versions/8.0/internal-function-exceptions
2022-07-16 22:50:16 +08:00
Andrew Dolgov 5c70d26b7e
some very minor php8.1 warnings fixed 2022-07-13 07:08:31 +03:00
DJ_TBX 9d69fd2a56 Fix MySQL search Queries
Add the missing space between "AND" and "MATCH" in MySQL search queries
2022-07-04 00:17:01 +03:00
Andrew Dolgov 50f014e52d
implement native fulltext search on mysql 2022-06-19 22:21:54 +03:00
Andrew Dolgov 6d98cc6c80
schema: add fulltext indexes for mysql to support af_psql_trgm and possibly future fulltext search 2022-06-19 21:53:57 +03:00
Andrew Dolgov c2f7044485
userhelper: fix optional parameter being declared before a required one 2022-06-13 08:37:39 +03:00
Andrew Dolgov d4be821825
UserHelper, CLI: add a method to check user password 2022-06-10 22:16:48 +03:00
Andrew Dolgov cf1eaeedf3
* add UserHelper methods to manipulate user database (add, modify, delete)
* expose said methods via CLI (update.php)
 * fix several invocations of deprecated functions
 * set stricter type hints on several method arguments
2022-06-10 13:39:00 +03:00
Andrew Dolgov 2975c7297b
throttle updates if received HTTP 429 (Too Many Requests) 2022-06-09 09:06:52 +03:00
Andrew Dolgov 7cd26272fa
Revert "minor: Support html content in mailer.php"
This reverts commit b91ffae292.
2022-06-06 21:05:24 +03:00
Andrew Dolgov 8151295829
Revert "trivia: coding style"
This reverts commit 9e557501fa.
2022-06-06 21:05:15 +03:00
Andrew Dolgov 8ef816d8f8
feeds-tree: move external onClick dojo/method to PrefFeedTree class 2022-06-06 09:31:37 +03:00
Andrew Dolgov 6436dd16f9
filter-tree: move external dojo/method to PrefFilterTree class 2022-06-06 09:29:16 +03:00
Andrew Dolgov dd983e5de1 prefs: move external filter tree onload method (which checks for inactive feeds, etc.) to FilterTree class 2022-06-05 11:47:21 +03:00
Andrew Dolgov fc84712135 pref-filters: add a button to hide or show rules in the filter list 2022-06-05 11:41:28 +03:00
Andrew Dolgov 9457bb090a fix PHP8 undefined array key warning when resetting prefs to defaults 2022-06-05 11:14:42 +03:00
Andrew Dolgov 5adedcd3d0 fix custom-set site URLs never used while updating feeds 2022-05-29 08:02:12 +03:00
Andrew Dolgov b0059d3f88 when determining feed-specific favicon, instead of using first match or generic fallback, go through entire list of determined favicon URLs 2022-05-28 22:27:59 +03:00
Hardway Hou 9e557501fa trivia: coding style 2022-05-24 20:49:01 +08:00
Hardway Hou b91ffae292 minor: Support html content in mailer.php 2022-05-24 10:09:46 +08:00
Andrew Dolgov 1b3e655f89 use CURLAUTH_BASIC by default for password-protected feeds, keeping
CURLAUTH_ANY as a fallback in case we got a 403.
2022-05-23 08:43:04 +03:00
Siemenskun 3406a16025 Fix typo 2022-05-22 02:02:56 +03:00
Siemenskun d33d026b12 Fix xml parsing error
Move re-requesting logic before parsing response body, otherwise it puts HTTP headers into XML body
2022-05-22 01:46:46 +03:00
Andrew Dolgov 2654b3c6be disable some pointless startup sanity checks when running under docker 2022-04-03 19:39:34 +03:00
Andrew Dolgov 4250386ba5 set last_login_update session variable immediately when logging in 2022-03-29 13:52:22 +03:00
Andrew Dolgov 385da287d8 rewrite_relative: deal with undefined path warning 2022-03-22 19:43:32 +03:00
Andrew Dolgov 0345e9d3f6 rewrite_relative: use isset() to check for relative path 2022-03-22 16:18:22 +03:00
Andrew Dolgov e35a4a1306 tests: add stub autoloader, add a few more rewrite_relative tests 2022-03-22 14:32:32 +03:00
Andrew Dolgov 1c4f7ab3b8 * add phpunit as a dev dependency
* add some basic tests for UrlHelper::rewrite_relative()
 * fix UrlHelper::rewrite_relative() to work better on non-absolute
   relative URL paths
2022-03-22 12:24:31 +03:00
David Edler de1e218a83
various fixes vor php 8.1 compatibility
Cherry-picked from https://git-gitea.tt-rss.org/fox/tt-rss/pulls/56,
while excluding changes in vendor/ (causes compatiblity issues with
PHP<8 [1]) and strftime-related ones (already re-applied in
https://git-gitea.tt-rss.org/fox/tt-rss/pulls/66).

[1] https://community.tt-rss.org/t/support-for-php-8-1/5089/9
2022-03-09 00:46:15 +08:00
Andrew Dolgov 39c0bd378a getAllCounters: set default value if frontend doesn't pass label or feed id count 2022-02-25 12:41:53 +03:00
Andrew Dolgov f7e2f62022 fix Feeds::_get_counters() used improperly as a replacement for
getFeedUnread()
2022-02-20 12:48:38 +03:00
Andrew Dolgov 77f39d65b5 * Feeds::_get_counters - fix retrieving unread for tags
* mark several symbols as @deprecated properly
 * replace uses of (deprecated) getFeedUnread() with Feeds::_get_counters()
2022-02-20 11:04:40 +03:00
Andrew Dolgov 168dc6fe57 rewrite_relative: prevent php warning when checking for unset content type in EXTRA_SCHEMES_BY_CONTENT_TYPE 2022-02-18 16:44:03 +03:00
Andrew Dolgov 74a247fc5c rewrite_relative: whitelist specific schemes for URLs with 'known' content-types i.e. specified for enclosures 2022-02-17 22:38:38 +03:00
Andrew Dolgov 89ef98e57e allow running as root in a container environment 2022-02-17 17:32:02 +03:00
Felix Eckhofer cc30198b3d
Replace deprecated `strftime` 2022-02-03 16:13:01 +01:00
Schrottfresse 931e33c381 Add workaround for boolean values being intergers with MySQL/PHP 8.1 2022-01-28 08:37:29 +01:00
Andrew Dolgov c57ebf2c10 fix filter last_triggered not updating 2022-01-25 22:33:13 +03:00
Richard Tollerton aaccf89501 update_rss_feed: juxtapose pdo and ORM commit on timestamp update
If for whatever reason $pdo holds a DDL lock on ttrss_entries, it could
block ORM's save, leading to a deadlock. To work around this, call
$pdo->commit() before ORM::for_table()->save().
2022-01-13 23:39:49 -06:00
Andrew Dolgov c3482fbe6b generate a warning if plugin-generated content of HOOK_ARTICLE_BUTTON or _LEFT_BUTTON can't be parsed as valid XML 2022-01-06 10:37:03 +03:00
Andrew Dolgov 1818fc11a5 fetch: return HTTP code when no curl_error() is available 2021-12-23 17:32:44 +03:00
Andrew Dolgov 6971ca08b2 remove deprecated LOG_ constants 2021-12-23 17:32:27 +03:00
Andrew Dolgov 7aeaa1b039 rssutils: rewrite several invocations of (deprecated) rewrite_relative_url() to UrlHelper::rewrite_relative() 2021-12-20 08:03:30 +03:00
Andrew Dolgov 40b2356be2 filters:
* add filter action to ignore feed-provided tags
 * simplify handling of various filter-provided tags
 * bump schema to 146
2021-12-20 07:56:16 +03:00
Andrew Dolgov 720b318796 * fox.form.Select: add several properties allowing it to better
imitate other controls like DropDownButton, etc.
 * rework several main toolbar items to use fox.form.Select instead of
other controls
 * replace HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM with
HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM2 because of markup change (option
instead of menuitem)
 * PluginHost: add some explicit typecasts to make intellephense shut up
2021-12-14 21:53:45 +03:00
wn_ 0726a9d820 Handle another potential 'SUM()' null situation in Feeds. 2021-12-14 12:50:53 +00:00