From 0aeec29bedf5575d1e828d397d24aadfe6b4f5d4 Mon Sep 17 00:00:00 2001 From: veselcraft Date: Thu, 25 Aug 2022 01:43:52 +0300 Subject: [PATCH] VKAPI: Fix bug when DELETED user appear if there is no user_ids --- VKAPI/Handlers/Users.php | 221 ++++++++++++++++++++------------------- 1 file changed, 113 insertions(+), 108 deletions(-) diff --git a/VKAPI/Handlers/Users.php b/VKAPI/Handlers/Users.php index 572aefd7..6185a250 100644 --- a/VKAPI/Handlers/Users.php +++ b/VKAPI/Handlers/Users.php @@ -14,7 +14,7 @@ final class Users extends VKAPIRequestHandler $user_ids = (string) $authuser->getId(); $usrs = explode(',', $user_ids); - $response; + $response = array(); $ic = sizeof($usrs); @@ -24,117 +24,122 @@ final class Users extends VKAPIRequestHandler $usrs = array_slice($usrs, $offset * $count); for($i=0; $i < $ic; $i++) { - $usr = $users->get((int) $usrs[$i]); - if(is_null($usr) || $usr->isDeleted()) { - $response[$i] = (object)[ - "id" => (int) $usrs[$i], - "first_name" => "DELETED", - "last_name" => "", - "deactivated" => "deleted" - ]; - } else if($usrs[$i] == NULL) { + if($usrs[$i] != 0) { + $usr = $users->get((int) $usrs[$i]); + if(is_null($usr) || $usr->isDeleted()) { + $response[$i] = (object)[ + "id" => (int) $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, - ]; + } 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); + $flds = explode(',', $fields); - foreach($flds as $field) { - switch($field) { - case "verified": - $response[$i]->verified = intval($usr->isVerified()); - break; - case "sex": - $response[$i]->sex = $usr->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("original"); - break; - case "photo_50": - $response[$i]->photo_50 = $usr->getAvatarURL(); - break; - case "photo_100": - $response[$i]->photo_100 = $usr->getAvatarURL("tiny"); - break; - case "photo_200": - $response[$i]->photo_200 = $usr->getAvatarURL("normal"); - break; - case "photo_200_orig": # вообще не ебу к чему эта строка ну пусть будет кек - $response[$i]->photo_200_orig = $usr->getAvatarURL("normal"); - break; - case "photo_400_orig": - $response[$i]->photo_400_orig = $usr->getAvatarURL("normal"); - 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($authuser)) { - case 3: - # NOTICE falling through - case 0: - $response[$i]->friend_status = $usr->getSubscriptionStatus($authuser); - 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; - } - } + foreach($flds as $field) { + switch($field) { + case "verified": + $response[$i]->verified = intval($usr->isVerified()); + break; + case "sex": + $response[$i]->sex = $usr->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("original"); + break; + case "photo_50": + $response[$i]->photo_50 = $usr->getAvatarURL(); + break; + case "photo_100": + $response[$i]->photo_100 = $usr->getAvatarURL("tiny"); + break; + case "photo_200": + $response[$i]->photo_200 = $usr->getAvatarURL("normal"); + break; + case "photo_200_orig": # вообще не ебу к чему эта строка ну пусть будет кек + $response[$i]->photo_200_orig = $usr->getAvatarURL("normal"); + break; + case "photo_400_orig": + $response[$i]->photo_400_orig = $usr->getAvatarURL("normal"); + break; + + # Она хочет быть выебанной видя матан + # Покайфу когда ты Виет а вокруг лишь дискриминант - if($usr->getOnline()->timestamp() + 300 > time()) - $response[$i]->online = 1; - else - $response[$i]->online = 0; - } + # ору а когда я это успел написать + # вова кстати не матерись в коде мамка же спалит азщазаззазщазазаззазазазх + 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($authuser)) { + case 3: + # NOTICE falling through + case 0: + $response[$i]->friend_status = $usr->getSubscriptionStatus($authuser); + 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;