mirror of
https://github.com/RSS-Bridge/rss-bridge.git
synced 2025-08-23 00:23:10 +02:00
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
This commit is contained in:
@@ -6,6 +6,7 @@ class DemoBridge extends BridgeAbstract
|
||||
const NAME = 'DemoBridge';
|
||||
const URI = 'http://github.com/rss-bridge/rss-bridge';
|
||||
const DESCRIPTION = 'Bridge used for demos';
|
||||
const CACHE_TIMEOUT = 15;
|
||||
|
||||
const PARAMETERS = [
|
||||
'testCheckbox' => [
|
||||
|
@@ -282,14 +282,10 @@ class SpotifyBridge extends BridgeAbstract
|
||||
$cacheKey = sprintf('%s:%s', $this->getInput('clientid'), $this->getInput('clientsecret'));
|
||||
$cache->setScope('SpotifyBridge');
|
||||
$cache->setKey([$cacheKey]);
|
||||
|
||||
$time = null;
|
||||
if ($cache->getTime()) {
|
||||
$time = (new DateTime())->getTimestamp() - $cache->getTime();
|
||||
}
|
||||
|
||||
if (!$cache->getTime() || $time >= 3600) {
|
||||
// fetch token
|
||||
$token = $cache->loadData(3600);
|
||||
if ($token) {
|
||||
$this->token = $token;
|
||||
} else {
|
||||
$basicAuth = base64_encode(sprintf('%s:%s', $this->getInput('clientid'), $this->getInput('clientsecret')));
|
||||
$json = getContents('https://accounts.spotify.com/api/token', [
|
||||
"Authorization: Basic $basicAuth"
|
||||
@@ -298,10 +294,9 @@ class SpotifyBridge extends BridgeAbstract
|
||||
]);
|
||||
$data = Json::decode($json);
|
||||
$this->token = $data['access_token'];
|
||||
|
||||
$cache->setScope('SpotifyBridge');
|
||||
$cache->setKey([$cacheKey]);
|
||||
$cache->saveData($this->token);
|
||||
} else {
|
||||
$this->token = $cache->loadData();
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -7,7 +7,7 @@ class TwitterBridge extends BridgeAbstract
|
||||
const API_URI = 'https://api.twitter.com';
|
||||
const GUEST_TOKEN_USES = 100;
|
||||
const GUEST_TOKEN_EXPIRY = 10800; // 3hrs
|
||||
const CACHE_TIMEOUT = 300; // 5min
|
||||
const CACHE_TIMEOUT = 60 * 15; // 15min
|
||||
const DESCRIPTION = 'returns tweets';
|
||||
const MAINTAINER = 'arnd-s';
|
||||
const PARAMETERS = [
|
||||
@@ -224,10 +224,6 @@ EOD
|
||||
switch ($this->queriedContext) {
|
||||
case 'By username':
|
||||
$cache = RssBridge::getCache();
|
||||
$cache->setScope('twitter');
|
||||
$cache->setKey(['cache']);
|
||||
// todo: inspect mtime instead of purging with 3h
|
||||
$cache->purgeCache(60 * 60 * 3);
|
||||
$api = new TwitterClient($cache);
|
||||
|
||||
$screenName = $this->getInput('u');
|
||||
|
Reference in New Issue
Block a user