<?php
require_once('tropehandle.php');
require_once('ptitle.php');
function spaced($word) {

  $SpaceWikiWordsString = ' ';
  $SpaceWikiWordsString = ' ';
  $word = str_replace('_',$SpaceWikiWordsString,$word);
  $word = preg_replace("/([[:lower:]\\d])([[:upper:]])/",
    '$1'.$SpaceWikiWordsString.'$2',$word);
 $word = preg_replace("/(\\d+( |\$))/",$SpaceWikiWordsString.'$1',$word);
  return preg_replace("/([[:upper:]])([[:upper:]][[:lower:]\\d])/",
    '$1'.$SpaceWikiWordsString.'$2',$word);
}
class feeditem{

	var $title;
	var $groupname;
	var $link;
	var $changetype;
	var $description;
	var $pubDate;
	function feeditem( $aRow ){

		$entryparts = preg_split('/\./', $aRow['entry'] );
		$this->groupname=$entryparts[0];
		$this->title = $entryparts[1];
		$this->link = "http://tvtropes.org/pmwiki/pmwiki.php/"
			.$entryparts[0]."/".$entryparts[1];
		$this->changetype = $aRow['changetype'];
		$this->description = htmlspecialchars($aRow['blurb']);
		$this->pubDate = $this->itemdateformat( $aRow['date'] );
	}
	function itemdateformat( $dbDatetime ){
								date_default_timezone_set('America/Los_Angeles');
        return strftime('%a, %d %b %Y %H:%M:%S %z', strtotime( $dbDatetime) );
	}
	function toString(){

        $pagetitletext = spaced($this->title);
		if(preg_match('/(.*?)ptitle(.*)/i',$this->title, $m)){
			$pt = new ptitle($m[2]);
			$pagetitletext = $pt->punctuated;
		}
		return "<item>"
		."<title>"
		    .($this->groupname!='Main'?"$this->groupname: ":"")
			.$pagetitletext
		."</title>"
		."<link>"
		    .$this->link
		."</link>"
		."<description>"
		    .$this->description
		."..."
		."</description>"
		."<pubDate>"
		    .$this->pubDate
		."</pubDate>"
		."</item>";

	}
}
function updatefeed(){

	date_default_timezone_set('America/Los_Angeles');

	$changes = "<rss version=\"2.0\"><channel>"
	."<title>Television Tropes &amp; Idioms - Recent Changes</title>"
	."<link>http://tvtropes.org/pmwiki/changes.php</link>"
	."<description>Recent changes to tropes entries.</description>"
	."<lastBuildDate>"
		. strftime('%a, %d %b %Y %H:%M:%S %z')
	."</lastBuildDate>"
	."<generator>tropechanges .50</generator>";
	$db = new tropehandle();
	$sql="select * from revision use index (bydate) "
	."where mode!='draft' order by date desc limit 200 ";
	$result = $db->h->sql_query($sql);
	while ($myrow = $db->h->sql_fetchrow($result) ){
		$item = new feeditem($myrow);
		if($item->changetype=='major'
		and strpos($item->title,'Discussion' )===false )
			$changes .= $item->toString();
	}
	$db->h->sql_close();
	$changes .= "</channel></rss>";
	return $changes;
}
echo updatefeed();
?>

