Move OPML export to handlers
This commit is contained in:
parent
05af9d0d4d
commit
b05ad87028
@ -226,7 +226,7 @@ Router\action('subscribe', function () {
|
||||
// OPML export
|
||||
Router\get_action('export', function () {
|
||||
Response\force_download('feeds.opml');
|
||||
Response\xml(Model\Feed\export_opml());
|
||||
Response\xml(Handler\Opml\export_all_feeds());
|
||||
});
|
||||
|
||||
// OPML import form
|
||||
|
34
app/handlers/opml.php
Normal file
34
app/handlers/opml.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace Handler\Opml;
|
||||
|
||||
use Model\Feed;
|
||||
use Model\Group;
|
||||
use PicoFeed\Serialization\Subscription;
|
||||
use PicoFeed\Serialization\SubscriptionList;
|
||||
use PicoFeed\Serialization\SubscriptionListBuilder;
|
||||
|
||||
|
||||
function export_all_feeds()
|
||||
{
|
||||
$feeds = Feed\get_all();
|
||||
$subscriptionList = SubscriptionList::create()->setTitle(t('Subscriptions'));
|
||||
|
||||
foreach ($feeds as $feed) {
|
||||
$groups = Group\get_feed_groups($feed['id']);
|
||||
$category = '';
|
||||
|
||||
if (!empty($groups)) {
|
||||
$category = $groups[0]['title'];
|
||||
}
|
||||
|
||||
$subscriptionList->addSubscription(Subscription::create()
|
||||
->setTitle($feed['title'])
|
||||
->setSiteUrl($feed['site_url'])
|
||||
->setFeedUrl($feed['feed_url'])
|
||||
->setCategory($category)
|
||||
);
|
||||
}
|
||||
|
||||
return SubscriptionListBuilder::create($subscriptionList)->build();
|
||||
}
|
@ -2,9 +2,6 @@
|
||||
|
||||
namespace Model\Feed;
|
||||
|
||||
use PicoFeed\Serialization\Subscription;
|
||||
use PicoFeed\Serialization\SubscriptionList;
|
||||
use PicoFeed\Serialization\SubscriptionListBuilder;
|
||||
use PicoFeed\Serialization\SubscriptionListParser;
|
||||
use UnexpectedValueException;
|
||||
use Model\Config;
|
||||
@ -51,31 +48,6 @@ function update(array $values)
|
||||
return $result;
|
||||
}
|
||||
|
||||
// Export all feeds
|
||||
function export_opml()
|
||||
{
|
||||
$feeds = get_all();
|
||||
$subscriptionList = SubscriptionList::create()->setTitle(t('Subscriptions'));
|
||||
|
||||
foreach ($feeds as $feed) {
|
||||
$groups = Group\get_feed_groups($feed['id']);
|
||||
$category = '';
|
||||
|
||||
if (!empty($groups)) {
|
||||
$category = $groups[0]['title'];
|
||||
}
|
||||
|
||||
$subscriptionList->addSubscription(Subscription::create()
|
||||
->setTitle($feed['title'])
|
||||
->setSiteUrl($feed['site_url'])
|
||||
->setFeedUrl($feed['feed_url'])
|
||||
->setCategory($category)
|
||||
);
|
||||
}
|
||||
|
||||
return SubscriptionListBuilder::create($subscriptionList)->build();
|
||||
}
|
||||
|
||||
// Import OPML file
|
||||
function import_opml($content)
|
||||
{
|
||||
|
@ -29,8 +29,8 @@ function version_43(PDO $pdo)
|
||||
CREATE TABLE "favicons_feeds" (
|
||||
feed_id INTEGER NOT NULL,
|
||||
favicon_id INTEGER NOT NULL,
|
||||
PRIMARY KEY(feed_id, favicon_id)
|
||||
FOREIGN KEY(favicon_id) REFERENCES favicons(id) ON DELETE CASCADE
|
||||
PRIMARY KEY(feed_id, favicon_id),
|
||||
FOREIGN KEY(favicon_id) REFERENCES favicons(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY(feed_id) REFERENCES feeds(id) ON DELETE CASCADE
|
||||
)
|
||||
');
|
||||
|
@ -40,6 +40,7 @@
|
||||
"app/core/template.php",
|
||||
"app/handlers/scraper.php",
|
||||
"app/handlers/service.php",
|
||||
"app/handlers/opml.php",
|
||||
"app/handlers/proxy.php",
|
||||
"app/models/config.php",
|
||||
"app/models/search.php",
|
||||
|
1
vendor/composer/autoload_files.php
vendored
1
vendor/composer/autoload_files.php
vendored
@ -21,6 +21,7 @@ return array(
|
||||
'93228d441890e5962b0566344884332c' => $baseDir . '/app/core/template.php',
|
||||
'9de087554be89ca71a2ed558a4e35fde' => $baseDir . '/app/handlers/scraper.php',
|
||||
'45d63f4d04cfb927b889e126b91aa553' => $baseDir . '/app/handlers/service.php',
|
||||
'bf8c8992b55a0d6166f67a273960030e' => $baseDir . '/app/handlers/opml.php',
|
||||
'081a26ac825aa2a7e4cb00c18e0510d5' => $baseDir . '/app/handlers/proxy.php',
|
||||
'bc98222aedc910930f5b76b8c84f334e' => $baseDir . '/app/models/config.php',
|
||||
'b59348c9973f21f2c58eb493d9fea5be' => $baseDir . '/app/models/search.php',
|
||||
|
1
vendor/composer/autoload_static.php
vendored
1
vendor/composer/autoload_static.php
vendored
@ -22,6 +22,7 @@ class ComposerStaticInitfd7e8d436e1dc450edc3153ac8bc31b4
|
||||
'93228d441890e5962b0566344884332c' => __DIR__ . '/../..' . '/app/core/template.php',
|
||||
'9de087554be89ca71a2ed558a4e35fde' => __DIR__ . '/../..' . '/app/handlers/scraper.php',
|
||||
'45d63f4d04cfb927b889e126b91aa553' => __DIR__ . '/../..' . '/app/handlers/service.php',
|
||||
'bf8c8992b55a0d6166f67a273960030e' => __DIR__ . '/../..' . '/app/handlers/opml.php',
|
||||
'081a26ac825aa2a7e4cb00c18e0510d5' => __DIR__ . '/../..' . '/app/handlers/proxy.php',
|
||||
'bc98222aedc910930f5b76b8c84f334e' => __DIR__ . '/../..' . '/app/models/config.php',
|
||||
'b59348c9973f21f2c58eb493d9fea5be' => __DIR__ . '/../..' . '/app/models/search.php',
|
||||
|
Loading…
Reference in New Issue
Block a user