remove old readme
[atutor.git] / mods / _standard / google_search / SOAP_Google.php
1 <?php\r
2 require(AT_INCLUDE_PATH . 'classes/nusoap.php');\r
3 \r
4 class SOAP_Google { \r
5         /**    * @var    string    * @access private    */    var $_licenseKey = "";\r
6 \r
7             /**    * @var    object    * @access private    */    var $_soapClient = NULL;\r
8 \r
9                 /**\r
10     * Constructor.\r
11     *\r
12     * @param  string\r
13     * @access public\r
14     */\r
15     function SOAP_Google($licenseKey) {\r
16         $this->_licenseKey = $licenseKey;\r
17 \r
18         $this->_soapClient = new nusoapclient("http://api.google.com/search/beta2");\r
19     }\r
20 \r
21 /**\r
22     * Retrieves a page by URL from the Google Cache.\r
23     *\r
24     * @param  string\r
25     * @return mixed\r
26     * @access public\r
27     */\r
28     function getCachedPage($url) {\r
29         $result = $this->_performAPICall(\r
30           "doGetCachedPage",\r
31 \r
32           array(\r
33             "key" => $this->_licenseKey,\r
34             "url" => $url\r
35           )\r
36         );\r
37 \r
38         if ($result) {\r
39             $result = base64_decode($result);\r
40         }\r
41 \r
42         return $result;\r
43     }\r
44 \r
45     /**\r
46     * Retrieves a spelling suggestion for a phrase.\r
47     *\r
48     * @param  string\r
49     * @return mixed\r
50     * @access public\r
51     */\r
52     function getSpellingSuggestion($phrase) {\r
53         return $this->_performAPICall(\r
54           "doSpellingSuggestion",\r
55 \r
56           array(\r
57             "key"    => $this->_licenseKey,\r
58             "phrase" => $phrase\r
59           )\r
60         );\r
61     }\r
62 \r
63     /**\r
64     * Performs a web search.\r
65     *\r
66     * @param  array\r
67     * @return mixed\r
68     * @access public\r
69     */\r
70     function search($parameters = array()) {\r
71         if (!isset($parameters["query"])) {\r
72             return false;\r
73         }\r
74 \r
75         return $this->_performAPICall(\r
76           "doGoogleSearch",\r
77 \r
78           array(\r
79             "key"         => $this->_licenseKey,\r
80             "q"           => $parameters["query"],\r
81             "start"       => isset($parameters["start"])      ? $parameters["start"]      : 0,\r
82             "maxResults"  => isset($parameters["maxResults"]) ? $parameters["maxResults"] : 10,\r
83             "filter"      => isset($parameters["filter"])     ? $parameters["filter"]     : false,\r
84             "restrict"    => isset($parameters["restrict"])   ? $parameters["restrict"]   : "",\r
85             "safeSearch"  => isset($parameters["safeSearch"]) ? $parameters["safeSearch"] : false,\r
86             "lr"          => isset($parameters["lr"])         ? $parameters["lr"]         : "",\r
87             "ie"          => isset($parameters["ie"])         ? $parameters["ie"]         : "",\r
88             "oe"          => isset($parameters["oe"])         ? $parameters["oe"]         : ""\r
89           )\r
90         );\r
91     }\r
92 \r
93     /**\r
94     * @param  string\r
95     * @param  array\r
96     * @return mixed\r
97     * @access private\r
98     */\r
99     function _performAPICall($apiCall, $parameters) {\r
100                         $result = $this->_soapClient->call(\r
101                           $apiCall,\r
102                           $parameters,\r
103                           "urn:GoogleSearch"\r
104                         );\r
105 \r
106                 // if (!PEAR::isError($result)) {\r
107                 if (is_array($result)) {\r
108             return $result;\r
109         } else {\r
110             return false;\r
111         }\r
112     }\r
113 }\r
114 ?>