58 lines
1.2 KiB
PHP
58 lines
1.2 KiB
PHP
<?php
|
|
/*
|
|
davina — Calendar data CalDAV conditioner
|
|
Copyright (C) 2025 Fenris <fenris@folksprak.org>
|
|
|
|
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
|
|
License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
|
|
version.
|
|
|
|
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License along with this program. If not, see
|
|
<https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
namespace davina\sources;
|
|
|
|
require_once(DIR_LOGIC . '/sources/_interface.php');
|
|
require_once(DIR_LOGIC . '/sources/ics_feed.php');
|
|
|
|
|
|
/**
|
|
*/
|
|
function make(
|
|
string $kind,
|
|
$data
|
|
) : interface_source
|
|
{
|
|
switch ($kind)
|
|
{
|
|
case 'ics_feed':
|
|
{
|
|
return (
|
|
new class_source_ics_feed(
|
|
$data['url'],
|
|
$data['lifetime'],
|
|
$data['conflate']
|
|
)
|
|
);
|
|
}
|
|
default:
|
|
{
|
|
throw (
|
|
new \Exception(
|
|
\sprintf(
|
|
'unhandled source kind: %s',
|
|
$kind
|
|
)
|
|
)
|
|
);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
?>
|