Skip to content

Commit

Permalink
New Bridge for Ticket.io
Browse files Browse the repository at this point in the history
  • Loading branch information
SebLaus committed Nov 24, 2024
1 parent bd9a792 commit 8899164
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions bridges/TicketioBridge.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?php

class TicketioBridge extends BridgeAbstract
{
const NAME = 'Ticket.io Bridge';
const DESCRIPTION = 'Provides updates for available events in a specific ticketshop on ticket.io';
const MAINTAINER = 'SebLaus';
const CACHE_TIMEOUT = 60*60*12; // 12 hours
const PARAMETERS = [
[
'Link' => [
'name' => 'Link to Ticketpage',
'required' => true,
'exampleValue' => 'https://gotogotec.ticket.io'
]
]
];

public function collectData() {
$html = getSimpleHTMLDOM($this->getInput('Link'));

if (!$html) {
returnServerError('Could not retrieve website content.');
}

// Find all event rows
$eventRows = $html->find('tr.container');

foreach ($eventRows as $eventRow) {
// Get the event name
$eventName = $eventRow->find('a.a-eventlink', 0)->plaintext;

// Reduce eventName length if too long
if(strlen($eventName) > 35) {
$eventName = substr($eventName,0,35);
}

// Find the list item containing the date
$dateElement = $eventRow->find('ul.fa-ul li span', 1); // Second <span> inside the list item

// Check if the date element is found
if ($dateElement) {
$eventDate = $dateElement->plaintext;
} else {
$eventDate = 'Date not found';
}

// Build title out of Name and Date
$eventTitle = $eventName . ' - ' . $eventDate;

// Link to the event page
$eventLink = $this->getInput('Link') . $eventRow->find('a.a-eventlink', 0)->href;

// Create a feed item with the title and link
$item = [];
$item['title'] = $eventTitle;
$item['uri'] = $eventLink;
$item['content'] = "<p><a href='$eventLink'>More details</a></p>";

$this->items[] = $item;
}
}
}

0 comments on commit 8899164

Please sign in to comment.