[![Code Climate](https://codeclimate.com/github/mrDoctorWho/vk4xmpp/badges/gpa.svg)](https://codeclimate.com/github/mrDoctorWho/vk4xmpp) [![VK4XMPP on Ohloh](https://www.openhub.net/p/vk4xmpp/widgets/project_partner_badge.gif)](https://www.openhub.net/p/vk4xmpp) **[Fork Me](https://github.com/mrDoctorWho/vk4xmpp/fork) Now! Spread the project for great good!** VK4XMPP Transport ====== VK4XMPP представляет собой легковесный транспорт[¹](https://github.com/mrDoctorWho/vk4xmpp#wtf). Из VK в XMPP [²](https://github.com/mrDoctorWho/vk4xmpp#wtf) и обратно. Написан на языке программирования Python (совместим только со второй веткой). **Возможности**: * **Аватары у пользователей** (во vCard и при входе в сеть, по стандарту XEP-0153) * **Long Poll (обо всех событиях пользователь уведомляется незамедлительно)** * **Поддержка групп (меток для друзей ВКонтакте) в ростере** * **Поддержка конференций** (групповых чатов) * **Отправка изображений в сторону транспорта** (XEP-0071: XHTML-IM) * Вложения в сообщениях (только приём) * Пересланные сообщения (и вложения в них) * Прием и отправка сообщений * Авторизация по паролю или ключу «access-token», выдаваемому ВКонтакте * Список друзей в ростере * Поддержка vCard для контактов * Добавление в ростер новых, недавно добавленных друзей автоматически (в случае, если пользователь транспорта в это время был в сети, иначе следует вручную запросить подписку id@transport) * Статистические данные о работе транспорта * Проверка времени последней активности пользователя * Настройка транспорта пользователем «под себя» посредством AdHoc-команд [³](https://github.com/mrDoctorWho/vk4xmpp#wtf) * Отправка изображения капчи по стандарту XEP-0158 (поддерживается в Tkabber) * Администрирование посредством AdHoc-команд * Поддержка плагинов **Отличия от pyvk-t**: * Транспорт не хранит паролей * Транспорт не парсит страницы, а использует API ВКонтакте **Список поддерживаемых XEP**: * XEP-0012 (Last Activity) * XEP-0030 (Service Discovery) * XEP-0039 (Statistics Gathering) * XEP-0045 (Multi-User Chat) * XEP-0050 (Ad-Hoc Commands) * XEP-0054 (vcard-temp) * XEP-0071 (XHTML-IM) * XEP-0077 (In-Band Registration) * XEP-0153 (vCard-Based Avatars) * XEP-0085 (Chat State Notifications) * XEP-0091 (Legacy Delayed Delivery) * XEP-0092 (Software Version) * XEP-0100 (Gateway Interaction) * XEP-0158 (CAPTCHA Forms) * XEP-0184 (Message Delivery Receipts) * XEP-0199 (XMPP Ping) **Почему VK4XMPP**: В конце 2013 года администрация «ВКонтакте» приняла решение отказаться от официальной поддержки протокола XMPP. Это событие было воспринято разными пользователями по-разному. Тем, кто уже был знаком с XMPP, его возможностями и удобством некоторых клиентов, это не понравилось. «**VK4XMPP**», подоспевший прямо к остановке XMPP-сервера «ВКонтакте», выполнявшего роль пересылки сообщений из/в социальную сеть, был тепло принят бывшими пользователями официального сервиса. С самого момента первого релиза транспорт предоставлял намного больше возможностей, чем бывший официальный вариант. Причины попробовать VK4XMPP: * Удобство: чтобы использовать VK4XMPP вам нужен XMPP-клиент и jabber-аккаунт. Клиентов очень много и все разные. Любой найдёт что-то, что ему понравится. * Скорость работы: VK4XMPP использует прямые HTTP-запросы к API «ВКонтакте», которые, в основном, не превышают и килобайта. * Экономия трафика: Несмотря на большой расход трафика на присутствия в XMPP, ваш XMPP-клиент передаст в десятки раз меньше данных, нежели браузер. * Экономия оперативной памяти устройства: Вы когда-нибудь задумывались, сколько памяти «съедает» браузер? Посмотрите. А теперь посмотрите на XMPP-клиент. Браузер — гораздо более сложная программа, чем XMPP-клиент. Оставьте чаты специализированному софту. * Вы параноик: Вы видите опасность раскрытия личных данных везде и всюду, но всё же пользуетесь социальной сетью (вероятно, под другим именем, ведь вы параноик). Что, по-вашему, безопаснее? Простой XMPP-клиент или же браузер? Помимо этого вы можете пропускать **зашифрованные сообщения** через jabber и сервера ВКонтакте с использованием **OTR**. Поддержка OTR не требуется от транспорта. Для этого вам и вашему собеседнику нужен клиент с поддержкой OTR, например, [Psi+](http://psi-plus.com) или [Gajim](http://gajim.org). Причины сбежать в ужасе: * Сложная форма регистрации: Как ни крути, а регистрация (при условии наличия Jabber-ID) на транспорте состоит аж из 3-х пунктов! Вы потратите **целую** минуту на регистрацию, а может даже две! * Отсутствие некоторых возможностей: К сожалению, не всё можно реализовать в текущем варианте XMPP и состоянии XMPP-клиентов. Так например, вы не сможете переслать сообщения другу от другого пользователя. И это не всё. * *Вы параноик: Бегите и не возвращайтесь. Никогда.* **Как вы можете помочь**: 1. Вы — программист. Каждая функция vk4xmpp содержит строки документации. Также есть [пример](https://github.com/mrDoctorWho/vk4xmpp/blob/master/extensions/.example.py) написания плагина, описывающий все возможности системы плагинов. При желании, написать что-то не составит труда. Pull-request'ы приветствуются. 2. Вы — активный пользователь социальной сети «ВКонтакте» или Jabber, которому просто нравится транспорт. Приглашайте своих друзей попробовать VK4XMPP! 3. Вы — пользователь, которому просто нравится проект и/или определённый запущенный сервис. Транспорты, впрочем как и сервера (в основном), запущены энтузиастами на некоммерческой основе, люди оплачивают их из своего кармана. Сделайте пожертвование своему серверу! *(администраторам: в файле конфигурации для этого есть поле AdditionalAbout)* **Список серверов, где установлен VK4XMPP**: * vk.jabberik.ru * vkontakte.jabberon.ru * vk.beerseller.org * vk.kap.sh * vk.jabbik.ru Полный список можно посмотреть [здесь](http://xmppserv.ru/xmpp-monitor). **Благодарности**: * Alexey-cv (donate, продвижение посредством создания тем на 4pda, содание FAQ, написание большинства инструкций, тесты) * alkorgun (предложения по лучшей реализации некоторых алгоритмов, код) * Armageddon (сервера, тестирование, идеи, donate) * boriz (donate) * diSabler (мелкие исправления, форма капчи, логотип, donate) * Manazius (инструкции, общение со смертными) * nsof (donate, идеи) * Santiago26 (тестирование ранних релизов, статья на Хабре) * aawray ([xmpp-monitor](https://github.com/aawray/xmpp-monitor)) А также всем, кто как-либо участвовал в разработке или тестировании. Без этих людей не было бы транспорта таким, какой он есть. Установка (для серверов): * [Arch Linux](https://github.com/mrDoctorWho/vk4xmpp/wiki/Установка-на-ArchLinux-с-Prosody) * [Gentoo](http://blog.stv-fian.ru/?p=375) * [Ubuntu/Debian/etc](https://github.com/mrDoctorWho/vk4xmpp/wiki/Установка-(только-для-серверов)) Настройка jabber-серверов: * Ejabberd: [раз](https://github.com/mrDoctorWho/vk4xmpp/wiki/Установка-(только-для-серверов)), [два](http://nixman.info/?p=2315) * [Openfire](http://ky0uraku.livejournal.com/79921.html) * [Prosody](https://github.com/mrDoctorWho/vk4xmpp/wiki/Установка-VK4XMPP-на-Prosody) * [Generic](http://dsy.name/?q=vk4xmpp) Регистрация: * [Gajim](http://xmppserv.ru/gajim/) * [JasmineIM](http://xmppserv.ru/jasmine/) * [Jimm](http://xmppserv.ru/jimm/) * [jTalk](http://is.gd/pZt5gz) * [Kopete](http://xmppserv.ru/kopete/) * [Miranda](http://is.gd/5dAduL) * [Pidgin](http://xmppserv.ru/pidgin/) * [Psi+](http://is.gd/VwlK5R) * [QIP](http://is.gd/xrjvfF) * [Talkonaut](http://is.gd/OxJdMK) * [Tkabber](http://dsy.name/?q=vk4xmpp) * [VacuumIM](http://xmppserv.ru/vacuum/) Обсуждения: * [На 4pda](http://is.gd/t10ZIc) * [На форуме Debian](http://debianforum.r/uindex.php?topic=6037) * [На форуме Ubuntu](http://forum.ubuntu.ru/index.php?topic=230041) Другое: * [FAQ](http://is.gd/qqCI81) * [Группа во ВКонтакте](https://vk.com/vk4xmpp) * [Страница на JaWiki](http://jawiki.ru/Vk4xmpp) Также рекомендуется заглянуть в [Wiki](https://github.com/mrDoctorWho/vk4xmpp/wiki/). Запуск: python ./gateway.py Обратиться к разработчику в сети jabber можно в конференции [simpleapps@conference.jabber.ru](xmpp:simpleapps@conference.jabber.ru?join). **WTF**: 1. Транспорт — Программное Обеспечение, обеспечивающее связь между различными протоколами мгновенного обмена сообщениями. Распространены в XMPP (Jabber). 2. XMPP (Jabber) — Расширяемый протокол мгновенного обмена сообщениями ([Wikipedia/XMPP](https://wikipedia.org/wiki/XMPP)). 3. К сожалению, нет нормальной инструкции; см. [JabberON/AdHoc](http://jabberon.ru/articles/2015/03/18/транспорт-вконтакте-дополнительные-команды/) и [JaWiki/AdHoc](http://jawiki.ru/Adhoc). © simpleApps, 2013 — 2015.