Not-yet-federated open source social network inspired by VK.
Find a file
celestora 9d7a465d0d
Music, finally! (#512)
* Add audio upload feature

* Add audio embed thing

* Move bullet.gif to ovk

* Draft some music API methods

* Add support for base64 ids to Audios.getById

* Disallow having more than 65k audios in playlist

* Add playlist model

* Draft some playlist-related API methods

* Fix behabiour of album-related methods

Generators f***** me in le a**

* Add IDv3 autofill

* Add sql dumps

i forgor to upload it xdddd

* Add playlists sql

* Fix audio upload not working on Windows 11 because Windows is the worst operating system which doesn't work properly under any circumstances

* Fix cocksex in audio.get

yes

* Интерфейсы

* Interface updade

* Update en.strings

* Add audio queue

* Make repeat button work

* Some improvements to audio queue

* Фгвшщ йгугу шьзкщмуьутеы

* Make shuffle and "наушники" buttons work, add f...

avicons when playing audio, save some values (like volume and last played track) to localstorage, add ability to toggle time type in player, fix uploading audios with cover (maybe) and add dragndrop to upload page

* Add funny tip with time when hover track div

* Add something

* Add audios picker & move track in smal player вниз

* Summary (required)

Description

* [WIP] Add calls, stories and clips.

Изменены фавиконки (поменьше стали)
У миниплеера ползунок теперь в стиле bsdn и большого плеера, добавлен ползунок громкости
Добавлена кнопка добавления аудио в группу (у миниплеера)
Если вы смотрите аудио группы, которой можете управлять, появляется кнопка "удалить аудио из группы"
Снизу плейлиста в списке теперь показывается автор.
При прикреплении аудиозаписей к посту теперь есть поиск "по композиции" и "по исполнителю"
Добавил explicit.svg, который я забыл добавить в предыдущем коммите.
Вкладочки немного переделаны
При наведении на кнопки "трек вперёд" или "трек назад" показывается название предыдущего или следующего трека соответственно

* 1 new commit to master: [WIP]: Add audios

- Теперь группа может разрешать загружать всем треки в неё
- Теперь треки загружаются на сервер ajax'ом, и так можно очень много аудио загружать
- Вёрстка списка плейлистов изменена, теперь она на гридах
- Немного изменено апи, теперь метод editAlbum сохраняет новую информацию ee объект плейлистов теперь возвращают реальное время
- Удалены лишние пути из routes.yml
- При переключении страниц теперь если на текущей странице есть играющий трек, он нормально подсвечивается
- Из init-db.sql удалены таблицы аудиозаписей
- В Groups.getSettings и groups.edit теперь есть информация о аудиозаписях

* (смешное название коммита)

- Теперь на странице пользователя/группы показываются три случайные песни, а не первые три как раньше
- Теперь пробел на странице аудио не перемещает вас в низ страницы
- Оптимизирован мини-плеер, теперь он инициализируется при любом нажатии на него, а не при наведении
- Теперь при завершении проигрывания трека в мини-плеере он ищет другой трек рядом, и если находит то воспроизводит. Будет удобно для постов с подборками треков
- Поиск теперь показывает 14 результатов
- Теперь при возникновении ошибки загрузки аудио она нормально отображается
- Вместе с плеером на странице с аудиозаписями теперь двигаются и вкладки
- Добавление аудио в группу по идее должно нормально работать

* Implement playlists listens

- У плейлистов теперь есть прослушивания в общем.
- Прослушивания у большого плеера теперь засчитываются, если трек был дослушан до конца
- В объекте плейлистов теперь возвращается listens и cover_url
- Получение плееров через /audios/context переписано, повторяющийся код удалён, правда сильно количество строк сократить не получилось
- Теперь цвета плеера темнее, а иконка проигрывания изменена
- Теперь, если очередь из треков кончилась, то плеер перенаправляет вас в начало очереди.

* php 8.2 fixxxxxxxxxxxxxxxxxxxxxxx

* Implement audiostatuses

Добавлены аудиостатусы (у пользователей), блок с друзьями, слушающих музыку на странице аудиозаписей, объект status_audio в users.get, улучшены настройки приватности и ещё что-то

* ?

- Переделан метод в классе user для получения друзей с проигрываемыми песнями. Теперь среди них могут появляться и группы (хз стоит ли оставлять это или нет). Так же больше не показываются удалённые пользователи
- Трек у плеера теперь двигается немного плавнее. Ещё теперь нету смешных багов с подсказкой времени, когда можно было увести её за экран или  промотать дальше трека. Переключить повторение трека теперь можно нажатием кнопки R.
- Длинное название трека больше не сносит время
- Наверное, теперь аудиозаписи нормально отображаются в темах midnight и modern
- Аудиозаписи больше не крашаются, если пользователь неавторизован.
- Немного переделан миниплеер.
- В миниплеере теперь громкость берётся из локалсторейджа.
- Улучшено редактирование аудиозаписей. Теперь данные в дата атрибуты нормально сохраняются, а так же слова песни и метка "explicit" меняются
- Удалён css, оставшийся ещё от public technical preview 1, а так же путь /audios{num}
- При наведении на трек теперь пропадает время, и на его месте появляются кнопки
- Стандартная аватарка в midnight теперь инвертируется
- В админке в редактировании аудио теперь показывается дата редактирования, дата создания, длина и оригинальный файл аудио. Так же на странице редактирования больше нет вылетов, если вы задали несуществующий аккаунт

* !

- Добавлены строки для мобильной темы
- Добавлено предупреждение перед полным удалением плейлиста
- Нажатие кнопки M = нажатие кнопки наушников
- В классе апи Audio поставлены willExecuteWriteAction, ещё теперь нельзя получить число аудиозаписей у пользователей, которые их закрыли. Ещё теперь нельзя получать uploaded_only аудиозаписи у тех ну вы поняли короче.
- При наведении на длинное название песни оно теперь показывается полностью
- Надо ещё что-то сюда написать, так что: При редактировании аудиозаписи название окна теперь не "Редактировать", а "Редактировать аудиозапись", а вместо кнопки OK кнопка "Сохранить"

* .

- Добавлен тур по аудиозаписям, но пока без скриншотов.
- "Мои Аудиозаписи" в меню теперь располагаются под Моими Видеозаписями для канона
- В настройках приватности "кто может видеть мои аудиозаписи" теперь располагаются под "кто может видеть мои видеозаписи"
- В настройках внешнего вида мои аудиозаписи тоже под видео
- Изменён <title> на странице аудиозаписей. Теперь показывается "Аудиозаписи" + имя пользователя в родительном падеже. А если это группа, то "Аудиозаписи группы". То же самое с плейлистами
- Исправлены ссылка в ссылке на странице с плейлистами
- При наведении на название песни больше не сносится иконка explicit
- Добавлена максимальная длина названия и описания плейлиста при редактировании.

* М

- Долокализована админка (точно помню, что уже делал это, но ладно)
- Удалён лишний пункт "audios" в getLeftMenuItemStatus (реально)
- Если. У плеера есть параметр "hideButtons", то при наведении на него не пропадает время.
- На странице редактирования/создания плейлиста если у песни длинное название, то оно да похуй короче. Ну в общем лучше стало
- Там где нужно, добавлена строка в конце файла
- Возвращена строка "photo" в английской локали (я её случайно удалил 👍 )

* у

- У изъятых аудиозаписей больше не показывается кнопка "добавить в группу". Так же при нажатии на кнопку удаления из коллекции окно не всплывает.
- "Удаление аудио из группы" тоже лучше работать стало с изъятыми аудио.

* з

- В пикере аудиозаписей "more..." заменено на "показать больше аудиозаписей"
- Если включен режим показа оставшегося времени, то при окончании песни больше не показывается "--1:--1"
- В пикере аудиозаписей, если у вас нет аудиозаписей и вы ничего не искали, показывается "Вы ещё не добавляли аудиозаписей"
- <hr>'ы стали серыми
- Добавлены title'ы у кнопок в большом плеере
- Проставлены alt'ы у плейлистов

* Musique: linux saport)

назар хуйню релизнул кста, плейерс клаб два не слушайте не рекомендую

* Update and rename gamma-00000-disco.sql to 00041-music.sql

* Update 00041-music.sql

---------

Co-authored-by: Ilya Prokopenko <dsrev@protonmail.com>
Co-authored-by: n1rwana <aydashkin@vk.com>
Co-authored-by: lalka2018 <99399973+lalka2016@users.noreply.github.com>
Co-authored-by: veselcraft <veselcraft@icloud.com>
Co-authored-by: DeathPleiad <43928323+Parad1seF0x@users.noreply.github.com>
2023-11-12 00:41:07 +03:00
.github Push changes when any branch is changed 2023-01-28 08:10:26 +00:00
CLI Coin: Add ability to see how much voices you reveiced trough notifications 2022-06-02 14:07:31 +03:00
data whoops 2023-02-03 14:23:22 +03:00
Email Users: Add ability to change email address in settings 2022-05-06 16:17:08 +02:00
install Music, finally! (#512) 2023-11-12 00:41:07 +03:00
locales Music, finally! (#512) 2023-11-12 00:41:07 +03:00
misc Initial commit 2020-06-07 19:04:43 +03:00
ServiceAPI [WIP] Textarea: Upload multiple pictures (#800) 2023-10-03 19:40:13 +03:00
storage Fix missing dirs 2020-06-07 21:36:55 +03:00
themepacks Music, finally! (#512) 2023-11-12 00:41:07 +03:00
tmp/api-storage Add photos.save, photos.saveWallPhoto, photos.saveOwnerPhoto, photos.getUploadServer 2022-03-29 20:43:34 +03:00
VKAPI Music, finally! (#512) 2023-11-12 00:41:07 +03:00
Web Music, finally! (#512) 2023-11-12 00:41:07 +03:00
.gitignore 4 2023-01-29 19:16:10 +02:00
bootstrap.php Music, finally! (#512) 2023-11-12 00:41:07 +03:00
CODE_OF_CONFLICT.md Rename CoC and CS files 2022-05-23 16:25:27 +03:00
CODE_STYLE.md Rename CoC and CS files 2022-05-23 16:25:27 +03:00
composer.json Music, finally! (#512) 2023-11-12 00:41:07 +03:00
COPYING Change license to less restrictive LGPLv2.1 2020-06-14 19:56:16 +03:00
crowdin.yml Update Crowdin configuration file 2021-09-13 19:17:49 +03:00
DBEntity.updated.php Add logging system (#940) 2023-08-11 16:43:39 +03:00
manifest.yml Global: Get rid of OpenVK 2 branding (#105) 2021-10-31 18:29:52 +07:00
openvk-example.yml Music, finally! (#512) 2023-11-12 00:41:07 +03:00
openvkctl Coin: A very early implementation of Toncoin fetching 2022-05-07 02:33:22 +03:00
quirks.yml Add polls (#743) 2022-10-11 19:04:43 +03:00
README.md Update PHP 8 testing status 2023-10-29 21:42:55 +07:00
README_RU.md i forgor momento 2023-10-29 21:55:02 +07:00
Vagrantfile Update vagrantfile (i'm still not sure it works) 2022-04-10 18:15:19 +03:00

openvkOpenVK

Русский

OpenVK is an attempt to create a simple CMS that cosplays imitates old VKontakte. Code provided here is not stable yet.

VKontakte belongs to Pavel Durov and VK Group.

To be honest, we don't know whether if it even works. However, this version is maintained and we will be happy to accept your bugreports in our bug tracker. You should also be able to submit them using ticketing system (you will need an OpenVK account for this).

When's the release?

We will release OpenVK as soon as it's ready. As for now, you can:

  • git clone this repo's master branch (use git pull to update)
  • Grab a prebuilt OpenVK distro from GitHub artifacts

Instances

A list of instances can be found in our wiki of this repository.

Can I create my own OpenVK instance?

Yes! And you are very welcome to.

However, OVK makes use of Chandler Application Server. This software requires extensions, that may not be provided by your hosting provider (namely, sodium and yaml. these extensions are available on most of ISPManager hostings).

If you want, you can add your instance to the list above so that people can register there.

Installation procedure

  1. Install PHP 7.4, web-server, Composer, Node.js, Yarn and Chandler
  • PHP 8 is still being tested; the functionality of the engine on this version of PHP is not yet guaranteed.
  1. Install MySQL-compatible database.
  • We recommend using Percona Server, but any MySQL-compatible server should work too.
  • Server should be compatible with at least MySQL 5.6, MySQL 8.0+ is recommended.
  • Support for MySQL 4.1+ is WIP, replace utf8mb4 and utf8mb4_unicode_520_ci with utf8 and utf8_unicode_ci in SQLs.
  1. Install commitcaptcha and OpenVK as Chandler extensions like this:
git clone https://github.com/openvk/openvk /path/to/chandler/extensions/available/openvk
git clone https://github.com/openvk/commitcaptcha /path/to/chandler/extensions/available/commitcaptcha
  1. And enable them:
ln -s /path/to/chandler/extensions/available/commitcaptcha /path/to/chandler/extensions/enabled/
ln -s /path/to/chandler/extensions/available/openvk /path/to/chandler/extensions/enabled/
  1. Import install/init-static-db.sql to the same database you installed Chandler to and import all sqls from install/sqls to the same database
  2. Import install/init-event-db.sql to a separate database (Yandex.Clickhouse can also be used, highly recommended)
  3. Copy openvk-example.yml to openvk.yml and change options to your liking
  4. Run composer install in OpenVK directory
  5. Run composer install in commitcaptcha directory
  6. Move to Web/static/js and execute yarn install
  7. Set openvk as your root app in chandler.yml

Once you are done, you can login as a system administrator on the network itself (no registration required):

  • Login: admin@localhost.localdomain6
  • Password: admin
    • It is recommended to change the password of the built-in account or disable it.

💡Confused? Full installation walkthrough is available here (CentOS 8 and family).

Looking for Docker or Kubernetes deployment?

See install/automated/docker/README.md and install/automated/kubernetes/README.md for Docker and Kubernetes deployment instructions.

If my website uses OpenVK, should I release it's sources?

It depends. You can keep the sources to yourself if you do not plan to distribute your website binaries. If your website software must be distributed, it can stay non-OSS provided the OpenVK is not used as a primary application and is not modified. If you modified OpenVK for your needs or your work is based on it and you are planning to redistribute this, then you should license it under terms of any LGPL-compatible license (like OSL, GPL, LGPL etc).

Where can I get assistance?

You may reach out to us via:

Attention: bug tracker, board, Telegram and Matrix chat are public places, ticketing system is being served by volunteers. If you need to report something that should not be immediately disclosed to general public (for instance, a vulnerability), please contact us directly via this email: openvk [at] tutanota [dot] com

Get it on Codeberg