mirror of
https://github.com/openvk/openvk
synced 2024-12-23 00:51:03 +03:00
VKAPI: Little bit of refactoring
This commit is contained in:
parent
cb8038590c
commit
aef39f3102
2 changed files with 108 additions and 74 deletions
|
@ -3,19 +3,35 @@ namespace openvk\VKAPI\Handlers;
|
|||
use openvk\Web\Models\Entities\User;
|
||||
use openvk\Web\Models\Entities\Clubs;
|
||||
use openvk\Web\Models\Repositories\Clubs as ClubsRepo;
|
||||
use openvk\Web\Models\Repositories\Users as UsersRepo;
|
||||
use openvk\Web\Models\Entities\Post;
|
||||
use openvk\Web\Models\Entities\Postable;
|
||||
use openvk\Web\Models\Repositories\Posts as PostsRepo;
|
||||
|
||||
final class Groups extends VKAPIRequestHandler
|
||||
{
|
||||
function get(string $group_ids, string $fields = "", int $offset = 0, int $count = 100, bool $online = false): array
|
||||
function get(int $user_id = 0, string $fields = "", int $offset = 0, int $count = 6, bool $online = false): object
|
||||
{
|
||||
$this->requireUser();
|
||||
|
||||
$clubs = new ClubsRepo;
|
||||
$clbs = explode(',', $group_ids);
|
||||
$response;
|
||||
if ($user_id == 0) {
|
||||
foreach($this->getUser()->getClubs($offset+1) as $club) {
|
||||
$clbs[] = $club;
|
||||
}
|
||||
$clbsCount = $this->getUser()->getClubCount();
|
||||
} else {
|
||||
$users = new UsersRepo;
|
||||
$user = $users->get($user_id);
|
||||
if (is_null($user)) {
|
||||
$this->fail(15, "Access denied");
|
||||
}
|
||||
foreach($user->getClubs($offset+1) as $club) {
|
||||
$clbs[] = $club;
|
||||
}
|
||||
$clbsCount = $user->getClubCount();
|
||||
}
|
||||
|
||||
$rClubs;
|
||||
|
||||
$ic = sizeof($clbs);
|
||||
|
||||
|
@ -24,22 +40,21 @@ final class Groups extends VKAPIRequestHandler
|
|||
$clbs = array_slice($clbs, $offset * $count);
|
||||
|
||||
for ($i=0; $i < $ic; $i++) {
|
||||
$usr = $clubs->get((int) $clbs[$i]);
|
||||
$usr = $clbs[$i];
|
||||
if(is_null($usr))
|
||||
{
|
||||
$response[$i] = (object)[
|
||||
$rClubs[$i] = (object)[
|
||||
"id" => $clbs[$i],
|
||||
"first_name" => "DELETED",
|
||||
"last_name" => "",
|
||||
"name" => "DELETED",
|
||||
"deactivated" => "deleted"
|
||||
];
|
||||
}else if($clbs[$i] == null){
|
||||
|
||||
}else{
|
||||
$response[$i] = (object)[
|
||||
$rClubs[$i] = (object)[
|
||||
"id" => $usr->getId(),
|
||||
"first_name" => $usr->getFirstName(),
|
||||
"last_name" => $usr->getLastName(),
|
||||
"name" => $usr->getName(),
|
||||
"screen_name" => $usr->getShortCode(),
|
||||
"is_closed" => false,
|
||||
"can_access_closed" => true,
|
||||
];
|
||||
|
@ -49,34 +64,28 @@ final class Groups extends VKAPIRequestHandler
|
|||
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;
|
||||
$rClubs[$i]->verified = intval($usr->isVerified());
|
||||
break;
|
||||
case 'has_photo':
|
||||
$response[$i]->has_photo = is_null($usr->getAvatarPhoto()) ? 0 : 1;
|
||||
$rClubs[$i]->has_photo = is_null($usr->getAvatarPhoto()) ? 0 : 1;
|
||||
break;
|
||||
case 'photo_max_orig':
|
||||
$response[$i]->photo_max_orig = $usr->getAvatarURL();
|
||||
$rClubs[$i]->photo_max_orig = $usr->getAvatarURL();
|
||||
break;
|
||||
case 'photo_max':
|
||||
$response[$i]->photo_max = $usr->getAvatarURL();
|
||||
$rClubs[$i]->photo_max = $usr->getAvatarURL();
|
||||
break;
|
||||
|
||||
case 'members_count':
|
||||
$rClubs[$i]->members_count = $usr->getFollowersCount();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// НУЖЕН фикс - либо из-за моего дебилизма, либо из-за сегментации котлеток некоторые пользовали отображаются как онлайн, хотя лол, если зайти на страницу, то оный уже офлайн
|
||||
if($online == true && $usr->getOnline()->timestamp() + 2505600 > time()) {
|
||||
$response[$i]->online = 1;
|
||||
}else{
|
||||
$response[$i]->online = 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return $response;
|
||||
return (object) [
|
||||
"count" => $clbsCount,
|
||||
"items" => $rClubs
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,11 +5,14 @@ use openvk\Web\Models\Repositories\Users as UsersRepo;
|
|||
|
||||
final class Users extends VKAPIRequestHandler
|
||||
{
|
||||
function get(string $user_ids, string $fields = "", int $offset = 0, int $count = 100): array
|
||||
function get(string $user_ids = "0", string $fields = "", int $offset = 0, int $count = 100): array
|
||||
{
|
||||
$this->requireUser();
|
||||
|
||||
$users = new UsersRepo;
|
||||
if($user_ids == "0")
|
||||
$user_ids = (string) $this->getUser()->getId();
|
||||
|
||||
$usrs = explode(',', $user_ids);
|
||||
$response;
|
||||
|
||||
|
@ -44,54 +47,76 @@ final class Users extends VKAPIRequestHandler
|
|||
|
||||
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':
|
||||
$response[$i]->status = $usr->getStatus();
|
||||
break;
|
||||
case 'screen_name':
|
||||
$response[$i]->screen_name = $usr->getShortCode();
|
||||
break;
|
||||
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;
|
||||
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() + 2505600 > time()) {
|
||||
$response[$i]->online = 1;
|
||||
}else{
|
||||
$response[$i]->online = 0;
|
||||
}
|
||||
if($usr->getOnline()->timestamp() + 300 > time()) {
|
||||
$response[$i]->online = 1;
|
||||
}else{
|
||||
$response[$i]->online = 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue