mirror of https://github.com/danoloan10/rss-bridge
Compare commits
2 Commits
431f8555e2
...
9c99e85a62
Author | SHA1 | Date |
---|---|---|
danoloan10 | 9c99e85a62 | |
danoloan10 | 2a0245b652 |
|
@ -0,0 +1,60 @@
|
|||
<?php
|
||||
|
||||
class PicaroBridge extends BridgeAbstract {
|
||||
const NAME = 'Sala Pícaro';
|
||||
const URI = 'https://sala.picarotoledo.com/agenda/';
|
||||
const DESCRIPTION = 'Concerts in Sala Pícaro, Toledo (Spain)';
|
||||
const MAINTAINER = 'danoloan';
|
||||
const PARAMETERS = array(); // Can be omitted!
|
||||
const CACHE_TIMEOUT = 1;
|
||||
|
||||
private function eventToItem($node) : Event {
|
||||
$event_date = $node->find('.mec-start-date-label', 0);
|
||||
$event_time = $node->find('.mec-start-time', 0);
|
||||
$event_title = $node->find('.mec-event-title', 0);
|
||||
|
||||
$date = $event_date->innertext . ' ' . strftime("%Y");
|
||||
$time = $event_time->innertext;
|
||||
$title = $event_title->find('a', 0)->innertext;
|
||||
$link = $event_title->find('a', 0)->href;
|
||||
|
||||
$date = str_replace("enero", "january", $date);
|
||||
$date = str_replace("febrero", "february", $date);
|
||||
$date = str_replace("marzo", "march", $date);
|
||||
$date = str_replace("abril", "april", $date);
|
||||
$date = str_replace("mayo", "may", $date);
|
||||
$date = str_replace("junio", "june", $date);
|
||||
$date = str_replace("julio", "july", $date);
|
||||
$date = str_replace("agosto", "august", $date);
|
||||
$date = str_replace("septiembre", "september", $date);
|
||||
$date = str_replace("octubre", "october", $date);
|
||||
$date = str_replace("noviembre", "november", $date);
|
||||
$date = str_replace("diciembre", "december", $date);
|
||||
|
||||
$event = new \Event();
|
||||
$event->timezone = "Europe/Madrid";
|
||||
$event->uid = $link;
|
||||
$event->stamp = time();
|
||||
$event->start = strtotime($date) + strtotime($time, 0);
|
||||
$event->end = $event->start + 3600*2;
|
||||
$event->summary = $title;
|
||||
$event->fill = false;
|
||||
|
||||
return $event;
|
||||
}
|
||||
|
||||
private function getEventItems() : array {
|
||||
$page = 0;
|
||||
$events = array();
|
||||
$html = getSimpleHTMLDOM(self::URI);
|
||||
foreach ($html->find('.mec-event-article') as $node) {
|
||||
$event = $this->eventToItem($node);
|
||||
$events[] = $event;
|
||||
}
|
||||
return $events;
|
||||
}
|
||||
|
||||
public function collectData() {
|
||||
$this->events = array_merge($this->items, $this->getEventItems());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
<?php
|
||||
|
||||
class RivieraBridge extends BridgeAbstract {
|
||||
const NAME = 'Sala La Riviera';
|
||||
const URI = 'https://salariviera.com/conciertossalariviera/';
|
||||
const DESCRIPTION = 'Concerts in Sala La Riviera, Madrid';
|
||||
const MAINTAINER = 'danoloan';
|
||||
const PARAMETERS = array(); // Can be omitted!
|
||||
const CACHE_TIMEOUT = 1;
|
||||
|
||||
private function eventToItem($node) : Event {
|
||||
$event_date = $node->find('.ecs-eventDate', 0);
|
||||
$event_time = $node->find('.ecs-eventTime .decm_time', 0);
|
||||
$event_title = $node->find('.entry-title', 0);
|
||||
$event_status_wrapper = $node->find('.event-status-wrapper', 0);
|
||||
|
||||
$date = $event_date->plaintext;
|
||||
$time = $event_time->plaintext;
|
||||
$title = $event_title->find('a', 0)->plaintext;
|
||||
$link = $event_title->find('a', 0)->href;
|
||||
|
||||
$time = str_replace(" ", "", $time);
|
||||
$date = str_replace("de ", "", $date);
|
||||
$date = str_replace("enero", "january", $date);
|
||||
$date = str_replace("febrero", "february", $date);
|
||||
$date = str_replace("marzo", "march", $date);
|
||||
$date = str_replace("abril", "april", $date);
|
||||
$date = str_replace("mayo", "may", $date);
|
||||
$date = str_replace("junio", "june", $date);
|
||||
$date = str_replace("julio", "july", $date);
|
||||
$date = str_replace("agosto", "august", $date);
|
||||
$date = str_replace("septiembre", "september", $date);
|
||||
$date = str_replace("octubre", "october", $date);
|
||||
$date = str_replace("noviembre", "november", $date);
|
||||
$date = str_replace("diciembre", "december", $date);
|
||||
|
||||
$event = new \Event();
|
||||
$event->uid = $link;
|
||||
$event->stamp = time();
|
||||
$event->summary = $title;
|
||||
$event->fill = false;
|
||||
|
||||
if(!preg_match("/PM/", $time)) {
|
||||
$event->start = strtotime($date);
|
||||
$event->end = strtotime($date) + (24*3600);
|
||||
} else {
|
||||
$event->start = strtotime($date." ".$time);
|
||||
$event->end = strtotime($date." ".$time) + (2*3600);
|
||||
}
|
||||
|
||||
return $event;
|
||||
}
|
||||
|
||||
private function getEventItems() : array {
|
||||
$events = array();
|
||||
|
||||
$html = getSimpleHTMLDOM(self::URI);
|
||||
$month = '';
|
||||
|
||||
foreach ($html->find('.ecs-event') as $node) {
|
||||
$event = $this->eventToItem($node);
|
||||
$events[] = $event;
|
||||
}
|
||||
|
||||
return array_reverse($events);
|
||||
}
|
||||
|
||||
public function collectData() {
|
||||
$this->events = array_merge($this->items, $this->getEventItems());
|
||||
}
|
||||
}
|
|
@ -102,7 +102,9 @@ class Calendar {
|
|||
!isset($eventParts['DTEND']) ||
|
||||
!isset($eventParts['SUMMARY']))
|
||||
{
|
||||
throw new Exception(implode(', ', $eventParts));
|
||||
$return = [];
|
||||
foreach ($eventParts as $tk => $tv) $return[] = $tk.": ".$tv;
|
||||
throw new Exception(implode(', ', $return));
|
||||
}
|
||||
|
||||
// add event parts to return string
|
||||
|
|
Loading…
Reference in New Issue