RSS-Bridge_rss-bridge/bridges/ParksOnTheAirBridge.php

43 lines
1.2 KiB
PHP

<?php
class ParksOnTheAirBridge extends BridgeAbstract
{
const MAINTAINER = 's0lesurviv0r';
const NAME = 'Parks On The Air Spots';
const URI = 'https://pota.app/#';
const API_URI = 'https://api.pota.app/spot/activator';
const CACHE_TIMEOUT = 60; // 1m
const DESCRIPTION = 'Parks On The Air Activator Spots';
public function collectData()
{
$header = ['Content-type:application/json'];
$opts = [CURLOPT_HTTPGET => 1];
$json = getContents(self::API_URI, $header, $opts);
$spots = json_decode($json, true);
foreach ($spots as $spot) {
$title = $spot['activator'] . ' @ ' . $spot['reference'] . ' ' .
$spot['frequency'] . ' kHz';
$park_link = self::URI . '/park/' . $spot['reference'];
$content = <<<EOL
<a href="{$park_link}">
{$spot['reference']}, {$spot['name']}</a><br />
Location: {$spot['locationDesc']}<br />
Frequency: {$spot['frequency']} kHz<br />
Spotter: {$spot['spotter']}<br />
Comments: {$spot['comments']}
EOL;
$this->items[] = [
'uri' => $park_link,
'title' => $title,
'content' => $content,
'timestamp' => $spot['spotTime']
];
}
}
}