Stack2RSS 1.0
A simple web application that creates an RSS feed given an API route.

src/converters/post_timeline_converter.php

Go to the documentation of this file.
00001 <?php
00002 
00003 /// \file post_timeline_converter.php Contains the conversion class for post timeline objects.
00004 
00005 // This class derives from Converter
00006 require_once 'converter.php';
00007 
00008 /// Provides conversion for post timeline objects
00009 /**
00010  * An entry in the timeline can consist of the following types:
00011  * - <kbd>question</kbd>
00012  * - <kbd>answer</kbd>
00013  * - <kbd>comment</kbd>
00014  * - <kbd>revision</kbd>
00015  * - <kbd>votes</kbd>
00016  * - <kbd>state</kbd>
00017  * - <kbd>accepted</kbd>
00018  * - <kbd>unaccepted</kbd>
00019  */
00020 class PostTimelineConverter extends Converter
00021 {
00022     protected function GetTitle($json_item)
00023     {
00024         // Determine whether this action affects a question or answer
00025         $l_affects = ($json_item['question_id'] == $json_item['post_id'])?'question':'answer';
00026         $u_affects = ucwords($l_affects);
00027         
00028         switch($json_item['timeline_type'])
00029         {
00030             case 'question':   $event_desc = "Question asked by {$json_item['owner']['display_name']}."; break;
00031             case 'answer':     $event_desc = "Question answered by {$json_item['owner']['display_name']}."; break;
00032             case 'comment':    $event_desc = "{$json_item['owner']['display_name']}'s {$l_affects} commented on."; break;
00033             case 'revision':   $event_desc = "{$json_item['owner']['display_name']}'s {$l_affects} edited by {$json_item['user']['display_name']}."; break;
00034             case 'votes':      $event_desc = "{$u_affects} voted on."; break;
00035             case 'state':      $event_desc = "{$u_affects}'s state changed."; break;
00036             case 'accepted':   $event_desc = "{$json_item['owner']['display_name']}'s {$l_affects} accepted."; break;
00037             case 'unaccepted': $event_desc = "{$json_item['owner']['display_name']}'s {$l_affects} unaccepted."; break;
00038             default:           $event_desc = "[Unknown]"; break;
00039         }
00040         
00041         return $event_desc;
00042     }
00043     
00044     protected function GetDescription($json_item)
00045     {
00046         return '<i>No data.</i>';
00047     }
00048     
00049     protected function GetLink($json_item)
00050     {
00051         return "http://{$_GET['site']}/posts/{$json_item['post_id']}/revisions";
00052     }
00053     
00054     protected function GetDate($json_item)
00055     {
00056         return date(DATE_RSS, $json_item['creation_date']);
00057     }
00058 }
00059 
00060 ?>
 All Classes Files Functions Enumerations