[ParksOnTheAir] New bridge for amateur radio (#2086)

This commit is contained in:
Jacob Zelek 2022-04-01 11:17:00 -07:00 committed by GitHub
parent 73cc791ce1
commit 40a4e7b7c2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,39 @@
<?php
class ParksOnTheAirBridge extends BridgeAbstract {
const MAINTAINER = 's0lesurviv0r';
const NAME = 'Parks On The Air Spots';
const URI = 'https://api.pota.app/spot/activator';
const CACHE_TIMEOUT = 60; // 1m
const DESCRIPTION = 'Parks On The Air Activator Spots';
public function collectData() {
$header = array('Content-type:application/json');
$opts = array(CURLOPT_HTTPGET => 1);
$json = getContents($this->getURI(), $header, $opts);
$spots = json_decode($json, true);
foreach ($spots as $spot) {
$title = $spot['activator'] . ' @ ' . $spot['reference'] . ' ' .
$spot['frequency'] . ' kHz';
$content = <<<EOL
<a href="https://pota.us/#/parks/{$spot['reference']}">
{$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[] = array(
'uri' => 'https://pota.us/#/',
'title' => $title,
'content' => $content,
'timestamp' => $spot['spotTime']
);
}
}
}