<?php
// Created 2007 by <andi@saerdnaer.de>
// Licenced under GPLv2

$title '24c3 Recordings';
$url 'http://video.congress.ccc.de/official_recordings/matroska/';
$description '';
$lang 'de';

function 
remove_comments($text)
{
    return 
preg_replace('#<!--(.+?)-->#is'''$text);
}


$file implode(''file($url));

if ( !
preg_match('#<tbody>\s+<tr>(?:.+?)</tr>\s+(.+?)\s+</tbody>#is'$file$regs) )
    die(
'No match!');
$block $regs[1];
//echo $block;
$block remove_comments($block);
if ( !
preg_match_all('#<tr>(?:.*?)<a href="(.+?)">\1</a>(?:.*?)</td>\s*<td(?:.*?)>\s*([^><]+)\s*</td>\s*<td(?:.*?)>\s*([^><]+)\s*([bkmgt])b?\s*</td>\s*<td(?:.*?)>\s*([^><]+)\s*</td>(?:.*?)</tr>#is'$block$regs))
    die(
'No entry matches!');
//echo '<pre>'; var_dump($regs); echo '</pre>';

header('Content-Type: application/rss+xml; charset=utf-8');
echo 
'<?xml version="1.0"?>
<rss version="2.0">
    <channel>
        <title>' 
$title '</title>
        <link>' 
$url '</link>
        <description>' 
$description '</description>
        <language>' 
$lang '</language>
        <pubDate>' 
date('r') . '</pubDate>
'

/* <lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate> */
$size_suffixes = array ( 'b' => 1'k' => 1024'm' => 1024*1024'g' => 1024*1024*1024't' => 1024*1024*1024*1024 );

for ( 
$i = (count($regs[0])-1); $i >= 0$i-- )
{
    
$item_title $regs[1][$i];
    
$item_link $url $regs[1][$i];
    
$item_description '';
    
$item_date date('r'strtotime($regs[2][$i]));
    
$item_guid $item_link;
    
    
$item_length ceil(floatval($regs[3][$i]) * $size_suffixes[strtolower($regs[4][$i])]);
    
$item_type $regs[5][$i];
    
    echo 
'
        <item>
            <title>' 
$item_title '</title>
            <link>' 
$item_link '</link>
            <description>' 
$item_description '</description>
            <pubDate>' 
$item_date '</pubDate>
            <guid>' 
$item_guid '</guid>
            <enclosure url="' 
$item_link '" length="' $item_length '" type="' $item_type '" />
        </item>'
;
}
echo 
'
    </channel>
</rss>
'
;
?>