#!/usr/bin/env php <?php // http://www.cafeoto.co.uk/programme.shtm // http://www.timeout.com/london/venue/14759/cafe_oto.html // http://www.remotegoat.co.uk/venue_view.php?uid=25219 require __DIR_ . '/../main.inc.php'; $calendar_name = 'cafe OTO'; $xml = url_html_xml('http://www.cafeoto.co.uk/programme.shtm'); //$xml = url_html_xml('files/test.html'); $rows = $xml->xpath('//td[@id="maincontent"]/table/tr'); array_shift($rows); // header $events = array(); foreach ($rows as $row) { $start = fix_oto_date((string) $row->td[1]->p[1]); if (!$start) { continue; } $end = $start + 60 * 60 * 3; // 3hr $thumbnail = first($row->xpath('td[@id="progpics"]/a')); $info = first($row->xpath('td[@id="programme"]')); $summary = (string) first($info->xpath('p[@class="bandname"]')); //printf("\n===\n%s\n===\n", $summary); $description = $info; unset($description->p[0]); unset($description->br); $events[] = array('start' => $start, 'end' => $end, 'uri' => make_link($thumbnail['href']), 'image' => make_link($thumbnail->img['src']), 'summary' => strip_tags($summary), 'description' => strip_tags($description->asXML()), 'location' => $calendar_name); } ical($calendar_name, $events); function fix_oto_date($input)
<?php require __DIR_ . '/../main.inc.php'; $params = array('dsd' => $date['mday'], 'dsm' => $date['mon'], 'dsy' => $date['year'], 'ded' => $date['mday'], 'dem' => $date['mon'], 'dey' => $date['year'], 'gal' => $gal, 'view' => 'illustrated'); $url = 'http://www.tate.org.uk/calendar/calendar.jsp?' . http_build_query($params); $xml = url_html_xml($url); //$xml = url_html_xml('files/tate.html'); $rows = $xml->xpath('//div[@id="results"]/div/table/tr[@class="resultrow"]'); $events = array(); foreach ($rows as $row) { $date_span = $row->td[0]->span[1]->span; $start = sscanf((string) $date_span->span[0], '%d.%d'); $end = sscanf((string) $date_span->span[1], '%d.%d'); $info = first($row->xpath('td[@class="resultsinfo"]')); $thumbnail = first($info->xpath('div[@class="resultsthumbnail"]/a')); $summary = first($info->xpath('div[@class="resultstitle"]/strong/a/span')); $description = first($info->xpath('div[@class="resultsdesc"]/span/span')); $events[] = array('start' => gmmktime($start[0], $start[1], 0, $date['mon'], $date['mday'], $date['year']), 'end' => gmmktime($end[0], $end[1], 0, $date['mon'], $date['mday'], $date['year']), 'uri' => make_link($thumbnail['href']), 'image' => make_link($thumbnail->img['src']), 'summary' => (string) $summary, 'description' => (string) $description, 'location' => $calendar_name); } ical($calendar_name, $events);
#!/usr/bin/env php <?php // http://www.cafeoto.co.uk/programme.shtm // http://www.timeout.com/london/venue/14759/cafe_oto.html // http://www.remotegoat.co.uk/venue_view.php?uid=25219 require __DIR_ . '/../main.inc.php'; $calendar_name = 'Southbank Centre'; $xml = url_html_xml('http://www.southbankcentre.co.uk/all-events?action=calendar&calendar_selected=2009-01-13'); //$xml = url_html_xml('../files/test.html'); $rows = $xml->xpath('//div[@id="col1"]/div[@class="list"]'); $events = array(); foreach ($rows as $row) { $thumbnail = first($row->xpath('a[@class="noA"]')); $info = $row->div[0]; $datetime = (string) first($info->xpath('*[@class="datetime"]')); list($start, $end) = array_map('strtotime', explode(' - ', $datetime)); $summary = (string) $info->h4; $description = (string) first($info->xpath('*[@class="info2"]')); $venue = (string) first($info->xpath('*[@class="venue"]')); $price = first($info->xpath('*[@class="price"]')); //printf("\n===\n%s\n===\n", $summary); $events[] = array('start' => $start, 'end' => $end, 'uri' => make_link($thumbnail['href']), 'image' => make_link($thumbnail->img['src']), 'summary' => strip_tags($summary), 'description' => strip_tags($description), 'location' => $venue ? $venue : $calendar_name); } ical($calendar_name, $events);