mirror of
https://github.com/openvk/openvk
synced 2024-11-15 03:31:18 +03:00
791c36416d
- Теперь видосы работают как аудио, пользователи могут добавлять и удалять видео из коллекции. Но, правда, после обновления пользователи потеряют все свои видео, потом подумаю как исправить - Ещё теперь видео можно загружать в группу, жесть. И на странице группы теперь показывается 2 случайных видео из группы - Возможно, исправлена загрузка видео под виндовс (а может я её сломал) - У видосов теперь сохраняется ширина и высота, а так же длина - У прикреплённого видео рядом с названием показывается его длина - Видео теперь размещаются в masonry layout. Если помимо видео у поста есть другие фотографии или другие видео, то показывается только обложка видео и кнопка проигрывания - В класс video в api добавлена поддержка просмотра видеозаписей из групп
62 lines
2.1 KiB
PHP
Executable file
62 lines
2.1 KiB
PHP
Executable file
<?php declare(strict_types=1);
|
|
namespace openvk\VKAPI\Handlers;
|
|
use openvk\Web\Models\Entities\User;
|
|
use openvk\Web\Models\Repositories\Users as UsersRepo;
|
|
use openvk\Web\Models\Entities\Club;
|
|
use openvk\Web\Models\Repositories\Clubs as ClubsRepo;
|
|
use openvk\Web\Models\Entities\Video as VideoEntity;
|
|
use openvk\Web\Models\Repositories\Videos as VideosRepo;
|
|
use openvk\Web\Models\Entities\Comment;
|
|
use openvk\Web\Models\Repositories\Comments as CommentsRepo;
|
|
|
|
final class Video extends VKAPIRequestHandler
|
|
{
|
|
function get(int $owner_id, string $videos = "", int $offset = 0, int $count = 30, int $extended = 0): object
|
|
{
|
|
$this->requireUser();
|
|
|
|
if(!empty($videos)) {
|
|
$vids = explode(',', $videos);
|
|
|
|
foreach($vids as $vid)
|
|
{
|
|
$id = explode("_", $vid);
|
|
|
|
$items = [];
|
|
|
|
$video = (new VideosRepo)->getByOwnerAndVID(intval($id[0]), intval($id[1]));
|
|
if($video) {
|
|
$items[] = $video->getApiStructure($this->getUser());
|
|
}
|
|
}
|
|
|
|
return (object) [
|
|
"count" => count($items),
|
|
"items" => $items
|
|
];
|
|
} else {
|
|
if ($owner_id > 0)
|
|
$owner = (new UsersRepo)->get($owner_id);
|
|
else
|
|
$owner = (new ClubsRepo)->get(abs($owner_id));
|
|
|
|
if(!$owner)
|
|
$this->fail(20, "Invalid user");
|
|
|
|
if($owner_id > 0 && !$owner->getPrivacyPermission('videos.read', $this->getUser()))
|
|
$this->fail(20, "Access denied: this user chose to hide his videos");
|
|
|
|
$videos = (new VideosRepo)->getByEntityId($owner_id, $offset, $count);
|
|
$videosCount = (new VideosRepo)->getVideosCountByEntityId($owner_id);
|
|
|
|
$items = [];
|
|
foreach ($videos as $video)
|
|
$items[] = $video->getApiStructure($this->getUser());
|
|
|
|
return (object) [
|
|
"count" => $videosCount,
|
|
"items" => $items
|
|
];
|
|
}
|
|
}
|
|
}
|