--- a/web/search_tweets.php Sun Sep 23 15:20:40 2018 +0200
+++ b/web/search_tweets.php Sun Sep 23 17:13:34 2018 +0200
@@ -9,39 +9,39 @@
include_once 'common.php';
use Abraham\TwitterOAuth\TwitterOAuth;
+use Stash\Pool;
+use Stash\Driver\Sqlite;
+
+$cacheDriver = new Stash\Driver\Sqlite(array('path' => sys_get_temp_dir()."/polemictweet_cache.db"));
+$cachePool = new Stash\Pool($cacheDriver);
/**
* Check for a POSTed status message to send to Twitter
*/
if (!empty($_GET)
&& isset($_SESSION['TWITTER_ACCESS_TOKEN'])) {
- /**
- * Easiest way to use OAuth now that we have an Access Token is to use
- * a preconfigured instance of Zend_Http_Client which automatically
- * signs and encodes all our requests without additional work
- */
-
- // if (isset($_GET['endpoint'])) {
- // $endpoint = $_GET['endpoint'];
- // unset($_GET['endpoint']);
- // } else {
- // $endpoint = "search/tweets";
- // }
+
+ $itemCachePath="search/tweets?" . http_build_query($_GET);
+
+ $cachedStatusesResp = $cachePool->getItem($itemCachePath);
+
+ $statusesStr = $cachedStatusesResp->get();
- $token = unserialize($_SESSION['TWITTER_ACCESS_TOKEN']);
- $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $token['oauth_token'], $token['oauth_token_secret']);
-
+ if ($cachedStatusesResp->isMiss()) {
+ $cachedStatusesResp->lock();
+
+ $token = unserialize($_SESSION['TWITTER_ACCESS_TOKEN']);
+ $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $token['oauth_token'], $token['oauth_token_secret']);
+
+
+ $statuses = $connection->get("search/tweets", $_GET);
+ $statusesStr = json_encode($statuses);
- // $statuses = $connection->get("search/tweets", $parameters);
- $statuses = $connection->get("search/tweets", $_GET);
- // $client = $token->getHttpClient($configuration);
- // $client->setUri("https://api.twitter.com/1.1/$endpoint.json");
- // $client->setMethod(Zend_Http_Client::GET);
- // $client->setParameterGet($_GET);
- // $response = $client->request();
+ $cachedStatusesResp->set($statusesStr)->expiresAfter(3);
+ $cachePool->save($cachedStatusesResp);
+ }
- // echo $response->getBody();
- echo json_encode($statuses);
+ echo($statusesStr);
} else {
/**