summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--http/index.php2
-rw-r--r--providers/Provider.php6
-rw-r--r--providers/Twitter.php10
-rw-r--r--templates/atom.tpl4
-rw-r--r--templates/rss.tpl6
5 files changed, 20 insertions, 8 deletions
diff --git a/http/index.php b/http/index.php
index 0c7ad7a..17613e9 100644
--- a/http/index.php
+++ b/http/index.php
@@ -34,6 +34,8 @@ $smarty->setCacheDir('../cache/smarty');
$smarty->setCompileDir('../cache/smarty/compile');
$smarty->setTemplateDir('../templates');
+$smarty->assign('feedID', 'http://rss.emkael.info'.$_SERVER['REQUEST_URI']);
+$smarty->assign('feedTitle', $provider->title());
$smarty->assign('cacheTime', $provider->cacheTime());
$smarty->assign('user', $feed);
$smarty->assign('content', $provider->get());
diff --git a/providers/Provider.php b/providers/Provider.php
index 0c3f344..02031ad 100644
--- a/providers/Provider.php
+++ b/providers/Provider.php
@@ -24,6 +24,8 @@ abstract class Provider {
abstract protected function _spamFilter($items);
+ abstract protected function _sortContent($content);
+
protected function _getItems() {
$cacheFile = sprintf($this->_getCachePath(), $this->_feed);
$this->_cacheTime = file_exists($cacheFile) ? filemtime($cacheFile) : 0;
@@ -42,13 +44,15 @@ abstract class Provider {
if (isset($this->_options['spamfilter'])) {
$items = $this->_spamFilter($items);
}
- return $items;
+ return $this->_sortContent($items);
}
public function cacheTime() {
return $this->_cacheTime;
}
+ abstract public function title();
+
}
?>
diff --git a/providers/Twitter.php b/providers/Twitter.php
index 868bb28..e9b98e1 100644
--- a/providers/Twitter.php
+++ b/providers/Twitter.php
@@ -97,7 +97,6 @@ class Twitter extends \Providers\Provider {
}
}
}
- usort($filteredContent, function($c1, $c2) { return strcmp($c1->id_str, $c2->id_str); });
$content = $filteredContent;
if ($spamHashes) {
foreach ($spamHashes as $hash) {
@@ -112,6 +111,15 @@ class Twitter extends \Providers\Provider {
return $content;
}
+ protected function _sortContent($content) {
+ usort($content, function($c1, $c2) { return strcmp($c2->id_str, $c1->id_str); });
+ return $content;
+ }
+
+ public function title() {
+ return sprintf("%s's timeline", $this->_feed);
+ }
+
}
?>
diff --git a/templates/atom.tpl b/templates/atom.tpl
index e7e28f5..df4a762 100644
--- a/templates/atom.tpl
+++ b/templates/atom.tpl
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
- <title>{$user}'s timeline</title>
+ <title>{$feedTitle}</title>
<link href="https://twitter.com/{$user}" />
- <id>http://emkael.info/tulz/twitterRSS/{$user}</id>
+ <id>{$feedID}</id>
<updated>{$cacheTime|date_format:"c"}</updated>
{foreach from=$content item=item}
<entry>
diff --git a/templates/rss.tpl b/templates/rss.tpl
index f95a462..03ea30b 100644
--- a/templates/rss.tpl
+++ b/templates/rss.tpl
@@ -1,16 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
- <title>{$user}'s timeline</title>
+ <title>{$feedTitle}</title>
<link>https://twitter.com/{$user}</link>
<lastBuildDate>{$cacheTime|date_format:"D, d M Y H:i:s O"}</lastBuildDate>
{foreach from=$content item=item}
<item>
<title>{$item->text|escape}</title>
<link>https://twitter.com/{$user}/status/{$item->id_str}</link>
- {if isset($item->user)}
- <guid>http://emkael.info/tulz/twitterRSS/{$item->user->id_str}/{$item->id_str}</guid>
- {/if}
+ <guid>{$feedID}/{$item->id_str}</guid>
<description><![CDATA[ {$item->text|escape} ]]></description>
<pubDate>{$item->created_at|date_format:"D, d M Y H:i:s O"}</pubDate>
</item>