requireUser(); $users = new UsersRepo; if($user_ids == "0") $user_ids = (string) $this->getUser()->getId(); $usrs = explode(',', $user_ids); $response; $ic = sizeof($usrs); if(sizeof($usrs) > $count) $ic = $count; $usrs = array_slice($usrs, $offset * $count); for ($i=0; $i < $ic; $i++) { $usr = $users->get((int) $usrs[$i]); if(is_null($usr)) { $response[$i] = (object)[ "id" => $usrs[$i], "first_name" => "DELETED", "last_name" => "", "deactivated" => "deleted" ]; }else if($usrs[$i] == null){ }else{ $response[$i] = (object)[ "id" => $usr->getId(), "first_name" => $usr->getFirstName(), "last_name" => $usr->getLastName(), "is_closed" => false, "can_access_closed" => true, ]; $flds = explode(',', $fields); foreach($flds as $field) { switch ($field) { case 'verified': $response[$i]->verified = intval($usr->isVerified()); break; case 'sex': $response[$i]->sex = $this->getUser()->isFemale() ? 1 : 2; break; case 'has_photo': $response[$i]->has_photo = is_null($usr->getAvatarPhoto()) ? 0 : 1; break; case 'photo_max_orig': $response[$i]->photo_max_orig = $usr->getAvatarURL(); break; case 'photo_max': $response[$i]->photo_max = $usr->getAvatarURL(); break; case 'status': if($usr->getStatus() != null) $response[$i]->status = $usr->getStatus(); break; case 'screen_name': if($usr->getShortCode() != null) $response[$i]->screen_name = $usr->getShortCode(); break; case 'friend_status': switch($usr->getSubscriptionStatus($this->getUser())) { case 3: case 0: $response[$i]->friend_status = $usr->getSubscriptionStatus($this->getUser()); break; case 1: $response[$i]->friend_status = 2; break; case 2: $response[$i]->friend_status = 1; break; } break; case 'last_seen': if ($usr->onlineStatus() == 0) { $response[$i]->last_seen = (object) [ "platform" => 1, "time" => $usr->getOnline()->timestamp() ]; } case 'music': $response[$i]->music = $usr->getFavoriteMusic(); break; case 'movies': $response[$i]->movies = $usr->getFavoriteFilms(); break; case 'tv': $response[$i]->tv = $usr->getFavoriteShows(); break; case 'books': $response[$i]->books = $usr->getFavoriteBooks(); break; case 'city': $response[$i]->city = $usr->getCity(); break; case 'interests': $response[$i]->interests = $usr->getInterests(); break; } } if($usr->getOnline()->timestamp() + 300 > time()) { $response[$i]->online = 1; }else{ $response[$i]->online = 0; } } } return $response; } /* private function getUsersById(string $user_ids, string $fields = "", int $offset = 0, int $count = PHP_INT_MAX){ } */ function getFollowers(int $user_id, string $fields = "", int $offset = 0, int $count = 100): object { $offset++; $followers = []; $users = new UsersRepo; $this->requireUser(); foreach ($users->get($user_id)->getFollowers($offset, $count) as $follower) { $followers[] = $follower->getId(); } $response = $followers; if (!is_null($fields)) { $response = $this->get(implode(',', $followers), $fields, 0, $count); } return (object) [ "count" => $users->get($user_id)->getFollowersCount(), "items" => $response ]; } function search(string $q, string $fields = '', int $offset = 0, int $count = 100) { $users = new UsersRepo; $array = []; foreach ($users->find($q) as $user) { $array[] = $user->getId(); } return (object)[ "count" => $users->getFoundCount($q), "items" => $this->get(implode(',', $array), $fields, $offset, $count) ]; } }