$entity){ $mapping[$entity] = '&#' . ord($char) . ';'; } return str_replace(array_keys($mapping), $mapping, $string); } function Excerpt( $excerpt ) { $excerpt = strip_tags( $excerpt ); if (strlen($excerpt) > 455) { $excerpt = substr($excerpt,0,452) . '...'; } return $excerpt; } function datesort( $a , $b ) { if( $a->udate == $b->udate ) return 0; return( $a->udate > $b->udate ) ? -1 : 1; } function utfentities($string) { return htmlentities($string, ENT_COMPAT, 'UTF-8'); } function _query( $s, $byid = false ) { global $link; $r = mysqli_query($link, $s ) or die( mysqli_error($link) ); $ret=array(); $i=0; if( $byid ) { while ($row = mysqli_fetch_object($r) ) $ret[$row->id] = $row; } else { while ($row = mysqli_fetch_object($r) ) $ret[$i++] = $row; } return $ret; } @$f_title = $type = $_GET['type']; $f_items = array(); $f_desc = 'News and Comics from Megatokyo.'; /*if( $type == 'status' or $type == '') { // Status Box Updates $f_title = 'Megatokyo Status Updates'; $s = _query( "SELECT MAX(id)+1 as m FROM strip" ); // Permalinks to strips? $s = _query( "SELECT DISTINCT SUBTIME( published, eta ) as dd, UNIX_TIMESTAMP(published) as udate, text, UNIX_TIMESTAMP(eta) as eta, percentage FROM status s ORDER BY udate DESC LIMIT 5"); foreach( $s as $k=>$v ) { $s[$k]->link = 'http://www.megatokyo.com/'; $s[$k]->title = "Update: $v->percentage%: " . htmlentities($v->text, ENT_COMPAT, ini_get('default_charset')); $d = date( 'l F jS, H:i', $v->eta ); $dd = (int) (( $v->eta - $v->udate )/3600); $s[$k]->desc = "$v->percentage% complete.
Next comic should be posted at: $d. ($dd hours)]]>"; $s[$k]->date = date( DATE_RFC822, $v->udate ); $s[$k]->guid = $s[$k]->link; } $f_items = array_merge( $f_items, $s ); }*/ if( $type == 'strips' or $type == '') { $f_title = 'Megatokyo Comics'; $s = _query("SELECT DISTINCT s.id, UNIX_TIMESTAMP(s.published) as udate, t.description as chapdesc, t.name as chapname, s.title FROM media_t media, strip s, strip_t t WHERE s.media = media.id AND s.published < NOW() AND s.type = t.id ORDER BY s.id DESC LIMIT 5") or die(mysqli_error($link)); foreach($s as $k=>$v) { $s[$k]->link = SITE_HOST . SITE_PATH . "/strip/$v->id"; #$s[$k]->title = "Comic [$v->id] \"" . utfentities($v->title, ENT_COMPAT, ini_get('default_charset')) . '"'; $s[$k]->title = "Comic [$v->id] \"" . numeric_entities(utfentities($v->title)) . '"'; $s[$k]->desc = "chapdesc comic $v->id
[read...]
[link . "\">permalink] ]]>"; $s[$k]->date = date( DATE_RSS, $v->udate ); $s[$k]->guid = $s[$k]->link; $s[$k]->perm = 'true'; } $f_items = array_merge( $f_items, $s ); } if( $type == 'rants' or $type == '' ) { $f_title = 'Megatokyo Rants'; $contributers = _query("SELECT * FROM contributor", true); $s = _query("SELECT r.id, r.body as body, UNIX_TIMESTAMP(r.published) as udate, r.author as authorno, r.title FROM rant r WHERE r.published < NOW() AND r.status = 'published' ORDER BY udate DESC LIMIT 5"); foreach($s as $k=>$v) { $s[$k]->link = SITE_HOST . SITE_PATH . "/rant/$v->id"; $s[$k]->author = utfentities( $contributers[$v->authorno]->name, ENT_COMPAT, ini_get('default_charset') ); $s[$k]->title = "Rant [$v->id] \"" . utfentities($v->title, ENT_COMPAT, ini_get('default_charset')) . '"'; $s[$k]->desc = "body) . "

[link . "\">permalink]

]]>"; $s[$k]->date = date( DATE_RSS, $v->udate ); $s[$k]->guid = $s[$k]->link; $s[$k]->perm = 'true'; } $f_items = array_merge( $f_items, $s ); } if( $type == '' ) { $f_title = 'Megatokyo Comics and News'; $s = _query("SELECT UNIX_TIMESTAMP(published) as udate, body, url FROM rss_comment ORDER BY published DESC LIMIT 5"); foreach($s as $k=>$v) { $s[$k]->link = $v->url; $s[$k]->title = $v->body; $s[$k]->date = date( DATE_RSS, $v->udate ); $s[$k]->guid = date( DATE_W3C, $s[$k]->udate); $s[$k]->desc = ''; $s[$k]->perm = 'false'; } $f_items = array_merge( $f_items, $s ); } usort( $f_items, 'datesort' ); $f_date = $f_items[0]->date; $rfc1123_date = gmdate( 'D, d M Y H:i:s ', $f_items[0]->udate ) . 'GMT'; $etag = md5( $rfc1123_date ); /* Conditional Get */ header( "Last-Modified: $rfc1123_date" ); header( "ETag: \"$etag\""); if( isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && $_SERVER['HTTP_IF_MODIFIED_SINCE'] == $rfc1123_date ) { header('HTTP/1.0 304 Not Modified'); exit; } if( isset($_SERVER['HTTP_IF_NONE_MATCH']) && $_SERVER['HTTP_IF_NONE_MATCH'] == $etag ) { header('HTTP/1.0 304 Not Modified'); exit; } header("XX-Powered-By: Nikuman"); header("Content-Type: application/rss+xml;charset=utf-8"); echo '', "\n"; ?> <?php echo $f_title; ?> http://www.megatokyo.com en-us Fred Gallagher piro@megatokyo.com (Fred Gallagher) 15 <?php echo $v->title; ?> link; ?> desc; ?> guid; ?> date; ?>