2025-09-09 12:07:53 +02:00
|
|
|
<?php
|
|
|
|
|
|
2025-09-16 12:05:35 +02:00
|
|
|
namespace davina\sources;
|
2025-09-09 12:07:53 +02:00
|
|
|
|
2025-09-16 12:48:45 +02:00
|
|
|
require_once(DIR_LOGIC . '/sources/ics_feed.php');
|
2025-09-09 12:07:53 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*/
|
|
|
|
|
function make(
|
2025-09-21 13:27:37 +02:00
|
|
|
string $kind,
|
|
|
|
|
$data
|
2025-09-09 12:07:53 +02:00
|
|
|
) : interface_source
|
|
|
|
|
{
|
2025-09-21 13:27:37 +02:00
|
|
|
switch ($kind)
|
2025-09-09 12:07:53 +02:00
|
|
|
{
|
|
|
|
|
case 'ics_feed':
|
|
|
|
|
{
|
2025-09-09 23:17:19 +02:00
|
|
|
return (
|
|
|
|
|
new class_source_ics_feed(
|
2025-09-21 13:27:37 +02:00
|
|
|
$data['url'],
|
|
|
|
|
($data['lifetime'] ?? (60 * 15)),
|
|
|
|
|
($data['combine'] ?? false)
|
2025-09-09 23:17:19 +02:00
|
|
|
)
|
|
|
|
|
);
|
2025-09-09 12:07:53 +02:00
|
|
|
}
|
|
|
|
|
default:
|
|
|
|
|
{
|
2025-09-09 23:17:19 +02:00
|
|
|
throw (
|
|
|
|
|
new \Exception(
|
|
|
|
|
\sprintf(
|
|
|
|
|
'unhandled source kind: %s',
|
2025-09-21 13:27:37 +02:00
|
|
|
$kind
|
2025-09-09 23:17:19 +02:00
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
);
|
2025-09-09 12:07:53 +02:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-09-21 13:27:37 +02:00
|
|
|
?>
|