From 4d80ef582eae06edd785db3d0e4bdf94d83cf537 Mon Sep 17 00:00:00 2001 From: emkael Date: Tue, 27 Dec 2016 14:37:42 +0100 Subject: * initial commit --- http/index.php | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 http/index.php (limited to 'http/index.php') diff --git a/http/index.php b/http/index.php new file mode 100644 index 0000000..cf2f636 --- /dev/null +++ b/http/index.php @@ -0,0 +1,108 @@ + strtotime('-15 minutes')) { + $content = json_decode(file_get_contents($cacheFile)); + } + else { + $content = $cb->statuses_userTimeline([ + 'screen_name' => $user, + 'count' => 200, + 'exclude_replies' => TRUE + ], TRUE); + if (isset($content->rate)) { + unset($content->rate); + } + file_put_contents($cacheFile, json_encode($content)); + $cacheTime = time(); + } + + if ($content->httpstatus !== 200) { + header('HTTP/1.1 '.$content->httpstatus); + if (isset($content->error)) { + print $content->error; + die(); + } + if (isset($content->errors)) { + foreach ($content->errors as $error) { + print $error->message.' ('.$error->code.')
'; + } + die(); + } + } + + unset($content->httpstatus); + + if ($spamFilter) { + $filteredContent = []; + foreach ($content as $c) { + $urls = array_map( + function($url) { + return $url->expanded_url; + }, + $c->entities->urls + ); + if (!$urls) { + $filteredContent[] = $c; + } else { + sort($urls); + $urlHash = md5(implode('|', $urls)); + $filteredContent[$urlHash] = $c; + } + } + usort($filteredContent, function($c1, $c2) { return strcmp($c1->id_str, $c2->id_str); }); + array_reverse($filteredContent); + $content = $filteredContent; + } + + require_once('smarty3/Smarty.class.php'); + + $smarty = new Smarty(); + $smarty->setCacheDir('cache/smarty'); + $smarty->setCompileDir('cache/smarty/compile'); + $smarty->setTemplateDir('templates'); + + $smarty->assign('cacheTime', $cacheTime); + $smarty->assign('user', $user); + $smarty->assign('content', $content); + + $format = $_GET['format']; + + switch ($format) { + case 'rss': + header('Content-Type: application/rss+xml'); + $smarty->display('rss.tpl'); + break; + case 'atom': + default: + header('Content-Type: application/atom+xml'); + $smarty->display('atom.tpl'); + break; + } + +} + +?> -- cgit v1.2.3