first batch of OPML export patches from gmargo
This commit is contained in:
parent
8d34aa5ba7
commit
95562576c6
81
opml.php
81
opml.php
|
@ -274,20 +274,20 @@
|
||||||
header("Content-type: text/xml");
|
header("Content-type: text/xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
print "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
|
$out = "<?xml version=\"1.0\" encoding=\"utf-8\"?".">";
|
||||||
|
|
||||||
print "<opml version=\"1.0\">";
|
$out .= "<opml version=\"1.0\">";
|
||||||
print "<head>
|
$out .= "<head>
|
||||||
<dateCreated>" . date("r", time()) . "</dateCreated>
|
<dateCreated>" . date("r", time()) . "</dateCreated>
|
||||||
<title>Tiny Tiny RSS Feed Export</title>
|
<title>Tiny Tiny RSS Feed Export</title>
|
||||||
</head>";
|
</head>";
|
||||||
print "<body>";
|
$out .= "<body>";
|
||||||
|
|
||||||
$cat_mode = false;
|
$cat_mode = false;
|
||||||
|
|
||||||
$select = "SELECT * ";
|
$select = "SELECT * ";
|
||||||
$where = "WHERE owner_uid = '$owner_uid'";
|
$where = "WHERE owner_uid = '$owner_uid'";
|
||||||
$orderby = "ORDER BY title";
|
$orderby = "ORDER BY order_id, title";
|
||||||
if ($hide_private_feeds){
|
if ($hide_private_feeds){
|
||||||
$where = "WHERE owner_uid = '$owner_uid' AND private IS false AND
|
$where = "WHERE owner_uid = '$owner_uid' AND private IS false AND
|
||||||
auth_login = '' AND auth_pass = ''";
|
auth_login = '' AND auth_pass = ''";
|
||||||
|
@ -297,21 +297,22 @@
|
||||||
|
|
||||||
if (get_pref($link, 'ENABLE_FEED_CATS', $owner_uid) == true) {
|
if (get_pref($link, 'ENABLE_FEED_CATS', $owner_uid) == true) {
|
||||||
$cat_mode = true;
|
$cat_mode = true;
|
||||||
$select = "SELECT
|
$select = "SELECT
|
||||||
title, feed_url, site_url,
|
title, feed_url, site_url, order_id,
|
||||||
|
(SELECT order_id FROM ttrss_feed_categories WHERE id = cat_id) AS cat_order_id,
|
||||||
(SELECT title FROM ttrss_feed_categories WHERE id = cat_id) as cat_title";
|
(SELECT title FROM ttrss_feed_categories WHERE id = cat_id) as cat_title";
|
||||||
$orderby = "ORDER BY cat_title, title";
|
$orderby = "ORDER BY cat_order_id, cat_title, order_id, title";
|
||||||
|
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
$cat_feed = get_pref($link, 'ENABLE_FEED_CATS');
|
$cat_feed = get_pref($link, 'ENABLE_FEED_CATS');
|
||||||
print "<!-- feeding cats is not enabled -->";
|
$out .= "<!-- feeding cats is not enabled -->";
|
||||||
print "<!-- $cat_feed -->";
|
$out .= "<!-- $cat_feed -->";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$result = db_query($link, $select." FROM ttrss_feeds ".$where." ".$orderby);
|
$result = db_query($link, $select." FROM ttrss_feeds ".$where." ".$orderby);
|
||||||
|
|
||||||
$old_cat_title = "";
|
$old_cat_title = "";
|
||||||
|
|
||||||
|
@ -325,11 +326,11 @@
|
||||||
|
|
||||||
if ($old_cat_title != $cat_title) {
|
if ($old_cat_title != $cat_title) {
|
||||||
if ($old_cat_title) {
|
if ($old_cat_title) {
|
||||||
print "</outline>\n";
|
$out .= "</outline>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($cat_title) {
|
if ($cat_title) {
|
||||||
print "<outline title=\"$cat_title\" text=\"$cat_title\" >\n";
|
$out .= "<outline title=\"$cat_title\" text=\"$cat_title\" >\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
$old_cat_title = $cat_title;
|
$old_cat_title = $cat_title;
|
||||||
|
@ -342,35 +343,35 @@
|
||||||
$html_url_qpart = "";
|
$html_url_qpart = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
print "<outline text=\"$title\" xmlUrl=\"$url\" $html_url_qpart/>\n";
|
$out .= "<outline text=\"$title\" xmlUrl=\"$url\" $html_url_qpart/>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($cat_mode && $old_cat_title) {
|
if ($cat_mode && $old_cat_title) {
|
||||||
print "</outline>\n";
|
$out .= "</outline>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
# export tt-rss settings
|
# export tt-rss settings
|
||||||
|
|
||||||
if ($include_settings) {
|
if ($include_settings) {
|
||||||
print "<outline title=\"tt-rss-prefs\" schema-version=\"".SCHEMA_VERSION."\">";
|
$out .= "<outline title=\"tt-rss-prefs\" schema-version=\"".SCHEMA_VERSION."\">";
|
||||||
|
|
||||||
$result = db_query($link, "SELECT pref_name, value FROM ttrss_user_prefs WHERE
|
$result = db_query($link, "SELECT pref_name, value FROM ttrss_user_prefs WHERE
|
||||||
profile IS NULL AND owner_uid = " . $_SESSION["uid"]);
|
profile IS NULL AND owner_uid = " . $_SESSION["uid"] . " ORDER BY pref_name");
|
||||||
|
|
||||||
while ($line = db_fetch_assoc($result)) {
|
while ($line = db_fetch_assoc($result)) {
|
||||||
|
|
||||||
$name = $line["pref_name"];
|
$name = $line["pref_name"];
|
||||||
$value = htmlspecialchars($line["value"]);
|
$value = htmlspecialchars($line["value"]);
|
||||||
|
|
||||||
print "<outline pref-name=\"$name\" value=\"$value\">";
|
$out .= "<outline pref-name=\"$name\" value=\"$value\">";
|
||||||
|
|
||||||
print "</outline>";
|
$out .= "</outline>";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print "</outline>";
|
$out .= "</outline>";
|
||||||
|
|
||||||
print "<outline title=\"tt-rss-labels\" schema-version=\"".SCHEMA_VERSION."\">";
|
$out .= "<outline title=\"tt-rss-labels\" schema-version=\"".SCHEMA_VERSION."\">";
|
||||||
|
|
||||||
$result = db_query($link, "SELECT * FROM ttrss_labels2 WHERE
|
$result = db_query($link, "SELECT * FROM ttrss_labels2 WHERE
|
||||||
owner_uid = " . $_SESSION['uid']);
|
owner_uid = " . $_SESSION['uid']);
|
||||||
|
@ -380,13 +381,13 @@
|
||||||
$fg_color = htmlspecialchars($line['fg_color']);
|
$fg_color = htmlspecialchars($line['fg_color']);
|
||||||
$bg_color = htmlspecialchars($line['bg_color']);
|
$bg_color = htmlspecialchars($line['bg_color']);
|
||||||
|
|
||||||
print "<outline label-name=\"$name\" label-fg-color=\"$fg_color\" label-bg-color=\"$bg_color\"/>";
|
$out .= "<outline label-name=\"$name\" label-fg-color=\"$fg_color\" label-bg-color=\"$bg_color\"/>";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print "</outline>";
|
$out .= "</outline>";
|
||||||
|
|
||||||
print "<outline title=\"tt-rss-filters\" schema-version=\"".SCHEMA_VERSION."\">";
|
$out .= "<outline title=\"tt-rss-filters\" schema-version=\"".SCHEMA_VERSION."\">";
|
||||||
|
|
||||||
$result = db_query($link, "SELECT filter_type,
|
$result = db_query($link, "SELECT filter_type,
|
||||||
reg_exp,
|
reg_exp,
|
||||||
|
@ -413,26 +414,42 @@
|
||||||
|
|
||||||
$filter = json_encode($line);
|
$filter = json_encode($line);
|
||||||
|
|
||||||
print "<outline filter-name=\"$name\">$filter</outline>";
|
$out .= "<outline filter-name=\"$name\">$filter</outline>";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
print "</outline>";
|
$out .= "</outline>";
|
||||||
}
|
}
|
||||||
|
|
||||||
print "</body></opml>";
|
$out .= "</body></opml>";
|
||||||
|
|
||||||
|
// Format output.
|
||||||
|
$doc = new DOMDocument();
|
||||||
|
$doc->formatOutput = true;
|
||||||
|
$doc->preserveWhiteSpace = false;
|
||||||
|
$doc->loadXML($out);
|
||||||
|
$res = $doc->saveXML();
|
||||||
|
|
||||||
|
// saveXML uses a two-space indent. Change to tabs.
|
||||||
|
$res = preg_replace_callback('/^(?: )+/mu',
|
||||||
|
create_function(
|
||||||
|
'$matches',
|
||||||
|
'return str_repeat("\t", intval(strlen($matches[0])/2));'),
|
||||||
|
$res);
|
||||||
|
|
||||||
|
print $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME there are some brackets issues here
|
// FIXME there are some brackets issues here
|
||||||
|
|
||||||
$op = $_REQUEST["op"];
|
$op = $_REQUEST["op"];
|
||||||
if (!$op) $op = "Export";
|
if (!$op) $op = "Export";
|
||||||
|
|
||||||
$output_name = $_REQUEST["filename"];
|
$output_name = $_REQUEST["filename"];
|
||||||
if (!$output_name) $output_name = "TinyTinyRSS.opml";
|
if (!$output_name) $output_name = "TinyTinyRSS.opml";
|
||||||
|
|
||||||
$show_settings = $_REQUEST["settings"];
|
$show_settings = $_REQUEST["settings"];
|
||||||
|
|
||||||
if ($op == "Export") {
|
if ($op == "Export") {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue