]> git.mxchange.org Git - friendica.git/blobdiff - include/api.php
Merge remote-tracking branch 'upstream/develop' into 1701-performance
[friendica.git] / include / api.php
index 1ec65762028f64a95e616a06d8d32176d6d1d64f..ce7610312947b171a2787831ecad2a979d891a68 100644 (file)
@@ -5,6 +5,9 @@
  *
  * @todo Automatically detect if incoming data is HTML or BBCode
  */
+
+use \Friendica\Core\Config;
+
        require_once('include/HTTPExceptions.php');
 
        require_once('include/bbcode.php');
         * @hook 'logged_in'
         *              array $user     logged user record
         */
-       function api_login(&$a){
+       function api_login(App $a){
                // login with oauth
                try{
                        $oauth = new FKOAuth1();
         * @param App $a
         * @return string API call result
         */
-       function api_call(&$a){
-               GLOBAL $API, $called_api;
+       function api_call(App $a){
+               global $API, $called_api;
 
                $type="json";
                if (strpos($a->query_string, ".xml")>0) $type="xml";
         * @param array $user_info
         * @return array
         */
-       function api_rss_extra(&$a, $arr, $user_info){
+       function api_rss_extra(App $a, $arr, $user_info){
                if (is_null($user_info)) $user_info = api_get_user($a);
                $arr['$user'] = $user_info;
                $arr['$rss'] = array(
-                       'alternate' => $user_info['url'],
-                       'self' => $a->get_baseurl(). "/". $a->query_string,
-                       'base' => $a->get_baseurl(),
-                       'updated' => api_date(null),
+                       'alternate'    => $user_info['url'],
+                       'self'         => App::get_baseurl(). "/". $a->query_string,
+                       'base'         => App::get_baseurl(),
+                       'updated'      => api_date(null),
                        'atom_updated' => datetime_convert('UTC','UTC','now',ATOM_TIME),
-                       'language' => $user_info['language'],
-                       'logo'  => $a->get_baseurl()."/images/friendica-32.png",
+                       'language'     => $user_info['language'],
+                       'logo'         => App::get_baseurl()."/images/friendica-32.png",
                );
 
                return $arr;
         * @param int|string $contact_id Contact ID or URL
         * @param string $type Return type (for errors)
         */
-       function api_get_user(&$a, $contact_id = Null, $type = "json"){
+       function api_get_user(App $a, $contact_id = Null, $type = "json"){
                global $called_api;
                $user = null;
                $extra_query = "";
                        'follow_request_sent' => false,
                        'statusnet_blocking' => false,
                        'notifications' => false,
-                       //'statusnet_profile_url' => $a->get_baseurl()."/contacts/".$uinfo[0]['cid'],
+                       //'statusnet_profile_url' => App::get_baseurl()."/contacts/".$uinfo[0]['cid'],
                        'statusnet_profile_url' => $uinfo[0]['url'],
                        'uid' => intval($uinfo[0]['uid']),
                        'cid' => intval($uinfo[0]['cid']),
         * @param array $item : item from db
         * @return array(array:author, array:owner)
         */
-       function api_item_get_user(&$a, $item) {
+       function api_item_get_user(App $a, $item) {
 
                $status_user = api_get_user($a, $item["author-link"]);
 
                        if ($r) {
                                $phototypes = Photo::supportedTypes();
                                $ext = $phototypes[$r[0]['type']];
-                               $_REQUEST['body'] .= "\n\n".'[url='.$a->get_baseurl().'/photos/'.$r[0]['nickname'].'/image/'.$r[0]['resource-id'].']';
-                               $_REQUEST['body'] .= '[img]'.$a->get_baseurl()."/photo/".$r[0]['resource-id']."-".$r[0]['scale'].".".$ext."[/img][/url]";
+                               $_REQUEST['body'] .= "\n\n".'[url='.App::get_baseurl().'/photos/'.$r[0]['nickname'].'/image/'.$r[0]['resource-id'].']';
+                               $_REQUEST['body'] .= '[img]'.App::get_baseurl()."/photo/".$r[0]['resource-id']."-".$r[0]['scale'].".".$ext."[/img][/url]";
                        }
                }
 
                $start = $page*$count;
 
                // Ugly code - should be changed
-               $myurl = $a->get_baseurl() . '/profile/'. $a->user['nickname'];
+               $myurl = App::get_baseurl() . '/profile/'. $a->user['nickname'];
                $myurl = substr($myurl,strpos($myurl,'://')+3);
                //$myurl = str_replace(array('www.','.'),array('','\\.'),$myurl);
                $myurl = str_replace('www.','',$myurl);
                $text = preg_replace_callback(
                                "|data:image/([^;]+)[^=]+=*|m",
                                function($match) use ($item) {
-                                       return $a->get_baseurl()."/display/".$item['guid'];
+                                       return App::get_baseurl()."/display/".$item['guid'];
                                },
                                $text);
                return $text;
         *                      dislikes => int count
         */
        function api_format_items_activities(&$item, $type = "json") {
+
+               $a = get_app();
+
                $activities = array(
                        'like' => array(),
                        'dislike' => array(),
                                                        'homepage' => $profile['homepage'],
                                                        'users' => null);
                        return $profile;
-               } 
+               }
        }
 
        /**
 
                        // Retweets are only valid for top postings
                        // It doesn't work reliable with the link if its a feed
-                       #$IsRetweet = ($item['owner-link'] != $item['author-link']);
-                       #if ($IsRetweet)
-                             $IsRetweet = (($item['owner-name'] != $item['author-name']) OR ($item['owner-avatar'] != $item['author-avatar']));
+                       //$IsRetweet = ($item['owner-link'] != $item['author-link']);
+                       //if ($IsRetweet)
+                       //      $IsRetweet = (($item['owner-name'] != $item['author-name']) OR ($item['owner-avatar'] != $item['author-avatar']));
 
 
                        if ($item["id"] == $item["parent"]) {
 
                $name = $a->config['sitename'];
                $server = $a->get_hostname();
-               $logo = $a->get_baseurl() . '/images/friendica-64.png';
+               $logo = App::get_baseurl() . '/images/friendica-64.png';
                $email = $a->config['admin_email'];
                $closed = (($a->config['register_policy'] == REGISTER_CLOSED) ? 'true' : 'false');
-               $private = (($a->config['system']['block_public']) ? 'true' : 'false');
+               $private = ((Config::get('system', 'block_public')) ? 'true' : 'false');
                $textlimit = (string) (($a->config['max_import_size']) ? $a->config['max_import_size'] : 200000);
                if($a->config['api_import_size'])
                        $texlimit = string($a->config['api_import_size']);
-               $ssl = (($a->config['system']['have_ssl']) ? 'true' : 'false');
-               $sslserver = (($ssl === 'true') ? str_replace('http:','https:',$a->get_baseurl()) : '');
+               $ssl = ((Config::get('system', 'have_ssl')) ? 'true' : 'false');
+               $sslserver = (($ssl === 'true') ? str_replace('http:','https:',App::get_baseurl()) : '');
 
                $config = array(
                        'site' => array('name' => $name,'server' => $server, 'theme' => 'default', 'path' => '',
                // BadRequestException if no id specified (for clients using Twitter API)
                if ($id == 0) throw new BadRequestException('Message id not specified');
 
-               // add parent-uri to sql command if specified by calling app            
+               // add parent-uri to sql command if specified by calling app
                $sql_extra = ($parenturi != "" ? " AND `parent-uri` = '" . dbesc($parenturi) . "'" : "");
 
                // get data of the specified message id
                $r = q("SELECT `id` FROM `mail` WHERE `uid` = %d AND `id` = %d" . $sql_extra,
-                       intval($uid), 
+                       intval($uid),
                        intval($id));
-       
+
                // error message if specified id is not in database
                if (!dbm::is_result($r)) {
                        if ($verbose == "true") {
                }
 
                // delete message
-               $result = q("DELETE FROM `mail` WHERE `uid` = %d AND `id` = %d" . $sql_extra, 
-                       intval($uid), 
+               $result = q("DELETE FROM `mail` WHERE `uid` = %d AND `id` = %d" . $sql_extra,
+                       intval($uid),
                        intval($id));
 
                if ($verbose == "true") {
                'image/gif' => 'gif'
                );
                $data = array('photo'=>array());
-               if($r) {
-                       foreach($r as $rr) {
+               if ($r) {
+                       foreach ($r as $rr) {
                                $photo = array();
                                $photo['id'] = $rr['resource-id'];
                                $photo['album'] = $rr['album'];
                                $photo['filename'] = $rr['filename'];
                                $photo['type'] = $rr['type'];
-                               $thumb = $a->get_baseurl()."/photo/".$rr['resource-id']."-".$rr['scale'].".".$typetoext[$rr['type']];
+                               $thumb = App::get_baseurl()."/photo/".$rr['resource-id']."-".$rr['scale'].".".$typetoext[$rr['type']];
 
                                if ($type == "xml")
                                        $data['photo'][] = array("@attributes" => $photo, "1" => $thumb);
                                for ($k=intval($data['photo']['minscale']); $k<=intval($data['photo']['maxscale']); $k++)
                                        $data['photo']['links'][$k.":link"]["@attributes"] = array("type" => $data['photo']['type'],
                                                                                        "scale" => $k,
-                                                                                       "href" => $a->get_baseurl()."/photo/".$data['photo']['resource-id']."-".$k.".".$typetoext[$data['photo']['type']]);
+                                                                                       "href" => App::get_baseurl()."/photo/".$data['photo']['resource-id']."-".$k.".".$typetoext[$data['photo']['type']]);
                        } else {
                                $data['photo']['link'] = array();
                                for ($k=intval($data['photo']['minscale']); $k<=intval($data['photo']['maxscale']); $k++) {
-                                       $data['photo']['link'][$k] = $a->get_baseurl()."/photo/".$data['photo']['resource-id']."-".$k.".".$typetoext[$data['photo']['type']];
+                                       $data['photo']['link'][$k] = App::get_baseurl()."/photo/".$data['photo']['resource-id']."-".$k.".".$typetoext[$data['photo']['type']];
                                }
                        }
                        unset($data['photo']['resource-id']);
        function api_share_as_retweet(&$item) {
                $body = trim($item["body"]);
 
-               if (diaspora::is_reshare($body, false)===false) {
+               if (Diaspora::is_reshare($body, false)===false) {
                        return false;
                }
 
                        intval($gid),
                        dbesc($name));
                // error message if specified gid is not in database
-               if (count($rname) == 0)
+               if (!dbm::is_result($rname))
                        throw new BadRequestException('wrong group name');
 
                // delete group
                        intval($uid),
                        dbesc($name));
                // error message if specified group name already exists
-               if (count($rname) != 0)
+               if (dbm::is_result($rname))
                        throw new BadRequestException('group name already exists');
 
                // check if specified group name is a deleted group
                        intval($uid),
                        dbesc($name));
                // error message if specified group name already exists
-               if (count($rname) != 0)
+               if (dbm::is_result($rname))
                        $reactivate_group = true;
 
                // create group
 
                // get data of the specified message id
                $r = q("SELECT `id` FROM `mail` WHERE `id` = %d AND `uid` = %d",
-                       intval($id), 
+                       intval($id),
                        intval($uid));
                // error message if specified id is not in database
                if (!dbm::is_result($r)) {
                }
 
                // update seen indicator
-               $result = q("UPDATE `mail` SET `seen` = 1 WHERE `id` = %d AND `uid` = %d", 
-                       intval($id), 
+               $result = q("UPDATE `mail` SET `seen` = 1 WHERE `id` = %d AND `uid` = %d",
+                       intval($id),
                        intval($uid));
 
                if ($result) {
                // message if nothing was found
                if (!dbm::is_result($r))
                        $success = array('success' => false, 'search_results' => 'problem with query');
-               else if (count($r) == 0) 
+               else if (count($r) == 0)
                        $success = array('success' => false, 'search_results' => 'nothing found');
                else {
                        $ret = Array();