1
0
mirror of https://github.com/RSS-Bridge/rss-bridge.git synced 2025-07-14 13:36:23 +02:00
Commit Graph

48 Commits

Author SHA1 Message Date
Dag
857e908929 chore: prepare 2023-09-24 release (#3703) 2023-09-24 20:53:07 +02:00
Dag
7329b83cc0 refactor: logger (#3678) 2023-09-21 22:05:55 +02:00
Dag
4b9f6f7e53 fix: rewrite and improve caching (#3594) 2023-09-10 21:50:15 +02:00
Dag
6254b8593e refactor(cache): extract and encapsulate cache expiration logic (#3547)
* refactor(cache): extract and encapsulate cache expiration logic

* fix: logic bug in getSimpleHTMLDOMCached

* fix: silly me, index should of course be on the key column

* silly me again, PRIMARY keys get index by default lol

* comment out the delete portion in loadData

* remove a few log statements

* tweak twitter cache timeout
2023-07-19 05:05:49 +02:00
Dag
91976f7d56 fix(file cache): acquire lock before writing (#3509) 2023-07-08 17:06:49 +02:00
Dag
46f0e97c73 refactor: remove useless actual args to clearstatcache (#3503) 2023-07-06 19:39:40 +02:00
Dag
5e22459eb6 fix: remove unnecessary calls to purgeCache (#3502) 2023-07-06 18:52:19 +02:00
Dag
965d7d44c5 feat(sqlite cache): add config options (#3499)
* refactor: sqlite cache

* refactor

* feat: add config options to sqlite cache

* refactor
2023-07-06 15:59:38 +02:00
Dag
caac7f572c refacor: improve cache interface (#3492)
* fix: proper typehint on setScope

* refactor: type hint setKey()

* typehint
2023-07-06 15:10:30 +02:00
Dag
a9fd3b9e61 fix(CacheInterface): logic bug in getTime (#3491)
* fix(CacheInterface): logic bug in getTime

* test
2023-07-05 17:37:21 +02:00
Dag
372880b5ef fix: file cache tweaks (#3470)
* fix: improve file cache

* fix(filecache): log when unserialize fails
2023-06-30 22:31:19 +02:00
Dag
9e9a697b8b feat: add config option "path" for file cache (#3297) 2023-03-20 19:10:01 +01:00
Dag
058e792b8f feat: add filecache config to enable/disable real purge (#3263)
* refactor: cachefactory

* feat: add filecache config to enable/disable real purge

* test: fix test
2023-03-06 21:50:40 +01:00
Dag
1b45a53402 fix: make filecache be case-sensitive on key (#3113) 2022-10-29 10:27:26 +02:00
Dag
52af2ae34c fix: php errors (notices) (#3115) 2022-10-26 00:47:45 +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
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
8e2b65556f [Config] Don't check PATH_CACHE for memcached (#1489) 2022-03-24 21:29:16 +01:00
21d3bf3b60 caches: Refactor the API (#1060)
- For consistency, functions should always return null on non-existing data.

- WordPressPluginUpdateBridge appears to have used its own cache instance in the past. Obviously not used anymore.

- Since $key can be anything, the cache implementation must ensure to assign the related data reliably; most commonly by serializing and hashing the key in an appropriate way.

- Even though the default path for storage is perfectly fine, some people may want to use a different location. This is an example how a cache implementation is responsible for its requirements.
2019-04-29 20:12:43 +02:00
ffb8b82c73 [FileCache] reseting cached file stat result to have correct getTime() result (#792)
* [FileCache] reseting cached file stat result to have correct getTime() result
2018-08-25 20:00:51 +01:00
193ca87afa [phpcs] enforce single quotes (#732)
* [phpcs] Add rule to enforce single quoted strings
2018-06-29 22:55:33 +01:00
3ca59392c2 Fix for crashes when accessing FileCache in case it has been purged/not created yet. 2018-05-05 18:05:48 +01:00
a4b9611e66 [phpcs] Add missing rules
- Do not add spaces after opening or before closing parenthesis

  // Wrong
  if( !is_null($var) ) {
    ...
  }

  // Right
  if(!is_null($var)) {
    ...
  }

- Add space after closing parenthesis

  // Wrong
  if(true){
    ...
  }

  // Right
  if(true) {
    ...
  }

- Add body into new line
- Close body in new line

  // Wrong
  if(true) { ... }

  // Right
  if(true) {
    ...
  }

Notice: Spaces after keywords are not detected:

  // Wrong (not detected)
  // -> space after 'if' and missing space after 'else'
  if (true) {
    ...
  } else{
    ...
  }

  // Right
  if(true) {
    ...
  } else {
    ...
  }
2017-07-29 19:55:12 +02:00
5de03d6b9f [FileCache] Use serialize instead of json_encode
json_encode causes high memory footprint on large input data,
where serialize is less problematic.

Example: When using AcrimedBridge items contain pictures in
raw format (entire picture) which leads to a file size of about
2MB using serialize. json_encode will allocate about 98MB of
memory for encoding, causing memory exhausion errors (PHP
allows for 128MB of memory by default)
2017-02-18 12:54:26 +01:00
1d26c7f1c3 [FileCache] Do not delete .gitkeep
This commit reduces the chance of accidentally removing the cache
folder from repository.
2017-02-18 10:23:50 +01:00
14c689e7a3 [core] Fix typos 2016-11-09 19:10:40 +01:00
4dfbc16a5b Fix Cache write verification
PHP operator '===' is the only strict way to mix up the value '0' and
the value 'FALSE'.

The function saveData of the FileCache tests if the write of the cache
files was done with success and raise an Exception if not. The test was
done without the '===' operator, and if the data is 0 bytes long the
error message says there is a permission error, which is false.

A data 0 bytes long is another issue, either in the json_encode function
either in the Bridge, but not a permission issue.
2016-11-09 02:11:22 +01:00
82ed2c5ffb [FileCache] Change output format to JSON
JSON format does not serialize object instances, which we don't
want anyways, and improves readability. The hashing algorithm
changed to md5 to prevent collisions with existing cache files
2016-10-16 11:15:11 +02:00
5c309e93dc [cache] Specify cache duration for 'purgeCache' 2016-10-08 16:18:10 +02:00
2d56b717cf [FileCache] Add property to define cache folder 2016-10-08 16:03:08 +02:00
5639b158e7 [FileCache] Change parameters to lower-case
This prevents creating multiple cache files for the same request.
2016-10-08 15:34:19 +02:00
d941fa41f6 [FileCache] Remove 'isPrepareCache'
There is no need to check the absense of the parameters in
all functions. Instead 'getCacheName' is the only function
actually using the parameters and thus should check the
availability.
2016-10-08 15:21:10 +02:00
ac0a9a90ad [FileCache] Build file name solely on given parameters
Previously the cache file name was build on the original request URI
which also included the parameters. This could result in different
file name for the same request (different format). Removing the format
from the request is already done in index.php and could lead to issues
in the future (if new parameters are introduced).
2016-10-08 15:17:08 +02:00
5ccde61a19 [FileCache] Rename 'prepare' to 'setParameters'
This is a cosmetic change to use the same naming convention for
all methods.
2016-10-08 15:04:14 +02:00
0998cbde9d [cache] Directly implement CacheInterface in FileCache
The function 'prepare' previously implemented in CacheAbstract
is specifically required for FileCache and thus belongs to FileCache.
Since this change removes all code from CacheAbstract, it can be
removed completely.
2016-10-08 14:52:03 +02:00
5f1c4e1c55 [FileCache] Implement recursive directory creation 2016-10-07 23:20:32 +02:00
ad825aa88a [FileCache] Assign same permission to group as others
It makes no sense for the group to get less access rights
than anyone else
2016-10-07 23:16:33 +02:00
45890d5969 [FileCache] Don't store folder creation status
The results of the function is_dir are already cached.
See http://php.net/manual/en/function.is-dir.php
2016-10-07 22:56:10 +02:00
5fdb3b2fd9 [FileCache] Build path using function instead of constant 2016-10-07 22:36:36 +02:00
9ac678aac5 [Cache] Move 'purge' function to implementations
The purge function is cache specific and thus belongs
to the specific implementation.
2016-10-07 22:33:45 +02:00
51ff8de346 [Cache] Remove orphan function utf8_encode_deep 2016-10-07 22:06:58 +02:00
62eec43980 [core] Apply common indentation
All files are now using tabs for indentation
2016-09-10 20:41:11 +02:00
c2ea8d0ee9 [FileCache] Ignore 'format' when generating the file name
Previously for each requested format a new cache file was created,
though the data is the same. With this the file name no longer depends
on the requested output format.
2016-08-28 13:09:45 +02:00
d9b6477ff6 [FileCache] Fix loading cached data
Previously cached data was translated into object data (Item),
this is no longer necessary.
2016-08-22 18:59:23 +02:00
e59bf64c42 Fix cache bug, the content of the cache was encoded in utf8 before
converting to json and saved, resulting in double-encoded caracters in
output
2016-01-21 14:33:58 +01:00
259e5ef9de Casting to UTF-8 before converting to JSON. 2016-01-19 12:18:54 +00:00
2e4e89aff8 Correction of few bugs.
Warn if RSS-Bridge cannot write to disk.
Try/Catch the bridge RSS generation.

Signed-off-by: teromene <teromene@teromene.fr>
2015-12-06 15:56:39 +01:00
927b04dfef Refonte du code 2013-08-11 13:30:41 +02:00