X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=opml.php;h=f29b19023758597f8d888e56bf17fc870aa66fc1;hb=9f311df6262c206a56f47a593244336e6ba1f54c;hp=05ad1943c558f407c2de5b6b8e1ee05b7633f99a;hpb=9a4506c87de04bcde0d6da3da7c289f58d69312b;p=tt-rss.git diff --git a/opml.php b/opml.php index 05ad1943..f29b1902 100644 --- a/opml.php +++ b/opml.php @@ -1,8 +1,8 @@ "; print ""; print "" . date("r", time()) . ""; @@ -31,4 +31,89 @@ print ""; } + function startElement($parser, $name, $attrs) { + if ($name == "OUTLINE") { + $title = pg_escape_string($attrs['TEXT']); + $url = pg_escape_string($attrs['XMLURL']); + + print "Feed $title ($url)... "; + + $result = pg_query("SELECT id FROM ttrss_feeds WHERE + title = '$title' OR feed_url = '$url'"); + + if (pg_num_rows($result) > 0) { + + print " Already imported.
"; + + } else { + + $result = pg_query("INSERT INTO ttrss_feeds (title, feed_url) VALUES + ('$title', '$url')"); + + print "Done.
"; + + } + + } + } + + function endElement($parser, $name) { + + + } + + if ($op == "Import") { + print " + + + +

Importing OPML...

+
"; + + if (is_file($_FILES['opml_file']['tmp_name'])) { + + $xml_parser = xml_parser_create(); + + xml_set_element_handler($xml_parser, "startElement", "endElement"); + + $fp = fopen($_FILES['opml_file']['tmp_name'], "r"); + + if ($fp) { + + while ($data = fread($fp, 4096)) { + + if (!xml_parse($xml_parser, $data, feof($fp))) { + + print sprintf("Unable to parse OPML file, XML error: %s at line %d", + xml_error_string(xml_get_error_code($xml_parser)), + xml_get_current_line_number($xml_parser)); + + print "

+ Return to preferences"; + + return; + + } + } + + xml_parser_free($xml_parser); + fclose($fp); + + } else { + print("Error: Could not open OPML input."); + } + + } else { + print "Error: please upload OPML file."; + } + + print "

+ Return to preferences"; + + print "

"; + + } + + pg_close($link); + ?>