support import and export of tt-rss preferences in OPML with DOMDocument OPML path

master
Andrew Dolgov 15 years ago
parent 50e7dd7d01
commit e955834551

@ -824,10 +824,11 @@
$rss_1_date = $item['dc']['date'];
$atom_date = $item['issued'];
if (!$atom_date) $atom_date = $item['updated'];
if ($atom_date != "") $entry_timestamp = parse_w3cdtf($atom_date);
if ($rss_1_date != "") $entry_timestamp = parse_w3cdtf($rss_1_date);
if ($rss_2_date != "") $entry_timestamp = strtotime($rss_2_date);
}
if ($entry_timestamp == "" || $entry_timestamp == -1 || !$entry_timestamp) {

@ -1,6 +1,8 @@
<?php
function opml_import_domdoc($link, $owner_uid) {
$_FILES['opml_file']['tmp_name'] = '/home/fox/opml.php';
if (is_file($_FILES['opml_file']['tmp_name'])) {
$doc = DOMDocument::load($_FILES['opml_file']['tmp_name']);
@ -39,27 +41,50 @@
$feed_url = db_escape_string($outline->attributes->getNamedItem('xmlUrl')->nodeValue);
$site_url = db_escape_string($outline->attributes->getNamedItem('htmlUrl')->nodeValue);
$pref_name = db_escape_string($outline->attributes->getNamedItem('pref-name')->nodeValue);
if ($cat_title && !$feed_url) {
db_query($link, "BEGIN");
if ($cat_title != "tt-rss-prefs") {
db_query($link, "BEGIN");
$result = db_query($link, "SELECT id FROM
ttrss_feed_categories WHERE title = '$cat_title' AND
owner_uid = '$owner_uid' LIMIT 1");
if (db_num_rows($result) == 0) {
printf(__("<li>Adding category <b>%s</b>.</li>"), $cat_title);
db_query($link, "INSERT INTO ttrss_feed_categories
(title,owner_uid)
VALUES ('$cat_title', '$owner_uid')");
}
db_query($link, "COMMIT");
}
}
$result = db_query($link, "SELECT id FROM
ttrss_feed_categories WHERE title = '$cat_title' AND
owner_uid = '$owner_uid' LIMIT 1");
// print "$active_category : $feed_title : $feed_url<br>";
if (db_num_rows($result) == 0) {
if ($pref_name) {
$parent_node = $outline->parentNode;
printf(__("<li>Adding category <b>%s</b>.</li>"), $cat_title);
if ($parent_node && $parent_node->nodeName == "outline") {
$cat_check = $parent_node->attributes->getNamedItem('title')->nodeValue;
if ($cat_check == "tt-rss-prefs") {
$pref_value = db_escape_string($outline->attributes->getNamedItem('value')->nodeValue);
db_query($link, "INSERT INTO ttrss_feed_categories
(title,owner_uid)
VALUES ('$cat_title', '$owner_uid')");
}
printf("<li>".
__("Setting preference key %s to %s")."</li>",
$pref_name, $pref_value);
db_query($link, "COMMIT");
}
set_pref($link, $pref_name, $pref_value);
// print "$active_category : $feed_title : $feed_url<br>";
}
}
}
if (!$feed_title || !$feed_url) continue;

@ -13,7 +13,11 @@
init_connection($link);
function opml_export($link, $owner_uid, $hide_private_feeds=False) {
header("Content-type: application/xml+opml");
if (!$_REQUEST["debug"]) {
header("Content-type: application/xml+opml");
} else {
header("Content-type: text/xml");
}
print "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
print "<opml version=\"1.0\">";
@ -88,6 +92,26 @@
print "</outline>\n";
}
# export tt-rss settings
print "<outline title=\"tt-rss-prefs\" schema-version=\"".SCHEMA_VERSION."\">";
$result = db_query($link, "SELECT pref_name, value FROM ttrss_user_prefs WHERE
profile IS NULL AND owner_uid = " . $_SESSION["uid"]);
while ($line = db_fetch_assoc($result)) {
$name = $line["pref_name"];
$value = htmlspecialchars($line["value"]);
print "<outline pref-name=\"$name\" value=\"$value\">";
print "</outline>";
}
print "</outline>";
print "</body></opml>";
}
@ -125,10 +149,13 @@
login_sequence($link);
$owner_uid = $_SESSION["uid"];
header('Content-Type: text/html; charset=utf-8');
print "<html>
<head>
<link rel=\"stylesheet\" href=\"utility.css\" type=\"text/css\">
<title>".__("OPML Utility")."</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
</head>
<body>
<div class=\"floatingLogo\"><img src=\"images/ttrss_logo.png\"></div>

Loading…
Cancel
Save