part of #6: atom feed for recently updated pastes
authorChristian Weiske <cweiske@cweiske.de>
Thu, 25 Oct 2012 05:48:26 +0000 (07:48 +0200)
committerChristian Weiske <cweiske@cweiske.de>
Thu, 25 Oct 2012 05:48:26 +0000 (07:48 +0200)
README.rst
data/templates/feed-updated.htm [new file with mode: 0644]
data/templates/list.htm
www/.htaccess
www/feed-updated.php [new file with mode: 0644]

index 255de2a7e3cbdd196fa4bc65f7f9d9693c39582e..ede03d0ba3ba1f824cec3d6321de983380ac9722 100644 (file)
@@ -284,6 +284,7 @@ If you use nginx, place the following lines into your ``server`` block:
 
     rewrite ^/new$ /new.php;
     rewrite ^/feed/new$ /feed-new.php;
 
     rewrite ^/new$ /new.php;
     rewrite ^/feed/new$ /feed-new.php;
+    rewrite ^/feed/updated$ /feed-updated.php;
     rewrite ^/list$ /list.php;
     rewrite ^/list/([0-9]+)$ /list.php?page=$1;
 
     rewrite ^/list$ /list.php;
     rewrite ^/list/([0-9]+)$ /list.php?page=$1;
 
diff --git a/data/templates/feed-updated.htm b/data/templates/feed-updated.htm
new file mode 100644 (file)
index 0000000..699dabd
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <title>{{title}}: Updated pastes</title>
+ <link href="{{url}}"/>
+ <link rel="self" href="{{feedurl}}"/>
+ <id>{{url}}</id>
+{% set repo = pastes.repos.0 %}
+ <updated>{{repo.modate|date('c')}}</updated>
+
+{% for repo in pastes.repos %}
+ <entry>
+  <id>{{repo.getLink('display', null, true)}}</id>
+  <title>{{repo.getTitle}}</title>
+  <published>{{repo.crdate|date('c')}}</published>
+  <updated>{{repo.modate|date('c')}}</updated>
+  <link rel="alternate" type="text/html" href="{{repo.getLink('display', null, true)}}" />
+  <author>
+   {% set owner=repo.getOwner() %}
+   <name>{{owner.name}}</name>
+   <email>{{owner.email}}</email>
+  </author>
+ </entry>
+{% endfor %}
+</feed>
\ No newline at end of file
index ac3d664ee15902f645c2c102f51082686d65a07e..c9768ff6d44730f3b2b77aaaaabaaf57d1df6766 100644 (file)
@@ -3,6 +3,7 @@
 
 {% block meta %}
  <link rel="alternate" type="application/atom+xml" title="New pastes" href="feed/new" />
 
 {% block meta %}
  <link rel="alternate" type="application/atom+xml" title="New pastes" href="feed/new" />
+ <link rel="alternate" type="application/atom+xml" title="Updated pastes" href="feed/updated" />
 {% endblock %}
 
 {% block content %}
 {% endblock %}
 
 {% block content %}
index d18aa3496b2107cd31626dc0a4cbfa39bf37f31e..f3dc26742963a7d0f6fe86b8970845c2e50de5b0 100644 (file)
@@ -17,6 +17,7 @@ RewriteRule ^fork-remote$ /fork-remote.php
 RewriteRule ^new$ /new.php
 
 RewriteRule ^feed/new$ /feed-new.php
 RewriteRule ^new$ /new.php
 
 RewriteRule ^feed/new$ /feed-new.php
+RewriteRule ^feed/updated$ /feed-updated.php
 
 RewriteRule ^list$ /list.php
 RewriteRule ^list/([0-9]+)$ /list.php?page=$1
 
 RewriteRule ^list$ /list.php
 RewriteRule ^list/([0-9]+)$ /list.php?page=$1
diff --git a/www/feed-updated.php b/www/feed-updated.php
new file mode 100644 (file)
index 0000000..679a5d7
--- /dev/null
@@ -0,0 +1,19 @@
+<?php
+/**
+ * Generate an atom feed with the 10 most recently updated pastes
+ */
+namespace phorkie;
+$reqWritePermissions = false;
+require_once 'www-header.php';
+
+$db = new Database();
+header('Content-Type: application/atom+xml');
+render(
+    'feed-updated',
+    array(
+        'pastes'  => $db->getSearch()->listAll(0, 10, 'modate', 'desc'),
+        'url'     => Tools::fullUrl('/'),
+        'feedurl' => Tools::fullUrl('/feed/updated'),
+    )
+);
+?>