$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'; $comic_query = 'SELECT s.id, UNIX_TIMESTAMP(s.published) as udate, t.description as chapdesc, t.name as chapname, s.title FROM strip s JOIN strip_t ON s.type = t.id WHERE s.published <= NOW() ORDER BY s.id DESC LIMIT 5'; $s = _query($comic_query) 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] \"" . 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'; $rant_query = 'SELECT r.id, r.body, UNIX_TIMESTAMP(r.published) as udate, c.name, r.title FROM rant r JOIN contributor c ON r.author = c.id WHERE r.published <= NOW() AND r.status = "published" ORDER BY udate DESC LIMIT 5'; $s = _query($rant_query) or die(mysqli_error($link)); foreach($s as $k => $v) { $s[$k]->link = SITE_HOST . SITE_PATH . "/rant/$v->id"; $s[$k]->author = utfentities($v->name); $s[$k]->title = "Rant [$v->id] \"" . utfentities($v->title) . '"'; $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; ?> https://megatokyo.com en-us Fred Gallagher piro@megatokyo.com (Fred Gallagher) http://cyber.harvard.edu/rss/rss.html 15 0) foreach ($f_items as $v) { ?> <?php echo $v->title; ?> link; ?> desc; ?> guid; ?> date; ?>