mirror of
https://github.com/openvk/openvk
synced 2025-07-01 21:48:17 +03:00
fix(API): users bdate field, can edit/delete comments (#1359)
И парочка фиксов или фич которые позволяют работать OpenVK Native так как надо. 1. add openvk native support - Просто добавил определение натива как android/ios клиент 2. Добавил /.well-known/assetlinks.json - По этому адресу автоматически стучится андроид чтобы проверить что приложению можно открывать ссылки с этого адреса по умолчанию. 3. Добавил поле bdate в users 4. Добавил инфу о том может ли редачить или удалять комментарий пользователь.
This commit is contained in:
parent
93b1202a13
commit
c8a97f8b8d
8 changed files with 60 additions and 1 deletions
|
@ -317,6 +317,32 @@ final class Users extends VKAPIRequestHandler
|
||||||
|
|
||||||
$response[$i]->custom_fields = $append_array;
|
$response[$i]->custom_fields = $append_array;
|
||||||
break;
|
break;
|
||||||
|
case "bdate":
|
||||||
|
if (!$canView) {
|
||||||
|
$response[$i]->bdate = "01.01.1970";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$visibility = $usr->getBirthdayPrivacy();
|
||||||
|
$response[$i]->bdate_visibility = $visibility;
|
||||||
|
|
||||||
|
$birthday = $usr->getBirthday();
|
||||||
|
if ($birthday) {
|
||||||
|
switch ($visibility) {
|
||||||
|
case 1:
|
||||||
|
$response[$i]->bdate = $birthday->format('%d.%m');
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$response[$i]->bdate = $birthday->format('%d.%m.%Y');
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
default:
|
||||||
|
$response[$i]->bdate = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$response[$i]->bdate = null;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -877,6 +877,8 @@ final class Wall extends VKAPIRequestHandler
|
||||||
"id" => $comment->getId(),
|
"id" => $comment->getId(),
|
||||||
"from_id" => $oid,
|
"from_id" => $oid,
|
||||||
"date" => $comment->getPublicationTime()->timestamp(),
|
"date" => $comment->getPublicationTime()->timestamp(),
|
||||||
|
"can_edit" => $post->canBeEditedBy($this->getUser()),
|
||||||
|
"can_delete" => $post->canBeDeletedBy($this->getUser()),
|
||||||
"text" => $comment->getText(false),
|
"text" => $comment->getText(false),
|
||||||
"post_id" => $post->getVirtualId(),
|
"post_id" => $post->getVirtualId(),
|
||||||
"owner_id" => method_exists($post, 'isPostedOnBehalfOfGroup') && $post->isPostedOnBehalfOfGroup() ? $post->getOwner()->getId() * -1 : $post->getOwner()->getId(),
|
"owner_id" => method_exists($post, 'isPostedOnBehalfOfGroup') && $post->isPostedOnBehalfOfGroup() ? $post->getOwner()->getId() * -1 : $post->getOwner()->getId(),
|
||||||
|
|
|
@ -176,11 +176,13 @@ class Post extends Postable
|
||||||
$platform = $this->getRecord()->api_source_name;
|
$platform = $this->getRecord()->api_source_name;
|
||||||
if ($forAPI) {
|
if ($forAPI) {
|
||||||
switch ($platform) {
|
switch ($platform) {
|
||||||
|
case 'openvk_native':
|
||||||
case 'openvk_refresh_android':
|
case 'openvk_refresh_android':
|
||||||
case 'openvk_legacy_android':
|
case 'openvk_legacy_android':
|
||||||
return 'android';
|
return 'android';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'openvk_native_ios':
|
||||||
case 'openvk_ios':
|
case 'openvk_ios':
|
||||||
case 'openvk_legacy_ios':
|
case 'openvk_legacy_ios':
|
||||||
return 'iphone';
|
return 'iphone';
|
||||||
|
|
|
@ -971,11 +971,13 @@ class User extends RowModel
|
||||||
$platform = $this->getRecord()->client_name;
|
$platform = $this->getRecord()->client_name;
|
||||||
if ($forAPI) {
|
if ($forAPI) {
|
||||||
switch ($platform) {
|
switch ($platform) {
|
||||||
|
case 'openvk_native':
|
||||||
case 'openvk_refresh_android':
|
case 'openvk_refresh_android':
|
||||||
case 'openvk_legacy_android':
|
case 'openvk_legacy_android':
|
||||||
return 'android';
|
return 'android';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'openvk_native_ios':
|
||||||
case 'openvk_ios':
|
case 'openvk_ios':
|
||||||
case 'openvk_legacy_ios':
|
case 'openvk_legacy_ios':
|
||||||
return 'iphone';
|
return 'iphone';
|
||||||
|
|
|
@ -147,6 +147,29 @@ final class AboutPresenter extends OpenVKPresenter
|
||||||
$this->redirect("https://github.com/openvk/openvk#readme");
|
$this->redirect("https://github.com/openvk/openvk#readme");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function renderAssetLinksJSON(): void
|
||||||
|
{
|
||||||
|
# Необходимо любому андроид приложению для автоматического разрешения принимать ссылки с этого сайта.
|
||||||
|
# Не шарю как писать норм на php поэтому тут чутка на вайбкодил - искренне ваш, ZAZiOs.
|
||||||
|
header("Content-Type: application/json");
|
||||||
|
|
||||||
|
$data = [
|
||||||
|
[
|
||||||
|
"relation" => ["delegate_permission/common.handle_all_urls"],
|
||||||
|
"target" => [
|
||||||
|
"namespace" => "android_app",
|
||||||
|
"package_name" => "oss.OpenVK.Native",
|
||||||
|
"sha256_cert_fingerprints" => [
|
||||||
|
"79:67:14:23:DC:6E:FA:49:64:1F:F1:81:0E:B0:A3:AE:6E:88:AB:0D:CF:BC:02:96:F3:6D:76:6B:82:94:D6:9C",
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
|
echo json_encode($data, JSON_UNESCAPED_SLASHES);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
public function renderDev(): void
|
public function renderDev(): void
|
||||||
{
|
{
|
||||||
$this->redirect("https://docs.ovk.to/");
|
$this->redirect("https://docs.ovk.to/");
|
||||||
|
|
|
@ -407,6 +407,8 @@ routes:
|
||||||
handler: "About->robotsTxt"
|
handler: "About->robotsTxt"
|
||||||
- url: "/humans.txt"
|
- url: "/humans.txt"
|
||||||
handler: "About->humansTxt"
|
handler: "About->humansTxt"
|
||||||
|
- url: "/.well-known/assetlinks.json"
|
||||||
|
handler: "About->AssetLinksJSON"
|
||||||
- url: "/dev"
|
- url: "/dev"
|
||||||
handler: "About->dev"
|
handler: "About->dev"
|
||||||
- url: "/iapi/getPhotosFromPost/{num}_{num}"
|
- url: "/iapi/getPhotosFromPost/{num}_{num}"
|
||||||
|
|
BIN
Web/static/img/app_icons/openvk_native.png
Normal file
BIN
Web/static/img/app_icons/openvk_native.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
|
@ -3,4 +3,6 @@
|
||||||
<Client tag="vk4me" name="VK4ME" url="http://vk4me.crx.moe/" img="/assets/packages/static/openvk/img/app_icons/vk4me.png" />
|
<Client tag="vk4me" name="VK4ME" url="http://vk4me.crx.moe/" img="/assets/packages/static/openvk/img/app_icons/vk4me.png" />
|
||||||
<Client tag="openvk_legacy_android" name="OpenVK Legacy" url="https://f-droid.org/packages/uk.openvk.android.legacy/" img="/assets/packages/static/openvk/img/app_icons/openvk_legacy.png" />
|
<Client tag="openvk_legacy_android" name="OpenVK Legacy" url="https://f-droid.org/packages/uk.openvk.android.legacy/" img="/assets/packages/static/openvk/img/app_icons/openvk_legacy.png" />
|
||||||
<Client tag="openvk_refresh_android" name="OpenVK Refresh" url="https://github.com/openvk/mobile-android-refresh" img="/assets/packages/static/openvk/img/app_icons/openvk_refresh.png" />
|
<Client tag="openvk_refresh_android" name="OpenVK Refresh" url="https://github.com/openvk/mobile-android-refresh" img="/assets/packages/static/openvk/img/app_icons/openvk_refresh.png" />
|
||||||
|
<Client tag="openvk_native" name="OpenVK Native" url="https://ovk.to/club9628" img="/assets/packages/static/openvk/img/app_icons/openvk_native.png" />
|
||||||
|
<Client tag="openvk_native_ios" name="OpenVK Native" url="https://ovk.to/club9628" img="/assets/packages/static/openvk/img/app_icons/openvk_native.png" />
|
||||||
</Clients>
|
</Clients>
|
Loading…
Reference in a new issue