]> git.mxchange.org Git - friendica.git/blobdiff - include/api.php
Class file relocations
[friendica.git] / include / api.php
index 5d962ecd0362df13f8fe22593bcb5601c3b3dc01..c304538af7fd335fe03408f517337c88d2458534 100644 (file)
@@ -7,7 +7,11 @@
  */
 
 use Friendica\App;
+use Friendica\Core\System;
 use Friendica\Core\Config;
+use Friendica\Core\NotificationsManager;
+use Friendica\Core\Worker;
+use Friendica\Database\DBM;
 
 require_once 'include/HTTPExceptions.php';
 require_once 'include/bbcode.php';
@@ -26,7 +30,6 @@ require_once 'mod/proxy.php';
 require_once 'include/message.php';
 require_once 'include/group.php';
 require_once 'include/like.php';
-require_once 'include/NotificationsManager.php';
 require_once 'include/plaintext.php';
 require_once 'include/xml.php';
 
@@ -96,7 +99,7 @@ $called_api = null;
         *
         * Register a function to be the endpont for defined API path.
         *
-        * @param string $path API URL path, relative to App::get_baseurl()
+        * @param string $path API URL path, relative to System::baseUrl()
         * @param string $func Function name to call on path request
         * @param bool $auth API need logged user
         * @param string $method HTTP method reqiured to call this endpoint.
@@ -209,7 +212,7 @@ $called_api = null;
                                dbesc(trim($user)),
                                dbesc($encrypted)
                        );
-                       if (dbm::is_result($r)) {
+                       if (DBM::is_result($r)) {
                                $record = $r[0];
                        }
                }
@@ -295,7 +298,7 @@ $called_api = null;
                                        $duration = (float) (microtime(true) - $stamp);
                                        logger("API call duration: " . round($duration, 2) . "\t" . $a->query_string, LOGGER_DEBUG);
 
-                                       if (get_config("system", "profiler")) {
+                                       if (Config::get("system", "profiler")) {
                                                $duration = microtime(true)-$a->performance["start"];
 
                                                /// @TODO round() really everywhere?
@@ -310,7 +313,7 @@ $called_api = null;
                                                        LOGGER_DEBUG
                                                );
 
-                                               if (get_config("rendertime", "callstack")) {
+                                               if (Config::get("rendertime", "callstack")) {
                                                        $o = "Database Read:\n";
                                                        foreach ($a->callstack["database"] AS $func => $time) {
                                                                $time = round($time, 3);
@@ -436,12 +439,12 @@ $called_api = null;
                $arr['$user'] = $user_info;
                $arr['$rss'] = array(
                        'alternate'    => $user_info['url'],
-                       'self'         => App::get_baseurl() . "/" . $a->query_string,
-                       'base'         => App::get_baseurl(),
+                       'self'         => System::baseUrl() . "/" . $a->query_string,
+                       'base'         => System::baseUrl(),
                        'updated'      => api_date(null),
                        'atom_updated' => datetime_convert('UTC', 'UTC', 'now', ATOM_TIME),
                        'language'     => $user_info['language'],
-                       'logo'         => App::get_baseurl() . "/images/friendica-32.png",
+                       'logo'         => System::baseUrl() . "/images/friendica-32.png",
                );
 
                return $arr;
@@ -458,7 +461,7 @@ $called_api = null;
        function api_unique_id_to_url($id) {
                $r = dba::select('contact', array('url'), array('uid' => 0, 'id' => $id), array('limit' => 1));
 
-               if (dbm::is_result($r)) {
+               if (DBM::is_result($r)) {
                        return $r["url"];
                } else {
                        return false;
@@ -483,7 +486,7 @@ $called_api = null;
                logger("api_get_user: Fetching user data for user ".$contact_id, LOGGER_DEBUG);
 
                // Searching for contact URL
-               if (!is_null($contact_id) AND (intval($contact_id) == 0)) {
+               if (!is_null($contact_id) && (intval($contact_id) == 0)) {
                        $user = dbesc(normalise_link($contact_id));
                        $url = $user;
                        $extra_query = "AND `contact`.`nurl` = '%s' ";
@@ -493,7 +496,7 @@ $called_api = null;
                }
 
                // Searching for contact id with uid = 0
-               if (!is_null($contact_id) AND (intval($contact_id) != 0)) {
+               if (!is_null($contact_id) && (intval($contact_id) != 0)) {
                        $user = dbesc(api_unique_id_to_url($contact_id));
 
                        if ($user == "") {
@@ -538,7 +541,7 @@ $called_api = null;
                        }
                }
 
-               if (is_null($user) AND ($a->argc > (count($called_api) - 1)) AND (count($called_api) > 0)) {
+               if (is_null($user) && ($a->argc > (count($called_api) - 1)) && (count($called_api) > 0)) {
                        $argid = count($called_api);
                        list($user, $null) = explode(".", $a->argv[$argid]);
                        if (is_numeric($user)) {
@@ -589,18 +592,18 @@ $called_api = null;
                api_best_nickname($uinfo);
 
                // if the contact wasn't found, fetch it from the contacts with uid = 0
-               if (!dbm::is_result($uinfo)) {
+               if (!DBM::is_result($uinfo)) {
                        $r = array();
 
                        if ($url != "") {
                                $r = q("SELECT * FROM `contact` WHERE `uid` = 0 AND `nurl` = '%s' LIMIT 1", dbesc(normalise_link($url)));
                        }
 
-                       if (dbm::is_result($r)) {
+                       if (DBM::is_result($r)) {
                                $network_name = network_to_name($r[0]['network'], $r[0]['url']);
 
                                // If no nick where given, extract it from the address
-                               if (($r[0]['nick'] == "") OR ($r[0]['name'] == $r[0]['nick'])) {
+                               if (($r[0]['nick'] == "") || ($r[0]['name'] == $r[0]['nick'])) {
                                        $r[0]['nick'] = api_get_nick($r[0]["url"]);
                                }
 
@@ -716,7 +719,7 @@ $called_api = null;
                $starred = 0;
 
                // Add a nick if it isn't present there
-               if (($uinfo[0]['nick'] == "") OR ($uinfo[0]['name'] == $uinfo[0]['nick'])) {
+               if (($uinfo[0]['nick'] == "") || ($uinfo[0]['name'] == $uinfo[0]['nick'])) {
                        $uinfo[0]['nick'] = api_get_nick($uinfo[0]["url"]);
                }
 
@@ -749,12 +752,12 @@ $called_api = null;
                        'contributors_enabled' => false,
                        'is_translator' => false,
                        'is_translation_enabled' => false,
-                       'following' => (($uinfo[0]['rel'] == CONTACT_IS_FOLLOWER) OR ($uinfo[0]['rel'] == CONTACT_IS_FRIEND)),
+                       'following' => (($uinfo[0]['rel'] == CONTACT_IS_FOLLOWER) || ($uinfo[0]['rel'] == CONTACT_IS_FRIEND)),
                        'follow_request_sent' => false,
                        'statusnet_blocking' => false,
                        'notifications' => false,
                        /// @TODO old way?
-                       //'statusnet_profile_url' => App::get_baseurl()."/contacts/".$uinfo[0]['cid'],
+                       //'statusnet_profile_url' => System::baseUrl()."/contacts/".$uinfo[0]['cid'],
                        'statusnet_profile_url' => $uinfo[0]['url'],
                        'uid' => intval($uinfo[0]['uid']),
                        'cid' => intval($uinfo[0]['cid']),
@@ -777,10 +780,10 @@ $called_api = null;
 
                $status_user = api_get_user($a, $item["author-link"]);
 
-               $status_user["protected"] = (($item["allow_cid"] != "") OR
-                                               ($item["allow_gid"] != "") OR
-                                               ($item["deny_cid"] != "") OR
-                                               ($item["deny_gid"] != "") OR
+               $status_user["protected"] = (($item["allow_cid"] != "") ||
+                                               ($item["allow_gid"] != "") ||
+                                               ($item["deny_cid"] != "") ||
+                                               ($item["deny_gid"] != "") ||
                                                $item["private"]);
 
                if ($item['thr-parent'] == $item['uri']) {
@@ -1082,7 +1085,7 @@ $called_api = null;
                        $_REQUEST['type'] = 'net-comment';
                } else {
                        // Check for throttling (maximum posts per day, week and month)
-                       $throttle_day = get_config('system','throttle_limit_day');
+                       $throttle_day = Config::get('system','throttle_limit_day');
                        if ($throttle_day > 0) {
                                $datefrom = date("Y-m-d H:i:s", time() - 24*60*60);
 
@@ -1090,7 +1093,7 @@ $called_api = null;
                                        AND `created` > '%s' AND `id` = `parent`",
                                        intval(api_user()), dbesc($datefrom));
 
-                               if (dbm::is_result($r)) {
+                               if (DBM::is_result($r)) {
                                        $posts_day = $r[0]["posts_day"];
                                } else {
                                        $posts_day = 0;
@@ -1103,7 +1106,7 @@ $called_api = null;
                                }
                        }
 
-                       $throttle_week = get_config('system','throttle_limit_week');
+                       $throttle_week = Config::get('system','throttle_limit_week');
                        if ($throttle_week > 0) {
                                $datefrom = date("Y-m-d H:i:s", time() - 24*60*60*7);
 
@@ -1111,7 +1114,7 @@ $called_api = null;
                                        AND `created` > '%s' AND `id` = `parent`",
                                        intval(api_user()), dbesc($datefrom));
 
-                               if (dbm::is_result($r)) {
+                               if (DBM::is_result($r)) {
                                        $posts_week = $r[0]["posts_week"];
                                } else {
                                        $posts_week = 0;
@@ -1124,7 +1127,7 @@ $called_api = null;
                                }
                        }
 
-                       $throttle_month = get_config('system','throttle_limit_month');
+                       $throttle_month = Config::get('system','throttle_limit_month');
                        if ($throttle_month > 0) {
                                $datefrom = date("Y-m-d H:i:s", time() - 24*60*60*30);
 
@@ -1132,7 +1135,7 @@ $called_api = null;
                                        AND `created` > '%s' AND `id` = `parent`",
                                        intval(api_user()), dbesc($datefrom));
 
-                               if (dbm::is_result($r)) {
+                               if (DBM::is_result($r)) {
                                        $posts_month = $r[0]["posts_month"];
                                } else {
                                        $posts_month = 0;
@@ -1161,11 +1164,11 @@ $called_api = null;
                if (requestdata('media_ids')) {
                        $r = q("SELECT `resource-id`, `scale`, `nickname`, `type` FROM `photo` INNER JOIN `user` ON `user`.`uid` = `photo`.`uid` WHERE `resource-id` IN (SELECT `resource-id` FROM `photo` WHERE `id` = %d) AND `scale` > 0 AND `photo`.`uid` = %d ORDER BY `photo`.`width` DESC LIMIT 1",
                                intval(requestdata('media_ids')), api_user());
-                       if (dbm::is_result($r)) {
+                       if (DBM::is_result($r)) {
                                $phototypes = Photo::supportedTypes();
                                $ext = $phototypes[$r[0]['type']];
-                               $_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]';
+                               $_REQUEST['body'] .= "\n\n" . '[url=' . System::baseUrl() . '/photos/' . $r[0]['nickname'] . '/image/' . $r[0]['resource-id'] . ']';
+                               $_REQUEST['body'] .= '[img]' . System::baseUrl() . '/photo/' . $r[0]['resource-id'] . '-' . $r[0]['scale'] . '.' . $ext . '[/img][/url]';
                        }
                }
 
@@ -1256,7 +1259,7 @@ $called_api = null;
                                dbesc(normalise_link($user_info['url']))
                );
 
-               if (dbm::is_result($lastwall)) {
+               if (DBM::is_result($lastwall)) {
                        $lastwall = $lastwall[0];
 
                        $in_reply_to = api_in_reply_to($lastwall);
@@ -1305,9 +1308,9 @@ $called_api = null;
                                $status_info["entities"] = $converted["entities"];
                        }
 
-                       if (($lastwall['item_network'] != "") AND ($status["source"] == 'web')) {
+                       if (($lastwall['item_network'] != "") && ($status["source"] == 'web')) {
                                $status_info["source"] = network_to_name($lastwall['item_network'], $user_info['url']);
-                       } elseif (($lastwall['item_network'] != "") AND (network_to_name($lastwall['item_network'], $user_info['url']) != $status_info["source"])) {
+                       } elseif (($lastwall['item_network'] != "") && (network_to_name($lastwall['item_network'], $user_info['url']) != $status_info["source"])) {
                                $status_info["source"] = trim($status_info["source"].' ('.network_to_name($lastwall['item_network'], $user_info['url']).')');
                        }
 
@@ -1354,7 +1357,7 @@ $called_api = null;
                                dbesc(normalise_link($user_info['url']))
                );
 
-               if (dbm::is_result($lastwall)) {
+               if (DBM::is_result($lastwall)) {
                        $lastwall = $lastwall[0];
 
                        $in_reply_to = api_in_reply_to($lastwall);
@@ -1393,11 +1396,11 @@ $called_api = null;
                                $user_info["status"]["entities"] = $converted["entities"];
                        }
 
-                       if (($lastwall['item_network'] != "") AND ($user_info["status"]["source"] == 'web')) {
+                       if (($lastwall['item_network'] != "") && ($user_info["status"]["source"] == 'web')) {
                                $user_info["status"]["source"] = network_to_name($lastwall['item_network'], $user_info['url']);
                        }
 
-                       if (($lastwall['item_network'] != "") AND (network_to_name($lastwall['item_network'], $user_info['url']) != $user_info["status"]["source"])) {
+                       if (($lastwall['item_network'] != "") && (network_to_name($lastwall['item_network'], $user_info['url']) != $user_info["status"]["source"])) {
                                $user_info["status"]["source"] = trim($user_info["status"]["source"] . ' (' . network_to_name($lastwall['item_network'], $user_info['url']) . ')');
                        }
 
@@ -1426,11 +1429,11 @@ $called_api = null;
                if (x($_GET, 'q')) {
                        $r = q("SELECT id FROM `contact` WHERE `uid` = 0 AND `name` = '%s'", dbesc($_GET["q"]));
 
-                       if (!dbm::is_result($r)) {
+                       if (!DBM::is_result($r)) {
                                $r = q("SELECT `id` FROM `contact` WHERE `uid` = 0 AND `nick` = '%s'", dbesc($_GET["q"]));
                        }
 
-                       if (dbm::is_result($r)) {
+                       if (DBM::is_result($r)) {
                                $k = 0;
                                foreach ($r AS $user) {
                                        $user_info = api_get_user($a, $user["id"], "json");
@@ -1679,7 +1682,7 @@ $called_api = null;
                );
 
                /// @TODO How about copying this to above methods which don't check $r ?
-               if (!dbm::is_result($r)) {
+               if (!DBM::is_result($r)) {
                        throw new BadRequestException("There is no status with this id.");
                }
 
@@ -1734,7 +1737,7 @@ $called_api = null;
                logger('API: api_conversation_show: '.$id);
 
                $r = q("SELECT `parent` FROM `item` WHERE `id` = %d", intval($id));
-               if (dbm::is_result($r)) {
+               if (DBM::is_result($r)) {
                        $id = $r[0]["parent"];
                }
 
@@ -1767,7 +1770,7 @@ $called_api = null;
                        intval($start), intval($count)
                );
 
-               if (!dbm::is_result($r)) {
+               if (!DBM::is_result($r)) {
                        throw new BadRequestException("There is no status with this id.");
                }
 
@@ -1817,7 +1820,7 @@ $called_api = null;
                        INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
                                AND (NOT `contact`.`blocked` OR `contact`.`pending`)
                        WHERE `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted`
-                       AND NOT `item`.`private` AND `item`.`allow_cid` = '' AND `item`.`allow`.`gid` = ''
+                       AND NOT `item`.`private` AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
                        AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
                        $sql_extra
                        AND `item`.`id`=%d",
@@ -1825,7 +1828,7 @@ $called_api = null;
                );
 
                /// @TODO other style than above functions!
-               if (dbm::is_result($r) && $r[0]['body'] != "") {
+               if (DBM::is_result($r) && $r[0]['body'] != "") {
                        if (strpos($r[0]['body'], "[/share]") !== false) {
                                $pos = strpos($r[0]['body'], "[share");
                                $post = substr($r[0]['body'], $pos);
@@ -1929,7 +1932,7 @@ $called_api = null;
                $start = $page * $count;
 
                // Ugly code - should be changed
-               $myurl = App::get_baseurl() . '/profile/'. $a->user['nickname'];
+               $myurl = System::baseUrl() . '/profile/'. $a->user['nickname'];
                $myurl = substr($myurl,strpos($myurl, '://') + 3);
                //$myurl = str_replace(array('www.','.'),array('','\\.'),$myurl);
                $myurl = str_replace('www.', '', $myurl);
@@ -2091,7 +2094,7 @@ $called_api = null;
                $item = q("SELECT * FROM `item` WHERE `id`=%d AND `uid`=%d LIMIT 1",
                                $itemid, api_user());
 
-               if (!dbm::is_result($item) || count($item) == 0) {
+               if (!DBM::is_result($item) || count($item) == 0) {
                        throw new BadRequestException("Invalid item.");
                }
 
@@ -2178,7 +2181,7 @@ $called_api = null;
                                `contact`.`id` AS `cid`
                                FROM `item`, `contact`
                                WHERE `item`.`uid` = %d
-                               AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
+                               AND `item`.`visible` = 1 AND `item`.`moderated` = 0 AND `item`.`deleted` = 0
                                AND `item`.`starred` = 1
                                AND `contact`.`id` = `item`.`contact-id`
                                AND (NOT `contact`.`blocked` OR `contact`.`pending`)
@@ -2232,7 +2235,7 @@ $called_api = null;
 
                //don't send title to regular StatusNET requests to avoid confusing these apps
                if (x($_GET, 'getText')) {
-                       $ret['title'] = $item['title'] ;
+                       $ret['title'] = $item['title'];
                        if ($_GET['getText'] == 'html') {
                                $ret['text'] = bbcode($item['body'], false, false);
                        } elseif ($_GET['getText'] == 'plain') {
@@ -2263,37 +2266,51 @@ $called_api = null;
 
                $statustitle = trim($item['title']);
 
-               if (($statustitle != '') and (strpos($statusbody, $statustitle) !== false)) {
+               if (($statustitle != '') && (strpos($statusbody, $statustitle) !== false)) {
                        $statustext = trim($statusbody);
                } else {
                        $statustext = trim($statustitle."\n\n".$statusbody);
                }
 
-               if (($item["network"] == NETWORK_FEED) and (strlen($statustext)> 1000)) {
+               if (($item["network"] == NETWORK_FEED) && (strlen($statustext)> 1000)) {
                        $statustext = substr($statustext, 0, 1000)."... \n".$item["plink"];
                }
 
                $statushtml = trim(bbcode($body, false, false));
 
+               // Workaround for clients with limited HTML parser functionality
                $search = array("<br>", "<blockquote>", "</blockquote>",
                                "<h1>", "</h1>", "<h2>", "</h2>",
                                "<h3>", "</h3>", "<h4>", "</h4>",
                                "<h5>", "</h5>", "<h6>", "</h6>");
-               $replace = array("<br>\n", "\n<blockquote>", "</blockquote>\n",
-                               "\n<h1>", "</h1>\n", "\n<h2>", "</h2>\n",
-                               "\n<h3>", "</h3>\n", "\n<h4>", "</h4>\n",
-                               "\n<h5>", "</h5>\n", "\n<h6>", "</h6>\n");
+               $replace = array("<br>", "<br><blockquote>", "</blockquote><br>",
+                               "<br><h1>", "</h1><br>", "<br><h2>", "</h2><br>",
+                               "<br><h3>", "</h3><br>", "<br><h4>", "</h4><br>",
+                               "<br><h5>", "</h5><br>", "<br><h6>", "</h6><br>");
                $statushtml = str_replace($search, $replace, $statushtml);
 
                if ($item['title'] != "") {
-                       $statushtml = "<h4>" . bbcode($item['title']) . "</h4>\n" . $statushtml;
+                       $statushtml = "<br><h4>" . bbcode($item['title']) . "</h4><br>" . $statushtml;
+               }
+
+               do {
+                       $oldtext = $statushtml;
+                       $statushtml = str_replace("<br><br>", "<br>", $statushtml);
+               } while ($oldtext != $statushtml);
+
+               if (substr($statushtml, 0, 4) == '<br>') {
+                       $statushtml = substr($statushtml, 4);
+               }
+
+               if (substr($statushtml, 0, -4) == '<br>') {
+                       $statushtml = substr($statushtml, -4);
+               }
+
+               // feeds without body should contain the link
+               if (($item['network'] == NETWORK_FEED) && (strlen($item['body']) == 0)) {
+                       $statushtml .= bbcode($item['plink']);
                }
 
-               // feeds without body should contain the link 
-               if (($item['network'] == NETWORK_FEED) && (strlen($item['body']) == 0)) { 
-                       $statushtml .= bbcode($item['plink']); 
-               } 
-               
                $entities = api_get_entitities($statustext, $body);
 
                return array(
@@ -2402,8 +2419,8 @@ $called_api = null;
                $offset = 0;
                //foreach ($urls[1] AS $id=>$url) {
                foreach ($ordered_urls AS $url) {
-                       if ((substr($url["title"], 0, 7) != "http://") AND (substr($url["title"], 0, 8) != "https://") AND
-                               !strpos($url["title"], "http://") AND !strpos($url["title"], "https://"))
+                       if ((substr($url["title"], 0, 7) != "http://") && (substr($url["title"], 0, 8) != "https://") &&
+                               !strpos($url["title"], "http://") && !strpos($url["title"], "https://"))
                                $display_url = $url["title"];
                        else {
                                $display_url = str_replace(array("http://www.", "https://www."), array("", ""), $url["url"]);
@@ -2448,14 +2465,14 @@ $called_api = null;
                                if ($image) {
                                        // If image cache is activated, then use the following sizes:
                                        // thumb  (150), small (340), medium (600) and large (1024)
-                                       if (!get_config("system", "proxy_disabled")) {
+                                       if (!Config::get("system", "proxy_disabled")) {
                                                $media_url = proxy_url($url);
 
                                                $sizes = array();
                                                $scale = scale_image($image[0], $image[1], 150);
                                                $sizes["thumb"] = array("w" => $scale["width"], "h" => $scale["height"], "resize" => "fit");
 
-                                               if (($image[0] > 150) OR ($image[1] > 150)) {
+                                               if (($image[0] > 150) || ($image[1] > 150)) {
                                                        $scale = scale_image($image[0], $image[1], 340);
                                                        $sizes["small"] = array("w" => $scale["width"], "h" => $scale["height"], "resize" => "fit");
                                                }
@@ -2463,7 +2480,7 @@ $called_api = null;
                                                $scale = scale_image($image[0], $image[1], 600);
                                                $sizes["medium"] = array("w" => $scale["width"], "h" => $scale["height"], "resize" => "fit");
 
-                                               if (($image[0] > 600) OR ($image[1] > 600)) {
+                                               if (($image[0] > 600) || ($image[1] > 600)) {
                                                        $scale = scale_image($image[0], $image[1], 1024);
                                                        $sizes["large"] = array("w" => $scale["width"], "h" => $scale["height"], "resize" => "fit");
                                                }
@@ -2494,7 +2511,7 @@ $called_api = null;
                $text = preg_replace_callback(
                                "|data:image/([^;]+)[^=]+=*|m",
                                function($match) use ($item) {
-                                       return App::get_baseurl()."/display/".$item['guid'];
+                                       return System::baseUrl()."/display/".$item['guid'];
                                },
                                $text);
                return $text;
@@ -2668,7 +2685,7 @@ $called_api = null;
                        list($status_user, $owner_user) = api_item_get_user($a, $item);
 
                        // Look if the posts are matching if they should be filtered by user id
-                       if ($filter_user AND ($status_user["id"] != $user_info["id"])) {
+                       if ($filter_user && ($status_user["id"] != $user_info["id"])) {
                                continue;
                        }
 
@@ -2712,9 +2729,9 @@ $called_api = null;
                                $status["entities"] = $converted["entities"];
                        }
 
-                       if (($item['item_network'] != "") AND ($status["source"] == 'web')) {
+                       if (($item['item_network'] != "") && ($status["source"] == 'web')) {
                                $status["source"] = network_to_name($item['item_network'], $user_info['url']);
-                       } elseif (($item['item_network'] != "") AND (network_to_name($item['item_network'], $user_info['url']) != $status["source"])) {
+                       } elseif (($item['item_network'] != "") && (network_to_name($item['item_network'], $user_info['url']) != $status["source"])) {
                                $status["source"] = trim($status["source"].' ('.network_to_name($item['item_network'], $user_info['url']).')');
                        }
 
@@ -2723,7 +2740,7 @@ $called_api = null;
                        // 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-name'] != $item['author-name']) || ($item['owner-avatar'] != $item['author-avatar']));
 
 
                        if ($item["id"] == $item["parent"]) {
@@ -2865,7 +2882,7 @@ $called_api = null;
                        $sql_extra = " AND false ";
                }
 
-               $r = q("SELECT `nurl` FROM `contact` WHERE `uid` = %d AND NOT `self` AND (NOT `blocked` OR `pending`) $sql_extra",
+               $r = q("SELECT `nurl` FROM `contact` WHERE `uid` = %d AND NOT `self` AND (NOT `blocked` OR `pending`) $sql_extra ORDER BY `nick`",
                        intval(api_user())
                );
 
@@ -2911,7 +2928,7 @@ $called_api = null;
 
                $name = $a->config['sitename'];
                $server = $a->get_hostname();
-               $logo = App::get_baseurl() . '/images/friendica-64.png';
+               $logo = System::baseUrl() . '/images/friendica-64.png';
                $email = $a->config['admin_email'];
                $closed = (($a->config['register_policy'] == REGISTER_CLOSED) ? 'true' : 'false');
                $private = ((Config::get('system', 'block_public')) ? 'true' : 'false');
@@ -2920,7 +2937,7 @@ $called_api = null;
                        $texlimit = string($a->config['api_import_size']);
                }
                $ssl = ((Config::get('system', 'have_ssl')) ? 'true' : 'false');
-               $sslserver = (($ssl === 'true') ? str_replace('http:','https:',App::get_baseurl()) : '');
+               $sslserver = (($ssl === 'true') ? str_replace('http:','https:',System::baseUrl()) : '');
 
                $config = array(
                        'site' => array('name' => $name,'server' => $server, 'theme' => 'default', 'path' => '',
@@ -2988,7 +3005,7 @@ $called_api = null;
                        intval(api_user())
                );
 
-               if (!dbm::is_result($r)) {
+               if (!DBM::is_result($r)) {
                        return;
                }
 
@@ -3022,7 +3039,7 @@ $called_api = null;
 
                if (api_user() === false) throw new ForbiddenException();
 
-               if (!x($_POST, "text") OR (!x($_POST,"screen_name") AND !x($_POST,"user_id"))) return;
+               if (!x($_POST, "text") || (!x($_POST,"screen_name") && !x($_POST,"user_id"))) return;
 
                $sender = api_get_user($a);
 
@@ -3122,7 +3139,7 @@ $called_api = null;
                        intval($id));
 
                // error message if specified id is not in database
-               if (!dbm::is_result($r)) {
+               if (!DBM::is_result($r)) {
                        if ($verbose == "true") {
                                $answer = array('result' => 'error', 'message' => 'message id not in database');
                                return api_format_data("direct_messages_delete", $type, array('$result' => $answer));
@@ -3213,7 +3230,7 @@ $called_api = null;
                                intval($since_id),
                                intval($start), intval($count)
                );
-               if ($verbose == "true" && !dbm::is_result($r)) {
+               if ($verbose == "true" && !DBM::is_result($r)) {
                        $answer = array('result' => 'error', 'message' => 'no mails available');
                        return api_format_data("direct_messages_all", $type, array('$result' => $answer));
                }
@@ -3318,7 +3335,7 @@ $called_api = null;
                $r = q("SELECT DISTINCT `resource-id` FROM `photo` WHERE `uid` = %d AND `album` = '%s'",
                                intval(api_user()),
                                dbesc($album));
-               if (!dbm::is_result($r))
+               if (!DBM::is_result($r))
                        throw new BadRequestException("album not available");
 
                // function for setting the items to "deleted = 1" which ensures that comments, likes etc. are not shown anymore
@@ -3329,7 +3346,7 @@ $called_api = null;
                                                dbesc($rr['resource-id'])
                                                );
 
-                       if (!dbm::is_result($photo_item)) {
+                       if (!DBM::is_result($photo_item)) {
                                throw new InternalServerErrorException("problem with deleting items occured");
                        }
                        drop_item($photo_item[0]['id'],false);
@@ -3375,7 +3392,7 @@ $called_api = null;
                $r = q("SELECT `id` FROM `photo` WHERE `uid` = %d AND `album` = '%s'",
                                intval(api_user()),
                                dbesc($album));
-               if (!dbm::is_result($r)) {
+               if (!DBM::is_result($r)) {
                        throw new BadRequestException("album not available");
                }
                // now let's update all photos to the albumname
@@ -3415,14 +3432,14 @@ $called_api = null;
                        'image/gif' => 'gif'
                );
                $data = array('photo'=>array());
-               if (dbm::is_result($r)) {
+               if (DBM::is_result($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 = App::get_baseurl() . "/photo/" . $rr['resource-id'] . "-" . $rr['scale'] . "." . $typetoext[$rr['type']];
+                               $thumb = System::baseUrl() . "/photo/" . $rr['resource-id'] . "-" . $rr['scale'] . "." . $typetoext[$rr['type']];
                                $photo['created'] = $rr['created'];
                                $photo['edited'] = $rr['edited'];
                                $photo['desc'] = $rr['desc'];
@@ -3484,7 +3501,7 @@ $called_api = null;
                                        intval(api_user()),
                                        dbesc($photo_id),
                                        dbesc($album));
-                       if (!dbm::is_result($r)) {
+                       if (!DBM::is_result($r)) {
                                throw new BadRequestException("photo not available");
                        }
                }
@@ -3604,7 +3621,7 @@ $called_api = null;
                                intval(api_user()),
                                dbesc($photo_id)
                        );
-               if (!dbm::is_result($r)) {
+               if (!DBM::is_result($r)) {
                        throw new BadRequestException("photo not available");
                }
                // now we can perform on the deletion of the photo
@@ -3620,7 +3637,7 @@ $called_api = null;
                                dbesc($photo_id)
                                );
 
-                       if (!dbm::is_result($photo_item)) {
+                       if (!DBM::is_result($photo_item)) {
                                throw new InternalServerErrorException("problem with deleting items occured");
                        }
                        // function for setting the items to "deleted = 1" which ensures that comments, likes etc. are not shown anymore
@@ -3683,7 +3700,7 @@ $called_api = null;
                                intval(api_user()),
                                intval($profileid));
                        // error message if specified profile id is not in database
-                       if (!dbm::is_result($r)) {
+                       if (!DBM::is_result($r)) {
                                throw new BadRequestException("profile_id not available");
                        }
                        $is_default_profile = $r['profile'];
@@ -3720,15 +3737,15 @@ $called_api = null;
                        );
 
                        $r = q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `micro` = '%s'  WHERE `self` AND `uid` = %d",
-                               dbesc(App::get_baseurl() . '/photo/' . $data['photo']['id'] . '-4.' . $fileext),
-                               dbesc(App::get_baseurl() . '/photo/' . $data['photo']['id'] . '-5.' . $fileext),
-                               dbesc(App::get_baseurl() . '/photo/' . $data['photo']['id'] . '-6.' . $fileext),
+                               dbesc(System::baseUrl() . '/photo/' . $data['photo']['id'] . '-4.' . $fileext),
+                               dbesc(System::baseUrl() . '/photo/' . $data['photo']['id'] . '-5.' . $fileext),
+                               dbesc(System::baseUrl() . '/photo/' . $data['photo']['id'] . '-6.' . $fileext),
                                intval(local_user())
                        );
                } else {
                        $r = q("UPDATE `profile` SET `photo` = '%s', `thumb` = '%s' WHERE `id` = %d AND `uid` = %d",
-                               dbesc(App::get_baseurl() . '/photo/' . $data['photo']['id'] . '-4.' . $filetype),
-                               dbesc(App::get_baseurl() . '/photo/' . $data['photo']['id'] . '-5.' . $filetype),
+                               dbesc(System::baseUrl() . '/photo/' . $data['photo']['id'] . '-4.' . $filetype),
+                               dbesc(System::baseUrl() . '/photo/' . $data['photo']['id'] . '-5.' . $filetype),
                                intval($_REQUEST['profile']),
                                intval(local_user())
                                        );
@@ -3744,12 +3761,12 @@ $called_api = null;
 
                // Update global directory in background
                //$user = api_get_user(get_app());
-               $url = App::get_baseurl() . '/profile/' . get_app()->user['nickname'];
-               if ($url && strlen(get_config('system', 'directory'))) {
-                       proc_run(PRIORITY_LOW, "include/directory.php", $url);
+               $url = System::baseUrl() . '/profile/' . get_app()->user['nickname'];
+               if ($url && strlen(Config::get('system', 'directory'))) {
+                       Worker::add(PRIORITY_LOW, "directory", $url);
                }
 
-               proc_run(PRIORITY_LOW, 'include/profile_update.php', api_user());
+               Worker::add(PRIORITY_LOW, 'profile_update', api_user());
 
                // output for client
                if ($data) {
@@ -3788,7 +3805,7 @@ $called_api = null;
                        $contact = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d",
                                                        intval($cid),
                                                        intval(api_user()));
-                       $contact_not_found |= !dbm::is_result($contact);
+                       $contact_not_found |= !DBM::is_result($contact);
                }
                return $contact_not_found;
        }
@@ -3838,7 +3855,7 @@ $called_api = null;
                        throw new InternalServerErrorException("image size exceeds PHP config settings, file was rejected by server");
                }
                // check against max upload size within Friendica instance
-               $maximagesize = get_config('system', 'maximagesize');
+               $maximagesize = Config::get('system', 'maximagesize');
                if (($maximagesize) && ($filesize > $maximagesize)) {
                        $formattedBytes = formatBytes($maximagesize);
                        throw new InternalServerErrorException("image size exceeds Friendica config setting (uploaded size: $formattedBytes)");
@@ -3856,7 +3873,7 @@ $called_api = null;
                @unlink($src);
 
                // check max length of images on server
-               $max_length = get_config('system', 'max_image_length');
+               $max_length = Config::get('system', 'max_image_length');
                if (! $max_length) {
                        $max_length = MAX_IMAGE_LENGTH;
                }
@@ -3973,8 +3990,8 @@ $called_api = null;
                                );
 
                // adds link to the thumbnail scale photo
-               $arr['body'] = '[url=' . App::get_baseurl() . '/photos/' . $owner_record[0]['name'] . '/image/' . $hash . ']'
-                                       . '[img]' . App::get_baseurl() . '/photo/' . $hash . '-' . "2" . '.'. $typetoext[$filetype] . '[/img]'
+               $arr['body'] = '[url=' . System::baseUrl() . '/photos/' . $owner_record[0]['nick'] . '/image/' . $hash . ']'
+                                       . '[img]' . System::baseUrl() . '/photo/' . $hash . '-' . "2" . '.'. $typetoext[$filetype] . '[/img]'
                                        . '[/url]';
 
                // do the magic for storing the item in the database and trigger the federation to other contacts
@@ -3982,7 +3999,7 @@ $called_api = null;
        }
 
        function prepare_photo_data($type, $scale, $photo_id) {
-               $scale_sql = ($scale === false ? "" : sprintf("and scale=%d", intval($scale)));
+               $scale_sql = ($scale === false ? "" : sprintf("AND scale=%d", intval($scale)));
                $data_sql = ($scale === false ? "" : "data, ");
 
                // added allow_cid, allow_gid, deny_cid, deny_gid to output as string like stored in database
@@ -4004,7 +4021,7 @@ $called_api = null;
                );
 
                // prepare output data for photo
-               if (dbm::is_result($r)) {
+               if (DBM::is_result($r)) {
                        $data = array('photo' => $r[0]);
                        $data['photo']['id'] = $data['photo']['resource-id'];
                        if ($scale !== false) {
@@ -4017,14 +4034,14 @@ $called_api = null;
                                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" => App::get_baseurl() . "/photo/" . $data['photo']['resource-id'] . "-" . $k . "." . $typetoext[$data['photo']['type']]);
+                                                                                       "href" => System::baseUrl() . "/photo/" . $data['photo']['resource-id'] . "-" . $k . "." . $typetoext[$data['photo']['type']]);
                                }
                        } else {
                                $data['photo']['link'] = array();
                                // when we have profile images we could have only scales from 4 to 6, but index of array always needs to start with 0
                                $i = 0;
                                for ($k = intval($data['photo']['minscale']); $k <= intval($data['photo']['maxscale']); $k++) {
-                                       $data['photo']['link'][$i] = App::get_baseurl() . "/photo/" . $data['photo']['resource-id'] . "-" . $k . "." . $typetoext[$data['photo']['type']];
+                                       $data['photo']['link'][$i] = System::baseUrl() . "/photo/" . $data['photo']['resource-id'] . "-" . $k . "." . $typetoext[$data['photo']['type']];
                                        $i++;
                                }
                        }
@@ -4113,7 +4130,7 @@ $called_api = null;
                        intval(api_user())
                );
 
-               if ((! dbm::is_result($r)) || ($r[0]['network'] !== NETWORK_DFRN)) {
+               if ((! DBM::is_result($r)) || ($r[0]['network'] !== NETWORK_DFRN)) {
                        throw new BadRequestException("Unknown contact");
                }
 
@@ -4260,7 +4277,7 @@ $called_api = null;
                $r = q("SELECT `nick` FROM `contact` WHERE `uid` = 0 AND `nurl` = '%s'",
                        dbesc(normalise_link($profile)));
 
-               if (dbm::is_result($r)) {
+               if (DBM::is_result($r)) {
                        $nick = $r[0]["nick"];
                }
 
@@ -4268,7 +4285,7 @@ $called_api = null;
                        $r = q("SELECT `nick` FROM `contact` WHERE `uid` = 0 AND `nurl` = '%s'",
                                dbesc(normalise_link($profile)));
 
-                       if (dbm::is_result($r)) {
+                       if (DBM::is_result($r)) {
                                $nick = $r[0]["nick"];
                        }
                }
@@ -4334,12 +4351,12 @@ $called_api = null;
                $in_reply_to['user_id_str'] = NULL;
                $in_reply_to['screen_name'] = NULL;
 
-               if (($item['thr-parent'] != $item['uri']) AND (intval($item['parent']) != intval($item['id']))) {
+               if (($item['thr-parent'] != $item['uri']) && (intval($item['parent']) != intval($item['id']))) {
                        $r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1",
                                intval($item['uid']),
                                dbesc($item['thr-parent']));
 
-                       if (dbm::is_result($r)) {
+                       if (DBM::is_result($r)) {
                                $in_reply_to['status_id'] = intval($r[0]['id']);
                        } else {
                                $in_reply_to['status_id'] = intval($item['parent']);
@@ -4353,7 +4370,7 @@ $called_api = null;
                                intval($in_reply_to['status_id'])
                        );
 
-                       if (dbm::is_result($r)) {
+                       if (DBM::is_result($r)) {
                                if ($r[0]['nick'] == "") {
                                        $r[0]['nick'] = api_get_nick($r[0]["url"]);
                                }
@@ -4415,7 +4432,7 @@ $called_api = null;
                if (isset($data["text"]))
                        $body = $data["text"];
 
-               if (($body == "") AND (isset($data["title"])))
+               if (($body == "") && (isset($data["title"])))
                        $body = $data["title"];
 
                if (isset($data["url"]))
@@ -4487,7 +4504,7 @@ $called_api = null;
                                intval($uid),
                                intval($gid));
                        // error message if specified gid is not in database
-                       if (!dbm::is_result($r))
+                       if (!DBM::is_result($r))
                                throw new BadRequestException("gid not available");
                }
                else
@@ -4542,7 +4559,7 @@ $called_api = null;
                        intval($uid),
                        intval($gid));
                // error message if specified gid is not in database
-               if (!dbm::is_result($r))
+               if (!DBM::is_result($r))
                        throw new BadRequestException('gid not available');
 
                // get data of the specified group id and group name
@@ -4551,7 +4568,7 @@ $called_api = null;
                        intval($gid),
                        dbesc($name));
                // error message if specified gid is not in database
-               if (!dbm::is_result($rname))
+               if (!DBM::is_result($rname))
                        throw new BadRequestException('wrong group name');
 
                // delete group
@@ -4590,7 +4607,7 @@ $called_api = null;
                        intval($uid),
                        dbesc($name));
                // error message if specified group name already exists
-               if (dbm::is_result($rname))
+               if (DBM::is_result($rname))
                        throw new BadRequestException('group name already exists');
 
                // check if specified group name is a deleted group
@@ -4598,7 +4615,7 @@ $called_api = null;
                        intval($uid),
                        dbesc($name));
                // error message if specified group name already exists
-               if (dbm::is_result($rname))
+               if (DBM::is_result($rname))
                        $reactivate_group = true;
 
                // create group
@@ -4829,7 +4846,7 @@ $called_api = null;
                        intval($uid));
 
                // error message if specified id is not in database
-               if (!dbm::is_result($r)) {
+               if (!DBM::is_result($r)) {
                        $answer = array('result' => 'error', 'message' => 'message id not in database');
                        return api_format_data("direct_messages_setseen", $type, array('$result' => $answer));
                }
@@ -4887,7 +4904,7 @@ $called_api = null;
                $profile_url = $user_info["url"];
 
                // message if nothing was found
-               if (!dbm::is_result($r)) {
+               if (!DBM::is_result($r)) {
                        $success = array('success' => false, 'search_results' => 'problem with query');
                } elseif (count($r) == 0) {
                        $success = array('success' => false, 'search_results' => 'nothing found');
@@ -4931,7 +4948,7 @@ $called_api = null;
 
                // retrieve general information about profiles for user
                $multi_profiles = feature_enabled(api_user(),'multi_profiles');
-               $directory = get_config('system', 'directory');
+               $directory = Config::get('system', 'directory');
 
                // get data of the specified profile id or all profiles of the user if not specified
                if ($profileid != 0) {
@@ -4940,7 +4957,7 @@ $called_api = null;
                                intval($profileid));
 
                        // error message if specified gid is not in database
-                       if (!dbm::is_result($r)) {
+                       if (!DBM::is_result($r)) {
                                throw new BadRequestException("profile_id not available");
                        }
                } else {