diff --git a/xml-rpc.php b/xml-rpc.php index 9bfc25e52..68101fc8b 100644 --- a/xml-rpc.php +++ b/xml-rpc.php @@ -23,9 +23,49 @@ pg_query("set client_encoding = 'utf-8'"); } - function subscribeToFeed($msg) { - # $value = new xmlrpcval("OK"); + function getSubscribedFeeds($msg) { + global $link; + $login_o = $msg->getParam(0); + $pass_o = $msg->getParam(1); + + $login = $login_o->scalarval(); + $pass = $pass_o->scalarval(); + + $user_id = authenticate_user($link, $login, $pass); + + if (authenticate_user($link, $login, $pass)) { + + $result = db_query($link, "SELECT + id, feed_url, title, SUBSTRING(last_updated,1,19) AS last_updated + FROM ttrss_feeds WHERE owner_uid = " . + $_SESSION["uid"]); + + $feeds = array(); + + while ($line = db_fetch_assoc($result)) { + + $line_struct = new xmlrpcval( + array( + "feed_url" => new xmlrpcval($line["feed_url"]), + "title" => new xmlrpcval($line["title"]), + "last_updated" => new xmlrpcval(strtotime($line["last_updated"])) + ), + "struct"); + + array_push($feeds, $line_struct); + } + + $reply = new xmlrpcval($feeds, "array"); + + } else { + $reply = new xmlrpcval("Login failed."); + } + + return new xmlrpcresp($reply); + } + + function subscribeToFeed($msg) { global $link; $login_o = $msg->getParam(0); @@ -53,9 +93,14 @@ $subscribeToFeed_sig = array(array($xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString)); - + + $getSubscribedFeeds_sig = array(array($xmlrpcString, + $xmlrpcString, $xmlrpcString)); + $s = new xmlrpc_server( array( + "rss.getSubscribedFeeds" => array("function" => "getSubscribedFeeds", + "signature" => $getSubscribedFeeds_sig), "rss.subscribeToFeed" => array("function" => "subscribeToFeed", "signature" => $subscribeToFeed_sig)) ); diff --git a/xmlrpc/extras/test.py b/xmlrpc/extras/test.py index 1bf5730a8..65d53556e 100644 --- a/xmlrpc/extras/test.py +++ b/xmlrpc/extras/test.py @@ -9,7 +9,10 @@ try: # print server.rss.getAllFeeds("fox", "sotona"); print server.rss.subscribeToFeed("admin", "password", - "http://tt-rss.spb.ru/forum/rss.php"); + "http://tt-rss.spb.ru/forum/rss.php") + + r = server.rss.getSubscribedFeeds("admin", "password") + print r # print "Got '" + server.examples.getStateName(32) + "'" #