]> git.mxchange.org Git - friendica.git/blobdiff - src/Object/Api/Twitter/User.php
Merge pull request #13676 from MrPetovan/bug/13673-markers-json-output
[friendica.git] / src / Object / Api / Twitter / User.php
index 8972d7583701e1fa89c3d10bcbb1bbd8a31aefee..3ad5c5461ec466ad97515677bd83ad5be44a9c2f 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -24,8 +24,9 @@ namespace Friendica\Object\Api\Twitter;
 use Friendica\BaseDataTransferObject;
 use Friendica\Content\ContactSelector;
 use Friendica\Content\Text\BBCode;
-use Friendica\Core\Protocol;
 use Friendica\Model\Contact;
+use Friendica\Network\HTTPException\InternalServerErrorException;
+use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Proxy;
 
 /**
@@ -81,6 +82,42 @@ class User extends BaseDataTransferObject
        protected $withheld_in_countries;
        /** @var string */
        protected $withheld_scope;
+       /** @var string */
+       protected $profile_image_url;
+       /** @var bool */
+       protected $follow_request_sent;
+       /** @var string */
+       protected $profile_image_url_large;
+       /** @var string */
+       protected $profile_image_url_profile_size;
+       /** @var int */
+       protected $utc_offset;
+       /** @var string */
+       protected $time_zone;
+       /** @var bool */
+       protected $geo_enabled;
+       /** @var null */
+       protected $lang;
+       /** @var bool */
+       protected $contributors_enabled;
+       /** @var bool */
+       protected $is_translator;
+       /** @var bool */
+       protected $is_translation_enabled;
+       /** @var bool */
+       protected $following;
+       /** @var bool */
+       protected $statusnet_blocking;
+       /** @var bool */
+       protected $notifications;
+       /** @var int */
+       protected $uid;
+       /** @var int */
+       protected $pid;
+       /** @var int */
+       protected $cid;
+       /** @var mixed */
+       protected $statusnet_profile_url;
 
        /**
         * Missing fields:
@@ -94,11 +131,12 @@ class User extends BaseDataTransferObject
         * @param array $publicContact         Full contact table record with uid = 0
         * @param array $apcontact             Optional full apcontact table record
         * @param array $userContact           Optional full contact table record with uid != 0
-        * @param bool  $skip_status           Whether to remove the last status property, currently unused
+        * @param null  $status
         * @param bool  $include_user_entities Whether to add the entities property
-        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+        *
+        * @throws InternalServerErrorException
         */
-       public function __construct(array $publicContact, array $apcontact = [], array $userContact = [], $skip_status = false, $include_user_entities = true)
+       public function __construct(array $publicContact, array $apcontact = [], array $userContact = [], $status = null, bool $include_user_entities = true)
        {
                $uid = $userContact['uid'] ?? 0;
 
@@ -118,13 +156,13 @@ class User extends BaseDataTransferObject
                if (!$include_user_entities) {
                        unset($this->entities);
                }
-               $this->description             = BBCode::toPlaintext($publicContact['about']);
+               $this->description             = (!empty($publicContact['about']) ? BBCode::toPlaintext($publicContact['about']) : '');
                $this->profile_image_url_https = Contact::getAvatarUrlForUrl($publicContact['url'], $uid, Proxy::SIZE_MICRO);
                $this->protected               = false;
                $this->followers_count         = $apcontact['followers_count'] ?? 0;
                $this->friends_count           = $apcontact['following_count'] ?? 0;
                $this->listed_count            = 0;
-               $this->created_at              = api_date($publicContact['created']);
+               $this->created_at              = DateTimeFormat::utc($publicContact['created'], DateTimeFormat::API);
                $this->favourites_count        = 0;
                $this->verified                = $uid != 0;
                $this->statuses_count          = $apcontact['statuses_count'] ?? 0;
@@ -132,8 +170,11 @@ class User extends BaseDataTransferObject
                $this->default_profile         = false;
                $this->default_profile_image   = false;
 
-               // @TODO Replace skip_status parameter with an optional Status parameter
-               unset($this->status);
+               if (!empty($status)) {
+                       $this->status = $status;
+               } else {
+                       unset($this->status);
+               }
 
                //  Unused optional fields
                unset($this->withheld_in_countries);
@@ -159,8 +200,6 @@ class User extends BaseDataTransferObject
                $this->uid                   = (int)$uid;
                $this->cid                   = (int)($userContact['id'] ?? 0);
                $this->pid                   = (int)$publicContact['id'];
-               $this->self                  = (boolean)($userContact['self'] ?? false);
-               $this->network               = $publicContact['network'] ?: Protocol::DFRN;
                $this->statusnet_profile_url = $publicContact['url'];
        }
 }