function pluginSecret() { return serendipity_event_twitter::pluginSecret(); }
function updateTwitterTimelineCache($parts) { global $serendipity; require_once S9Y_PEAR_PATH . 'HTTP/Request.php'; if (count($parts) < 5) { return time() + 60 * 60; } // params corrupted next try allowed one minute later // Do we need to do OAuth? if (count($parts) > 6) { $idx_twitter = $parts[5]; $idxmd5 = $parts[6]; $idxmd5_test = md5(serendipity_event_twitter::pluginSecret() . "_{$idx_twitter}"); if ($idxmd5_test != $idxmd5) { // Seems to be a hack! return time() + 60 * 60; // params corrupted next try allowed one minute later } } $show_rt = false; if (count($parts) > 7) { $features = $parts[7]; $show_rt = strpos($features, 'r') !== false; } $cachetime = (int) $parts[4]; $service = $parts[1]; $username = str_replace('!', '_', $parts[2]); $cache_user = md5($service) . md5($username); $cachefile = $serendipity['serendipityPath'] . PATH_SMARTY_COMPILE . "/twitterresult.{$cache_user}.json"; $nextcheck = time() + (int) $cachetime; if (file_exists($cachefile)) { $nextcheck = filemtime($cachefile) + $cachetime; } if (!file_exists($cachefile) || filemtime($cachefile) < time() - $cachetime) { $number = str_replace("!", "_", $parts[3]); $error = 200; // Default is: All OK if (!empty($idx_twitter)) { $search_twitter_uri = 'https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=' . $username . '&count=' . $number . '&trim_user=true'; if (!$show_rt) { $search_twitter_uri .= '&include_rts=false'; } if ($idx_twitter == '1') { $idx_twitter = ''; } // First cfg is saved with empty suffix! $connection = $this->twitteroa_connect($idx_twitter); $connection->decode_json = false; $response = $connection->get($search_twitter_uri); } else { if ($service == 'identi.ca') { $followme_url = 'http://identi.ca/' . $username; $status_url = 'http://identi.ca/notice/'; $JSONcallback = 'identicaCallback2'; $service_url = 'http://identi.ca/api'; $search_twitter_uri = $service_url . '/statuses/user_timeline/' . $username . '.json?count=' . $number; } else { $followme_url = 'https://twitter.com/' . $username; $service_url = 'https://twitter.com'; $status_url = 'https://twitter.com/' . $username . '/statuses/'; $JSONcallback = 'twitterCallback2'; $search_twitter_uri = 'https://api.twitter.com/1/statuses/user_timeline.json?screen_name=' . $username . '&count=' . $number; } serendipity_request_start(); $req = new HTTP_Request($search_twitter_uri); $req->sendRequest(); $response = trim($req->getResponseBody()); $error = $req->getResponseCode(); serendipity_request_end(); } $this->log("error: {$error}"); if ($error == 200 && !empty($response)) { $this->log("Writing response into cache."); $fp = fopen($cachefile, 'w'); fwrite($fp, serialize($response)); fflush($fp); fclose($fp); $nextcheck = time() + (int) $cachetime; $this->log("Writing response into cache. DONE"); } } return $nextcheck; }