Dag
e027bd9274
fix: improve FeedExpander ( #3103 )
...
* fix: improve FeedExpander
Include the first libxml error in exception.
Give better error message if trying to parse the empty string.
Log all libxml errors if debug mode is enabled.
* error handling and logging tweak
2022-10-29 10:27:02 +02:00
Dag
1f576312ea
feat: in debug mode, include part of http response in exception message ( #3090 )
2022-10-29 08:42:50 +02:00
Dag
52af2ae34c
fix: php errors (notices) ( #3115 )
2022-10-26 00:47:45 +02:00
ORelio
05f2fb5ec7
[FeedExpander] Decode HTML entities in title ( #3110 )
...
Feed item title may contain HTML entities that we need to decode,
else they are encoded twice when generating the expanded feed.
2022-10-20 18:26:43 +02:00
Eugene Molotov
d483bf2b81
[core] Implement bearer token authentication ( #3043 )
2022-10-19 18:39:35 +02:00
Dag
ffbc107687
Improve logging and error handling ( #3059 )
...
* refactor: logging and errror handling
2022-10-16 17:55:43 +02:00
Dag
e21394d2d3
refactor: html format ( #3062 )
...
* refactor: html format
Fix a few small bugs too
* fix
* fix
* trigger build
* striptags instead of encode title
2022-10-16 12:03:57 +02:00
Dag
aacba5b1a8
fix: too strict url validation in feed item ( #3058 )
...
Urls such as https://example.com/réponse were rejected
Fix https://github.com/RSS-Bridge/rss-bridge/issues/3018#issuecomment-1254159203
2022-09-21 23:07:56 +02:00
Eugene Molotov
3d9fead463
[ActionFactory] Allow camel-case action names ( #3044 )
...
Dash symbol is used to convert dash-seperated string to camel-cased string
2022-09-20 18:17:57 +02:00
Dag
2d272117cc
fix: dont error out for invalid env names ( #3030 )
2022-09-12 23:14:11 +02:00
Dag
94ae098ef5
fix: various fixes ( #3023 )
...
* improve twitch error message
* fix worldcosplay notice
* fix: add new video image to telegram
* fix: reuters
* fix: formula1
* twitter
2022-09-09 20:18:50 +02:00
Dag
27b3d7c34e
feat: improve logging and error handling ( #2994 )
...
* feat: improve logging and error handling
* trim absolute path from file name
* fix: suppress php errors from xml parsing
* fix: respect the error reporting level in the custom error handler
* feat: dont log error which is produced by bots
* ignore error about invalid bridge name
* upgrade bridge exception from warning to error
* remove remnants of using phps builin error handler
* move responsibility of printing php error from logger to error handler
* feat: include url in log record context
* fix: always include url in log record contect
Also ignore more non-interesting exceptions.
* more verbose httpexception
* fix
* fix
2022-09-08 19:07:57 +02:00
Eugene Molotov
bbbd599bc8
fix: do not throw exception on 301-303 http responses ( #3014 )
2022-09-06 15:40:20 +02:00
Dag
8ea9472300
feat: improve exception message when xml parsing fails ( #3009 )
2022-09-05 14:26:11 +02:00
Dag
5e09a14acc
fix: include git tag in version ( #3000 )
...
Also include os and php version in github issue template.
2022-09-04 07:21:57 +02:00
Dag
693d6edfbf
fix: php7.3 parser error in Configuration.php ( #2999 )
...
Dont fail a basic lint so that the proper error message can be shown when on unsupported versions.
2022-09-04 04:50:01 +02:00
Dag
57d5aa45f7
fix: php notice in eztvbridge ( #2998 )
...
* fix: php notice in eztvbridge
Fixes Undefined property: stdClass::$torrents
* lint
2022-09-04 04:35:21 +02:00
Dag
f40ed566be
fix: absolute urls for images in pixivbridge ( #2993 )
2022-09-02 20:35:17 +02:00
Dag
3c2353c0ec
fix: bug in previous refactor ( #2992 )
...
fix #2991
2022-08-31 18:16:19 +02:00
Dag
97808abca1
refactor: rename rssbridge.php to bootstrap.php ( #2987 )
...
Fix #2986
2022-08-27 23:01:06 +02:00
Dag
5165ea265d
fix: case-insensitive config from env, fix #2935 ( #2973 )
...
* refactor
* fix: case-sensitive config from env, fix #2935
* lowercase all config section and keys
* test: add test for case-insensitivity
2022-08-23 21:19:53 +02:00
Dag
0de1694371
refactor: extract index.php to RssBridge.php ( #2961 )
...
* refactor: extract entry point into class
* refactor: js
* refactor: extract frontpage action
2022-08-18 22:52:01 +02:00
Dag
502799a74c
feat: use bridge description and short name in search ( #2952 )
...
* refactor: search.js
* feat: use bridge description and short name in search
* fix bug in previous merge commit
Also reformat string from tabs to spaces
2022-08-06 23:12:30 +02:00
Dag
2bbce8ebef
refactor: general code base refactor ( #2950 )
...
* refactor
* fix: bug in previous refactor
* chore: exclude phpcompat sniff due to bug in phpcompat
* fix: do not leak absolute paths
* refactor/fix: batch extensions checking, fix DOS issue
2022-08-06 22:46:28 +02:00
Dag
b042412416
fix: force HTTP 1.1 in curl requests ( #2949 )
...
Since curl 7.62.0 the default option is: CURL_HTTP_VERSION_2TLS
Before that the default used to be: CURL_HTTP_VERSION_1_1
Fix #2947
2022-08-05 11:46:32 +02:00
Dag
ecb486794b
refactor: use static values for cache scope
...
This fixes a future problem when code is placed under a namespace because `get_class($bridge)` will then return e.g. `RssBridge\Bridge\TwitterBridge` instead of the the current value `TwitterBridge`.
Also a bit refactoring of `Configuration.php`.
2022-08-02 15:03:54 +02:00
Dag
afcc38786e
fix: use default headers in getContents() ( #2927 )
2022-07-31 04:21:56 +02:00
Dag
0a060b2ad6
[Gab] feat: add new bridge GabBridge ( #2920 )
2022-07-31 03:52:27 +02:00
Jan Tojnar
5b5f3b4254
Do not use constants for configuration ( #2938 )
...
* docs: Do not use constant names when referring to config options
The options are customizable using a config file and no longer hardcoded in index.php since 8ac8e08abf
* Do not use constants for configuration
Since <8ac8e08abf
>, they are just set to the configuration object values.
2022-07-24 19:26:12 +02:00
Dag
5e52ecc3f8
test: add new test for Configuration ( #2915 )
2022-07-10 20:05:27 +02:00
Dag
a966213cd7
refactor: inject the action params via its execute method ( #2907 )
2022-07-08 21:06:14 +02:00
Dag
abc4af43b3
feat: improve error handling ( #2902 )
2022-07-08 20:39:13 +02:00
Dag
abfc6b4633
feat: introduce template engine ( #2899 )
2022-07-08 14:17:25 +02:00
Jan Tojnar
951092eef3
Fix coding style missed by phpbcf ( #2901 )
...
$ composer require --dev friendsofphp/php-cs-fixer
$ echo >.php-cs-fixer.dist.php "<?php
$finder = PhpCsFixer\Finder::create()
->in(__DIR__);
$rules = [
'@PSR12' => true,
// '@PSR12:risky' => true,
'@PHP74Migration' => true,
// '@PHP74Migration:risky' => true,
// buggy, duplicates existing comment sometimes
'no_break_comment' => false,
'array_syntax' => true,
'lowercase_static_reference' => true,
'visibility_required' => false,
// Too much noise
'binary_operator_spaces' => false,
'heredoc_indentation' => false,
'trailing_comma_in_multiline' => false,
];
$config = new PhpCsFixer\Config();
return $config
->setRules($rules)
// ->setRiskyAllowed(true)
->setFinder($finder);
"
$ vendor/bin/php-cs-fixer --version
PHP CS Fixer 3.8.0 BerSzcz against war! by Fabien Potencier and Dariusz Ruminski.
PHP runtime: 8.1.7
$ vendor/bin/php-cs-fixer fix
$ rm .php-cs-fixer.cache
$ vendor/bin/php-cs-fixer fix
2022-07-08 13:00:52 +02:00
Jan Tojnar
dbf8c5b7ae
refactor(BridgeFactory): make methods only accept valid class names ( #2897 )
...
This moves the responsibility for getting a valid class name
to the users of BridgeFactory, avoiding the repeated sanitation.
Improper use can also be checked statically.
2022-07-08 12:54:23 +02:00
Jan Tojnar
d107f8ed30
Improve Factory variable names ( #2895 )
2022-07-06 12:14:04 +02:00
Jan Tojnar
ab6aca3163
lib/Configuration: Remove redundant comment
...
It was just getting out of sync:
- Minimum PHP version was bumped in 8365a7a34d
- Cache directory permission check was removed in 8e2b65556f
- Whitelist permission check was removed in d4e867f240
2022-07-06 03:34:37 +02:00
Dag
321ec7c8c1
refactor: move cache logic into the factory ( #2884 )
2022-07-05 13:20:01 +02:00
Dag
5b9b579652
refactor: remove unused class ( #2883 )
2022-07-05 10:50:39 +02:00
Dag
4f75591060
Reformat codebase v4 ( #2872 )
...
Reformat code base to PSR12
Co-authored-by: rssbridge <noreply@github.com>
2022-07-01 15:10:30 +02:00
Dag
5076d09de6
refactor: prepare for PSR2 ( #2859 )
2022-06-24 18:29:35 +02:00
Dag
ee80f4918e
refactor: action ( #2836 )
2022-06-22 18:30:37 +02:00
Dag
fad0dbb6ef
refactor: fix exception handling ( #2835 )
...
* refactor: fix exception handling
The removed catch is never uses in php versions above 7.
The need for multiple catch statements like this is to support both php 5 and 7.
* remove traces of old exception handling
* add typehints
* dont treat exception code 0 specially
2022-06-22 18:30:06 +02:00
Dag
07927008eb
refactor: CacheFactory ( #2834 )
2022-06-22 18:29:28 +02:00
Dag
b7b9378484
refactor: ActionFactory ( #2833 )
2022-06-22 18:28:07 +02:00
Dag
af5648d928
refactor: FormatFactory ( #2832 )
2022-06-22 18:27:20 +02:00
Dag
8365a7a34d
chore: bump required php version to 7.4 ( #2838 )
...
* chore: require min php 7.4
* Revert "feat: backport php 7.3 functions (#2803 )"
This reverts commit 6df5a4bc14
.
* [BandcampDaily] use array_key_first
* hard fail on php versions below 7.4
* update phpcompat linter
2022-06-19 21:45:33 +02:00
Yaman Qalieh
65e6d9f454
[XPathAbstract] Improve Media Url regex ( #2845 )
2022-06-19 02:19:32 +02:00
Jan Tojnar
10eb1c9a95
[FormatAbstract]: Ensure sanitizeHtml is given string ( #2791 )
...
Sometimes `Item::getContent` returns `null`, in which case `sanitizeHtml`
would pass it to `str_replace`, which would raise `E_DEPRECATED` on PHP 8.1.
2022-06-17 20:46:15 +02:00
Yaman Qalieh
9503f9ad7f
[Release] 2022-06-14 ( #2818 )
2022-06-14 09:47:12 -04:00
Kristian Salonen
166ead902d
[Configuration.php] Update the version name to dev.2022-06-10 ( #2811 )
2022-06-10 15:05:34 +02:00
Jan Tojnar
347f9a3eda
[contents] Add MIME type for mp3 ( #2809 )
...
Without this, format tests fail on systems without `/etc/mime.types`.
2022-06-09 22:41:10 -04:00
Yaman Qalieh
37f211a37e
Add Laravel framework license
2022-06-09 12:13:07 -04:00
Dag
6df5a4bc14
feat: backport php 7.3 functions ( #2803 )
...
* feat: backport php 7.3 functions
* fix: add license
* fix: formatting
* fix: add note in README regarding license
2022-06-09 18:00:51 +02:00
Jan Tojnar
fb501652d5
Formats: Remove display & related method ( #2776 )
...
Format should not be responsible for sending HTTP response.
2022-06-07 18:05:33 +02:00
Dag
cb05cacd6a
fix: add 429 to status codes ( #2757 )
2022-05-27 15:25:12 +02:00
Dag
5cc34b884a
[core] Improve getContents docs ( #2742 )
2022-05-22 21:27:23 -04:00
Dag
1d0a0b927b
fix: use accept header when fetching feed ( #2737 )
...
* fix: use accept header when fetching feed
* fix: include atom too, and reuse constants from format classes
* add a catch all accept header
2022-05-18 00:18:33 +02:00
Dag
4007afdcf5
Merge branch 'autoloading' into master
2022-05-17 23:59:18 +02:00
Dag
7d00b0c5df
fix: include http code in exception ( #2726 )
2022-05-17 23:47:12 +02:00
Dag
0212c4790f
fix: connectivityaction ( #2725 )
2022-05-17 23:46:37 +02:00
Dag
4d069fcf99
remove unnecessary includes
2022-05-13 09:35:25 +02:00
Yaman Qalieh
bb6d553dd5
Revert "refactor: remove unnecesary includes" ( #2723 )
...
This reverts commit fd449be4eb
.
2022-05-12 16:28:03 -04:00
Dag
fd449be4eb
refactor: remove unnecesary includes
2022-05-12 15:15:09 +02:00
Dag
fcc3707210
refactor: swap the order of sprintf values
2022-05-11 22:37:59 +02:00
Dag
d5e9dbf47d
refactor: restore some useful comments
2022-05-11 22:35:03 +02:00
Yaman Qalieh
6547ed0c04
[docs] Add documentation for html.php functions ( #2714 )
2022-05-10 09:37:53 +02:00
Dag
8982995445
refactor: remove unused method
2022-05-09 23:32:45 +02:00
Dag
f5a51038cc
fix: error when passing null values
...
This bug was introduced by me when refactoring the http client.
Fixes:
Fatal error: Uncaught TypeError: Argument 2 passed to getContents() must be of the type array, null given
2022-05-08 04:42:24 +02:00
Dag
5d77d14f9d
feat: add retry logic to the http client ( #2692 )
...
* refactor: extract http client
* feat: add retry logic to http client
2022-05-08 03:58:57 +02:00
Dag
0c7a7f320f
refactor: BridgeFactory ( #2691 )
2022-05-08 03:58:42 +02:00
Dag
0ef298f9cc
refactor: add php autoloader ( #2655 )
2022-04-26 00:57:59 +02:00
Patrick Collins
e1c898848f
[contents.php] Fix incorrect reference to UnexpectedResponseException's responseBody. ( #2677 )
2022-04-23 10:04:56 +05:00
Dag
d62b977394
refactor: ./tests ( #2649 )
...
* refactor: ./tests
* test: consolidate testsuites
* refactor: move config setup into rssbridge.php
Makes it easier to unit test.
* lint
2022-04-13 21:04:10 +02:00
dag
5a733b3d82
feat: add limit options to the slowest bridges
2022-04-10 18:56:24 +02:00
dag
dbee47f1d6
fix: give better error message when feed can't be parsed ( #2618 )
2022-04-10 18:54:32 +02:00
dag
c3a106892d
fix: require curl extension ( #2617 )
2022-04-10 18:54:18 +02:00
dag
cce11964a4
feat: add a timeout option for http client ( #2600 )
2022-04-08 21:22:13 +02:00
somini
d123e6007e
Fixup deprecations on PHP 8 ( #2592 )
...
* Fixup deprecations on PHP 8
Fix #2448
* Configure a default fallback for getInput function
* Appease phpcs
* Avoid changing getInput function
Revert "Configure a default fallback for getInput function"
This reverts commit 94004c5104
.
2022-04-03 09:53:13 +02:00
dag
bed20e9f28
feat: extract curl ua to config value ( #2568 )
...
* exclude config.default.ini.php from phpcs
2022-04-03 09:37:39 +02:00
LogMANOriginal
f311fb8083
[BridgeAbstract] Add loadCacheValue() and saveCacheValue() ( #1380 )
...
* [BridgeAbstract] Add loadCacheValue() and saveCacheValue()
Bridges currently need to implement value caching manually, which
results in duplicate code and more complex bridges.
This commit adds two protected functions to BridgeAbstract that make
it possible for bridges to store and retrieve values from a temporary
cache by key.
Co-Authored-By: Roliga <roliga.here@gmail.com>
Co-authored-by: Roliga <roliga.here@gmail.com>
2022-04-02 08:15:28 +02:00
Stelfux
91b8e4196e
[FeedExpander.php] Preserve original icon ( #2145 )
2022-03-26 19:09:27 +01:00
Niehztog
55acf661b9
add support for more media types as enclosures, handle result of /tex… ( #2324 )
2022-03-25 00:30:14 +01:00
Jakub Valenta
8e2b65556f
[Config] Don't check PATH_CACHE for memcached ( #1489 )
2022-03-24 21:29:16 +01:00
Antoine Turmel
6a72432f76
Proposition : Open new feeds in a new tab #1389
2022-03-24 20:37:34 +01:00
Dag
b6d1c7a58f
fix: php notice
...
Fixes:
Notice: Undefined variable: message in /home/rssbridge/public/lib/contents.php on line 39
2022-03-24 13:52:02 +05:00
Dag
384790537b
fix: bug in cloudflare response detection
...
The cloudflare server header was not recognized in
some cases such as when the server header is "server"
or when the header value is "Cloudflare".
2022-03-24 13:52:02 +05:00
Dag
7bdc53125c
fix: properly verify the existence of the curl module
...
This fixes a bug where it didnt use curl from cli
even though it's installed.
I believe this preserves the original intention to
not require the curl module to be installed.
https://github.com/RSS-Bridge/rss-bridge/pull/979
2022-03-24 13:52:02 +05:00
Joseph
d41aa84b13
[BridgeCard] Use full bridge name in data-ref tag ( #1560 )
...
Updates the data-ref tag of each bridge card to use the bridge's full name (eg. Apple Music) instead of its filename (eg. AppleMusic). This fixes issues with the search not returned some bridges.
2022-03-22 22:08:26 +01:00
Paul Staroch
18504f2356
[lib/contents.php] Use variable name 'retVal' instead of 'retval' as variable names are case-sensitive ( #2498 )
2022-03-14 05:46:30 +05:00
Eugene Molotov
05273a9278
[core] Make getContents exceptions to be handled correctly and correct exception message ( #2447 )
...
This commit fixes following issues:
1. 'Unexpected response' error message was returned, even if upstream did not return anything
2. Inability to handle non-20x messages with checking response body
2022-03-12 01:18:01 +05:00
Yaman Qalieh
6585ebc89b
[ActionFactory] Prevent leaking working directory ( #2480 )
2022-03-01 14:14:53 +05:00
Eugene Molotov
5df8bf956a
Bump version to dev.2022-01-20
2022-01-20 10:17:59 +05:00
Bockiii
b395fe2641
[core] Implemented feature to read config from environment variables ( #2100 )
2021-12-03 11:15:08 +05:00
Eugene Molotov
071fdef599
[core] Drop php 5.6 and php 7.0 support ( #2224 )
2021-12-03 04:12:16 +05:00
Martin Leyrer
3764348b76
[core] Accept additional "successful" 2xx status codes ( #2310 )
2021-10-30 01:38:25 +05:00
Eugene Molotov
b86ed70376
[core] Backported str_starts_with, str_ends_with and str_contains from php 8 ( #2318 )
2021-10-30 01:06:04 +05:00
Niehztog
87b3aaa550
[XPathAbstract] Fix encoding of feed output ( #2297 )
2021-10-14 14:18:00 +05:00
Bockiii
ecaae735d9
[core] Support for bridge maintainers' donation URLs ( #2102 )
2021-06-26 00:45:25 +05:00
Eugene Molotov
c580219627
[BridgeImplementationTest] Implement feature for testing detectParameters method
2021-06-05 09:34:16 +05:00