]> git.mxchange.org Git - friendica.git/blobdiff - include/api.php
Merge branch 'master', remote-tracking branch 'remotes/upstream/master'
[friendica.git] / include / api.php
index 8a84ed1de2ae8fb6aef4c0be206552dbaa845945..065f14cffbd4023bba14dbd19200acad1ab03f1e 100755 (executable)
@@ -83,7 +83,7 @@
                        $record = $r[0];
                } else {
                   logger('API_login failure: ' . print_r($_SERVER,true), LOGGER_DEBUG);
-                   header('WWW-Authenticate: Basic realm="Friendika"');
+                   header('WWW-Authenticate: Basic realm="Friendica"');
                    header('HTTP/1.0 401 Unauthorized');
                    die('This api requires login');
                }
                $page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0);
                if ($page<0) $page=0;
                $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
+               $max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0);
                //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
                
                $start = $page*$count;
 
                //$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false);
 
+               if ($max_id > 0)
+                       $sql_extra = 'AND `item`.`id` <= '.intval($max_id);
+
                $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, 
                        `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
                        `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
        api_register_func('api/statuses/friends_timeline','api_statuses_home_timeline', true);
 
        /**
-        * 
-        * http://developer.twitter.com/doc/get/statuses/show
         * 
         */
        function api_statuses_show(&$a, $type){
        }
        api_register_func('api/statuses/show','api_statuses_show', true);
 
+       //api_register_func('api/statuses/mentions','api_statuses_mentions', true);
+       //api_register_func('api/statuses/replies','api_statuses_mentions', true);
+
 
        function api_statuses_user_timeline(&$a, $type){
                if (local_user()===false) return false;
                        $status_user = (($item['cid']==$user_info['id'])?$user_info: api_item_get_user($a,$item));
 
                        if ($item['parent']!=$item['id']) {
+                               $r = q("select id from item where parent=%s and id<%s order by id desc limit 1", 
+                                       intval($item['parent']), intval($item['id']));
+                               if ($r)
+                                       $in_reply_to_status_id = $r[0]['id'];
+                               else
+                                       $in_reply_to_status_id = $item['parent'];
 
-                               $r = q("select `item`.`contact-id`, `contact`.nick from item, contact 
-                                       where `contact`.`id` = `item`.`contact-id` and `item`.id=%d", intval($item['parent']));
+                               $r = q("select `item`.`contact-id`, `contact`.nick, `item`.`author-name` from item, contact 
+                                       where `contact`.`id` = `item`.`contact-id` and `item`.id=%d", intval($in_reply_to_status_id));
 
-                               $in_reply_to_screen_name = $r[0]['nick'];
+                               $in_reply_to_screen_name = $r[0]['author-name'];
                                $in_reply_to_user_id = $r[0]['contact-id'];
+
                        } else {
                                $in_reply_to_screen_name = '';
                                $in_reply_to_user_id = 0;
+                               $in_reply_to_status_id = 0;
                        }
 
                        $status = array(
-                               'text'          => html2plain(bbcode($item['body']), 0),
+                               'text'          => trim($item['title']." \n".html2plain(bbcode($item['body']), 0)),
                                'truncated' => False,
                                'created_at'=> api_date($item['created']),
-                               'in_reply_to_status_id' => ($item['parent']!=$item['id']? intval($item['parent']):''),
+                               'in_reply_to_status_id' => $in_reply_to_status_id,
                                'source'    => (($item['app']) ? $item['app'] : 'web'),
                                'id'            => intval($item['id']),
                                'in_reply_to_user_id' => $in_reply_to_user_id,
        api_register_func('api/oauth/request_token', 'api_oauth_request_token', false);
        api_register_func('api/oauth/access_token', 'api_oauth_access_token', false);
 
-
+/*
+Not implemented by now:
+statuses/public_timeline
+statuses/mentions
+statuses/replies
+statuses/retweets_of_me
+statuses/destroy
+statuses/retweet
+friendships/create
+friendships/destroy
+friendships/exists
+friendships/show
+account/update_location
+account/update_profile_background_image
+account/update_profile_image
+favorites
+favorites/create
+favorites/destroy
+blocks/create
+blocks/destroy
+oauth/authorize
+
+Not implemented in status.net:
+statuses/retweeted_to_me
+statuses/retweeted_by_me
+direct_messages/destroy
+account/end_session
+account/update_delivery_device
+notifications/follow
+notifications/leave
+blocks/exists
+blocks/blocking
+*/