]> git.wh0rd.org Git - tt-rss.git/blob - xml-rpc.php
add xmlrpc library & server
[tt-rss.git] / xml-rpc.php
1 <?
2         require "xmlrpc/lib/xmlrpc.inc";
3         require "xmlrpc/lib/xmlrpcs.inc";
4
5         require_once "sanity_check.php";
6         require_once "config.php";
7         
8         require_once "db.php";
9         require_once "db-prefs.php";
10         require_once "functions.php";
11
12         $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); 
13
14         if (!$link) {
15                 if (DB_TYPE == "mysql") {
16                         print mysql_error();
17                 }
18                 // PG seems to display its own errors just fine by default.             
19                 return;
20         }
21
22         if (DB_TYPE == "pgsql") {
23                 pg_query("set client_encoding = 'utf-8'");
24         }
25
26         function subscribeToFeed($msg) {
27         #               $value = new xmlrpcval("OK");
28
29                 global $link;
30
31                 $login_o = $msg->getParam(0);
32                 $pass_o = $msg->getParam(1);
33                 $feed_url_o = $msg->getParam(2);
34         
35                 $login = $login_o->scalarval();
36                 $pass = $pass_o->scalarval();
37                 $feed_url = $feed_url_o->scalarval();
38         
39                 $user_id = authenticate_user($link, $login, $pass);
40
41                 if (authenticate_user($link, $login, $pass)) {
42                         if (subscribe_to_feed($link, $feed_url)) {
43                                 $reply_msg = "Subscribed successfully.";
44                         } else {
45                                 $reply_msg = "Feed already exists in the database.";
46                         }               
47                 } else {
48                         $reply_msg = "Login failed.";
49                 }
50                 
51                 return new xmlrpcresp(new xmlrpcval($reply_msg));
52         }
53
54         $subscribeToFeed_sig = array(array($xmlrpcString,
55                 $xmlrpcString, $xmlrpcString, $xmlrpcString));
56                 
57         $s = new xmlrpc_server( 
58                         array(
59                           "rss.subscribeToFeed" => array("function" => "subscribeToFeed",
60                                         "signature" => $subscribeToFeed_sig))
61                         );
62 ?>