58 lines
1.5 KiB
PHP
58 lines
1.5 KiB
PHP
<?php
|
|
#require_once __DIR__ . '/../../bootstrap.php';
|
|
|
|
#confirm_setup();
|
|
|
|
#require_once CLASSES_DIR . '/Config.php';
|
|
#require_once LIB_DIR . '/ticks.php';
|
|
|
|
$config = Config::load();
|
|
$ticks = iterator_to_array(stream_ticks($config->itemsPerPage));
|
|
$siteTitle = htmlspecialchars($config->siteTitle);
|
|
$siteUrl = htmlspecialchars($config->baseUrl);
|
|
$basePath = $siteUrl . htmlspecialchars($config->basePath);
|
|
$updated = date(DATE_ATOM, strtotime($ticks[0]['timestamp'] ?? 'now'));
|
|
|
|
header('Content-Type: application/atom+xml; charset=utf-8');
|
|
|
|
echo <<<XML
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
<feed xmlns="http://www.w3.org/2005/Atom">
|
|
<title>{$siteTitle}</title>
|
|
<link href="{$siteUrl}atom" rel="self"/>
|
|
<link href="{$siteUrl}"/>
|
|
<updated>{$updated}</updated>
|
|
<id>{$siteUrl}</id>
|
|
<author>
|
|
<name>{$siteTitle}</name>
|
|
</author>
|
|
XML;
|
|
|
|
foreach ($ticks as $tick) {
|
|
[$date, $time] = explode(' ', $tick['timestamp']);
|
|
$dateParts = explode('-', $date);
|
|
$timeParts = explode(':', $time);
|
|
|
|
[$year, $month, $day] = $dateParts;
|
|
[$hour, $minute, $second] = $timeParts;
|
|
|
|
$tickPath = "$year/$month/$day/$hour/$minute/$second";
|
|
$tickUrl = htmlspecialchars($basePath . "tick.php?path=" . $tickPath);
|
|
$tickTime = date(DATE_ATOM, strtotime($tick['timestamp']));
|
|
$tickText = htmlspecialchars($tick['tick']);
|
|
|
|
|
|
echo <<<ENTRY
|
|
<entry>
|
|
<title>{$tickText}</title>
|
|
<link href="{$tickUrl}"/>
|
|
<id>{$tickUrl}</id>
|
|
<updated>{$tickTime}</updated>
|
|
<content type="html">{$tickText}</content>
|
|
</entry>
|
|
|
|
ENTRY;
|
|
}
|
|
|
|
echo "</feed>";
|