mirror of
https://github.com/openvk/openvk
synced 2025-05-13 12:36:38 +03:00
Добавлены аудиостатусы (у пользователей), блок с друзьями, слушающих музыку на странице аудиозаписей, объект status_audio в users.get, улучшены настройки приватности и ещё что-то
37 lines
No EOL
998 B
PHP
37 lines
No EOL
998 B
PHP
<?php declare(strict_types=1);
|
|
namespace openvk\Web\Models\Entities\Traits;
|
|
use openvk\Web\Models\Repositories\Audios;
|
|
use Chandler\Database\DatabaseConnection;
|
|
|
|
trait TAudioStatuses
|
|
{
|
|
function isBroadcastEnabled(): bool
|
|
{
|
|
return (bool) $this->getRecord()->audio_broadcast_enabled;
|
|
}
|
|
|
|
function getCurrentAudioStatus()
|
|
{
|
|
if(!$this->isBroadcastEnabled()) return NULL;
|
|
|
|
$audioId = $this->getRecord()->last_played_track;
|
|
|
|
if(!$audioId) return NULL;
|
|
$audio = (new Audios)->get($audioId);
|
|
|
|
if(!$audio || $audio->isDeleted())
|
|
return NULL;
|
|
|
|
$listensTable = DatabaseConnection::i()->getContext()->table("audio_listens");
|
|
$lastListen = $listensTable->where([
|
|
"entity" => $this->getRealId(),
|
|
"audio" => $audio->getId(),
|
|
"time >" => (time() - $audio->getLength()) - 10,
|
|
])->fetch();
|
|
|
|
if($lastListen)
|
|
return $audio;
|
|
|
|
return NULL;
|
|
}
|
|
} |