mirror of
https://github.com/openvk/openvk
synced 2024-12-25 01:51:03 +03:00
Some apis + locales
This commit is contained in:
parent
51775a9ccf
commit
eaaa454a45
5 changed files with 76 additions and 8 deletions
|
@ -1,9 +1,9 @@
|
||||||
<?php declare(strict_types=1);
|
<?php declare(strict_types=1);
|
||||||
namespace openvk\VKAPI\Handlers;
|
namespace openvk\VKAPI\Handlers;
|
||||||
use Chandler\Database\DatabaseConnection;
|
use Chandler\Database\DatabaseConnection;
|
||||||
use openvk\Web\Models\Repositories\Posts as PostsRepo;
|
use openvk\Web\Models\Repositories\Posts as PostsRepo, Users as UsersRepo, Clubs;
|
||||||
use openvk\Web\Models\Entities\User;
|
use openvk\Web\Models\Entities\User;
|
||||||
use openvk\VKAPI\Handlers\Wall;
|
use openvk\VKAPI\Handlers\{Wall, Users, Groups};
|
||||||
|
|
||||||
final class Newsfeed extends VKAPIRequestHandler
|
final class Newsfeed extends VKAPIRequestHandler
|
||||||
{
|
{
|
||||||
|
@ -55,12 +55,18 @@ final class Newsfeed extends VKAPIRequestHandler
|
||||||
|
|
||||||
if($this->getUser()->getNsfwTolerance() === User::NSFW_INTOLERANT)
|
if($this->getUser()->getNsfwTolerance() === User::NSFW_INTOLERANT)
|
||||||
$queryBase .= " AND `nsfw` = 0";
|
$queryBase .= " AND `nsfw` = 0";
|
||||||
|
|
||||||
|
if(($ignoredCount = $this->getUser()->getIgnoredSourcesCount()) > 0) {
|
||||||
|
$sources = implode("', '", $this->getUser()->getIgnoredSources(1, $ignoredCount, true));
|
||||||
|
|
||||||
|
$queryBase .= " AND `posts`.`wall` NOT IN ('$sources')";
|
||||||
|
}
|
||||||
|
|
||||||
$start_from = empty($start_from) ? PHP_INT_MAX : $start_from;
|
$start_from = empty($start_from) ? PHP_INT_MAX : $start_from;
|
||||||
$start_time = empty($start_time) ? 0 : $start_time;
|
$start_time = empty($start_time) ? 0 : $start_time;
|
||||||
$end_time = empty($end_time) ? PHP_INT_MAX : $end_time;
|
$end_time = empty($end_time) ? PHP_INT_MAX : $end_time;
|
||||||
$posts = DatabaseConnection::i()->getConnection()->query("SELECT `posts`.`id` " . $queryBase . " AND `posts`.`id` <= " . $start_from . " AND " . $start_time . " <= `posts`.`created` AND `posts`.`created` <= " . $end_time . " ORDER BY `created` DESC LIMIT " . $count . " OFFSET " . $offset);
|
$posts = DatabaseConnection::i()->getConnection()->query("SELECT `posts`.`id` " . $queryBase . " AND `posts`.`id` <= " . $start_from . " AND " . $start_time . " <= `posts`.`created` AND `posts`.`created` <= " . $end_time . " ORDER BY `created` DESC LIMIT " . $count . " OFFSET " . $offset);
|
||||||
|
|
||||||
$rposts = [];
|
$rposts = [];
|
||||||
$ids = [];
|
$ids = [];
|
||||||
foreach($posts as $post) {
|
foreach($posts as $post) {
|
||||||
|
@ -73,4 +79,52 @@ final class Newsfeed extends VKAPIRequestHandler
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getBanned(int $extended = 0, string $fields = "", string $name_case = "nom")
|
||||||
|
{
|
||||||
|
$this->requireUser();
|
||||||
|
|
||||||
|
$count = 50;
|
||||||
|
$offset = 0;
|
||||||
|
|
||||||
|
$banned = array_slice($this->getUser()->getIgnoredSources(1, $count + $offset, true), $offset);
|
||||||
|
|
||||||
|
if($extended == 0) {
|
||||||
|
$retArr/*d*/ = [
|
||||||
|
"groups" => [],
|
||||||
|
"members" => [] # why
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach($banned as $ban) {
|
||||||
|
if($ban > 0) {
|
||||||
|
$retArr["members"][] = $ban;
|
||||||
|
} else {
|
||||||
|
$retArr["groups"][] = $ban;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $retArr;
|
||||||
|
} else {
|
||||||
|
$retArr = [
|
||||||
|
"groups" => [],
|
||||||
|
"profiles" => []
|
||||||
|
];
|
||||||
|
|
||||||
|
$usIds = "";
|
||||||
|
$clubIds = "";
|
||||||
|
|
||||||
|
foreach($banned as $ban) {
|
||||||
|
if($ban > 0) {
|
||||||
|
$usIds .= $ban . ",";
|
||||||
|
} else {
|
||||||
|
$clubIds .= ($ban * -1) . ",";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$retArr["profiles"][] = (new Users)->get($usIds, $fields);
|
||||||
|
$retArr["groups"][] = (new Groups)->getById($clubIds, $fields);
|
||||||
|
|
||||||
|
return $retArr;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -594,21 +594,25 @@ final class WallPresenter extends OpenVKPresenter
|
||||||
$ignoredSource = (int)$this->postParam("source");
|
$ignoredSource = (int)$this->postParam("source");
|
||||||
|
|
||||||
if($this->user->identity->getIgnoredSourcesCount() > 50)
|
if($this->user->identity->getIgnoredSourcesCount() > 50)
|
||||||
$this->flashFail("err", "Error", "Max ignors count is 50", null, true);
|
$this->flashFail("err", "Error", tr("max_ignores", 50), null, true);
|
||||||
|
|
||||||
if($ignoredSource > 0) {
|
if($ignoredSource > 0) {
|
||||||
$ignoredSourceModel = (new Users)->get($ignoredSource);
|
$ignoredSourceModel = (new Users)->get($ignoredSource);
|
||||||
|
|
||||||
if(!$ignoredSourceModel)
|
if(!$ignoredSourceModel)
|
||||||
$this->flashFail("err", "Error", "Invalid user", null, true);
|
$this->flashFail("err", "Error", tr("invalid_user"), null, true);
|
||||||
|
|
||||||
if($ignoredSourceModel->getId() == $this->user->id)
|
if($ignoredSourceModel->getId() == $this->user->id)
|
||||||
$this->flashFail("err", "Error", "Can't ignore yourself", null, true);
|
$this->flashFail("err", "Error", tr("cant_ignore_self"), null, true);
|
||||||
} else {
|
} else {
|
||||||
$ignoredSourceModel = (new Clubs)->get(abs($ignoredSource));
|
$ignoredSourceModel = (new Clubs)->get(abs($ignoredSource));
|
||||||
|
|
||||||
if(!$ignoredSourceModel)
|
if(!$ignoredSourceModel)
|
||||||
$this->flashFail("err", "Error", "Invalid club", null, true);
|
$this->flashFail("err", "Error", tr("invalid_club"), null, true);
|
||||||
|
|
||||||
|
if($ignoredSourceModel->isHideFromGlobalFeedEnabled()) {
|
||||||
|
$this->flashFail("err", "Error", tr("no_sense"), null, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($ignoredSourceModel->isIgnoredBy($this->user->identity)) {
|
if($ignoredSourceModel->isIgnoredBy($this->user->identity)) {
|
||||||
|
|
|
@ -144,7 +144,7 @@
|
||||||
{var $canReport = $thisUser->getId() != $club->getOwner()->getId()}
|
{var $canReport = $thisUser->getId() != $club->getOwner()->getId()}
|
||||||
{if $canReport}
|
{if $canReport}
|
||||||
<a class="profile_link" style="display:block;" href="javascript:reportVideo()">{_report}</a>
|
<a class="profile_link" style="display:block;" href="javascript:reportVideo()">{_report}</a>
|
||||||
<a class="profile_link" style="display:block;" id="ignoreSomeone" data-id="-{$club->getId()}">
|
<a n:if="!$club->isHideFromGlobalFeedEnabled()" class="profile_link" style="display:block;" id="ignoreSomeone" data-id="-{$club->getId()}">
|
||||||
{if !$club->isIgnoredBy($thisUser)}{_ignore_club}{else}{_unignore_club}{/if}
|
{if !$club->isIgnoredBy($thisUser)}{_ignore_club}{else}{_unignore_club}{/if}
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
|
|
@ -1285,6 +1285,11 @@
|
||||||
"group_is_banned" = "Group was successfully banned";
|
"group_is_banned" = "Group was successfully banned";
|
||||||
|
|
||||||
"description_too_long" = "Description is too long.";
|
"description_too_long" = "Description is too long.";
|
||||||
|
"invalid_club" = "This group does not exists.";
|
||||||
|
"invalid_user" = "This user does not exists.";
|
||||||
|
"no_sense" = "No sense.";
|
||||||
|
"cant_ignore_self" = "Can't ignore urself.";
|
||||||
|
"max_ignores" = "Max ignores — $1";
|
||||||
|
|
||||||
/* Admin actions */
|
/* Admin actions */
|
||||||
|
|
||||||
|
|
|
@ -1179,6 +1179,11 @@
|
||||||
"group_owner_is_banned" = "Создатель сообщества успешно забанен.";
|
"group_owner_is_banned" = "Создатель сообщества успешно забанен.";
|
||||||
"group_is_banned" = "Сообщество успешно забанено";
|
"group_is_banned" = "Сообщество успешно забанено";
|
||||||
"description_too_long" = "Описание слишком длинное.";
|
"description_too_long" = "Описание слишком длинное.";
|
||||||
|
"invalid_club" = "Такой группы не существует.";
|
||||||
|
"invalid_user" = "Такого пользователя не существует.";
|
||||||
|
"no_sense" = "Нет смысла.";
|
||||||
|
"cant_ignore_self" = "Нельзя игнорировать себя.";
|
||||||
|
"max_ignores" = "Максимальное число игноров — $1";
|
||||||
|
|
||||||
/* Admin actions */
|
/* Admin actions */
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue