Stack2RSS 1.0
A simple web application that creates an RSS feed given an API route.
|
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 ?>