Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mrDoctorWho/vk4xmpp.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormrDoctorWho <mrdoctorwho@gmail.com>2014-07-14 14:40:26 +0400
committermrDoctorWho <mrdoctorwho@gmail.com>2014-07-14 14:40:26 +0400
commit863a34ebcecd7af82c98b3bfa4d669c13d1abe41 (patch)
treebed82ae1e779b9112351f6e4aa7029cf5f0f1b03
parent2bd4b47d81d7ebab817351615b14d2ad88a785c4 (diff)
Fixed #63.174
Readme update Config update
-rw-r--r--Config_example.txt24
-rw-r--r--README.md61
-rw-r--r--gateway.py20
-rw-r--r--library/writer.py2
4 files changed, 56 insertions, 51 deletions
diff --git a/Config_example.txt b/Config_example.txt
index 1cf960f..0ccb955 100644
--- a/Config_example.txt
+++ b/Config_example.txt
@@ -15,7 +15,7 @@ Port = 5556
## Transport ID (Controls all)
TransportID = "vk.example.com"
-## Connection password.
+## Connection password
Password = "secret"
## Language (ru/en/pl)
@@ -24,19 +24,18 @@ DefLang = "ru"
## Photo size (photo_50, photo_100, photo_200_orig)
PhotoSize = "photo_100"
-## White list. Put here servers which you want allow to access transport. F.e.: ['yourserver1.tld','yourserver2.tld']
-## Save it as [] if you won't block any servers.
+## White list. Put here servers which you want allow to access the transport. F.e.: ['yourserver1.tld','yourserver2.tld']
+## Leave it as is if you won't block any servers.
WhiteList = []
-## Watcher list. Put here jid(s) of transport admin for notifications of registration. F.e.: ['admin@yourserver1.tld','name@yourserver2.tld']
-## Save it as [] if you won't watch any registration.
+## Watcher list. Put here jid(s) of transport's admin to receive notifications about registrations. F.e.: ['admin@yourserver1.tld','name@yourserver2.tld']
+## Leave it as is if you won't receive anything.
WatcherList = []
-# Additional about text. It was shown after main about text in transports vcard.
+# Additional description. It will be shown after "about" text in transport's vcard.
AdditionalAbout = ""
# Conference server. Don't change if you won't allow your users to use groupchats (depends on jabber-server's MUC)
-# It's an alpha! Testers are welcome, but don't use it everytime!
# F.e. conference.example.com
ConferenceServer = ""
@@ -48,17 +47,14 @@ allowBePublic = True
USER_LIMIT = 0
#! Danger zone.
-#! Edit settings below ONLY IF YOU KNOW WHAT ARE YOU DOING! DEFAULT VALUES ARE RECOMMENTED!
-## Thread stack size (WARNING: MAY CAUSE TRANSPORT CRASH WITH SEGMENTATION FAULT ERROR)
-## It's needed for optimize memory consuming.
+#! Change settings below ONLY IF YOU KNOW WHAT ARE YOU DOING! DEFAULT VALUES ARE RECOMMENDED!
+## Thread stack size (WARNING: THIS MAY CAUSE TRANSPORT CRASH WITH SEGMENTATION FAULT ERROR)
+## You may need it to optimize memory consuming.
## minimum value is 32768 bytes (32kb)
THREAD_STACK_SIZE = 0
## Maximum forwarded messages depth.
-MAXIMUM_FORWARD_DEPTH = 5
-
-## Users per thread.
-SLICE_STEP = 8
+MAXIMUM_FORWARD_DEPTH = 20
## Image that will be used if transport can't recieve image from VK.
URL_VCARD_NO_IMAGE = "http://simpleapps.ru/vk4xmpp.png"
diff --git a/README.md b/README.md
index ebe3a0e..a3975c9 100644
--- a/README.md
+++ b/README.md
@@ -3,44 +3,55 @@ VK4XMPP Transport
VK4XMPP представляет собой легковесный транспорт. Из VK в XMPP и обратно.
-Написан на языке программирования Python, все используемые библиотеки содержит в себе.
-**Требует Python 2.7.**
+Написан на языке программирования Python, все используемые библиотеки содержит в себе.
+
+**Транспорт требует Python 2.7+**.
-Установка стандартна как и для любого другого транспорта. Только вот переименуйте Config_example.txt в Config.txt и заполните его.
-На время тестирования рекомендуется заглядывать в папку транспорта и сообщать разработчику об ошибках (тела ошибок хранятся в папке crash).
**Возможности**:
-* Прием и отправка сообщений;
-* Авторизация по паролю или ключу «access-token», выдаваемому ВКонтакте;
-* Пересланные сообщения;
-* Вложения в сообщениях (только приём);
-* Список друзей в ростере;
-* Поддержка vCard для контактов;
-* Поддержка конференций (групповых чатов, тестовая, не рекомендуется к использованию);
-* Добавление в ростер новых, недавно добавленных друзей автоматически (в случае, если пользователь транспорта в это время был в сети, иначе следует вручную запросить подписку id@transport);
-* Статистические данные о работе транспорта;
-* Отправка изображений по стандарту XHTML-IM в сторону транспорта.
+* Прием и отправка сообщений
+* Авторизация по паролю или ключу «access-token», выдаваемому ВКонтакте
+* Пересланные сообщения
+* Вложения в сообщениях (только приём)
+* Список друзей в ростере
+* Поддержка vCard для контактов
+* Поддержка конференций (групповых чатов, тестовая, не рекомендуется к использованию)
+* Добавление в ростер новых, недавно добавленных друзей автоматически (в случае, если пользователь транспорта в это время был в сети, иначе следует вручную запросить подписку id@transport)
+* Статистические данные о работе транспорта
+* Отправка изображений по стандарту XHTML-IM в сторону транспорта
+* Проверка времени последней активности пользователя
**Отличия от pyvk-t**:
-* Транспорт не хранит паролей;
-* Транспорт не парсит страницы, а использует API ВКонтакте;
+* Транспорт не хранит паролей
+* Транспорт не парсит страницы, а использует API ВКонтакте
+
+**Список поддерживаемых XEP**:
+* XEP-0012 (Last Activity)
+* XEP-0030 (Service Discovery)
+* XEP-0039 (Statistics Gathering)
+* XEP-0054 (vcard-temp)
+* XEP-0071 (XHTML-IM)
+* XEP-0077 (In-Band Registration)
+* 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**:
* vk.jabberik.ru
-* vk.isida-bot.com
* vk.virtualtalk.org
* vkontakte.jabberon.ru
-* vk.jabber-moscow.ru
* vk.beerseller.org
-* vk.jabberid.org
* vk4xmpp.kap.sh
* vk.xmppserv.ru
* vk.jabbik.ru
* vk.matrixteam.org (English version)
* vk.helldev.net
-* vk.xxo.su
-* vk.anakee.ru
-* vk.nixman.info
+
+Полный список можно посмотреть [здесь](http://xmppserv.ru/xmpp-monitor).
**Отдельное «спасибо»**:
@@ -59,20 +70,20 @@ VK4XMPP представляет собой легковесный трансп
Установка (для серверов): [Arch](https://github.com/mrDoctorWho/vk4xmpp/wiki/Установка-на-ArchLinux-с-Prosody) | [Ubuntu/Debian/etc](https://github.com/mrDoctorWho/vk4xmpp/wiki/Установка-(только-для-серверов)) | [Gentoo](http://blog.stv-fian.ru/?p=375)
-Настройка jabber-серверов: [Ejabberd](https://github.com/mrDoctorWho/vk4xmpp/wiki/Установка-(только-для-серверов)) | [Ejabberd (2)](http://nixman.info/?p=2315) | [Prosody](https://github.com/mrDoctorWho/vk4xmpp/wiki/Установка-VK4XMPP-на-Prosody) | [Openfire](http://ky0uraku.livejournal.com/79921.html) | [Generic](http://dsy.name/?q=vk4xmpp)
+Настройка jabber-серверов: [Ejabberd](https://github.com/mrDoctorWho/vk4xmpp/wiki/Установка-(только-для-серверов)) | [Ejabberd (2)](http://nixman.info/?p=2315) | [Prosody](https://github.com/mrDoctorWho/vk4xmpp/wiki/Установка-VK4XMPP-на-Prosody) | [Openfire](http://ky0uraku.livejournal.com/79921.html) | [Generic](http://dsy.name/?q=vk4xmpp)
Регистрация: [Psi+](http://is.gd/ujPeZ8) | [Tkabber](http://dsy.name/?q=vk4xmpp) | [Gajim](http://xmppserv.ru/gajim/) | [Miranda](http://is.gd/q8ZfFP) | [QIP](http://is.gd/eLAt27) | [jTalk](http://is.gd/XkkdIl) | [Jimm](http://xmppserv.ru/jimm/) | [JasmineIM](http://xmppserv.ru/jasmine/) | [Pidgin](http://xmppserv.ru/pidgin/) | [VacuumIM](http://xmppserv.ru/vacuum/) | [Kopete](http://xmppserv.ru/kopete/)
Обсуждения: [На 4pda](http://is.gd/t10ZIc) | [На форуме Ubuntu](http://forum.ubuntu.ru/index.php?topic=230041) | [На форуме Debian](http://debianforum.ru/index.php?topic=6037)
-Другое: [FAQ](http://is.gd/zgOMp9) | [Отзывы и предложения](http://vk4xmpp.userecho.com) | [Страница на JaWiki](http://jawiki.ru/Vk4xmpp) | [Группа во ВКонтакте](https://vk.com/vk4xmpp)
+Другое: [FAQ](http://is.gd/zgOMp9) | [Отзывы и предложения](http://vk4xmpp.userecho.com) | [Страница на JaWiki](http://jawiki.ru/Vk4xmpp) | [Группа во ВКонтакте](https://vk.com/vk4xmpp)
Также рекомендуется заглянуть в [Wiki](https://github.com/mrDoctorWho/vk4xmpp/wiki/).
Запуск:
python ./gateway.py
-Обратиться к разработчику в сети xmpp можно в конференции [simpleapps@conference.jabber.ru](xmpp:simpleapps@conference.jabber.ru?join).
+Обратиться к разработчику в сети jabber можно в конференции [simpleapps@conference.jabber.ru](xmpp:simpleapps@conference.jabber.ru?join).
diff --git a/gateway.py b/gateway.py
index 71dde61..05f9eb4 100644
--- a/gateway.py
+++ b/gateway.py
@@ -55,7 +55,8 @@ TransportFeatures = [xmpp.NS_DISCO_ITEMS,
xmpp.NS_PING,
xmpp.NS_LAST]
-UserFeatures = [xmpp.NS_CHATSTATES]
+UserFeatures = [xmpp.NS_CHATSTATES,
+ xmpp.NS_LAST]
IDentifier = {"type": "vk",
"category": "gateway",
@@ -231,7 +232,7 @@ class VKLogin(object):
logger.error("VKLogin.auth failed with error %s" % e.message)
return False
except Exception:
- crashLog("VKLogin.auth")
+ crashLog("vklogin.auth")
return False
logger.debug("VKLogin.auth completed")
self.Online = True
@@ -344,7 +345,7 @@ class User(object):
self.friends = {}
self.auth = None
self.token = None
- self.lastMsgID = None
+ self.lastMsgID = 0
self.rosterSet = None
self.existsInDB = None
self.last_udate = time.time()
@@ -360,7 +361,7 @@ class User(object):
desc = db.fetchone()
if desc:
if not self.token or not self.password:
- logger.debug("User: %s exists in db. Have to use it." % self.source)
+ logger.debug("User: %s exists in db. Use it." % self.source)
self.existsInDB = True
self.source, self.username, self.token, self.lastMsgID, self.rosterSet = desc
elif self.password or self.token:
@@ -409,8 +410,6 @@ class User(object):
self.getUserID()
self.friends = self.vk.getFriends()
self.vk.Online = True
- if not UseLastMessageID:
- self.lastMsgID = 0
return self.vk.Online
def getUserID(self):
@@ -511,9 +510,8 @@ class User(object):
if messages:
lastMsg = messages[-1]
self.lastMsgID = lastMsg["mid"]
- if UseLastMessageID:
- with Database(DatabaseFile, Semaphore) as db:
- db("update users set lastMsgID=? where jid=?", (self.lastMsgID, self.source))
+ with Database(DatabaseFile, Semaphore) as db:
+ db("update users set lastMsgID=? where jid=?", (self.lastMsgID, self.source))
def processPollResult(self, opener):
try:
@@ -616,7 +614,7 @@ def Sender(cl, stanza):
try:
cl.send(stanza)
except Exception:
- crashLog("Sender")
+ crashLog("sender")
def msgSend(cl, destination, body, source, timestamp=0):
msg = xmpp.Message(destination, body, "chat", frm=source)
@@ -885,5 +883,5 @@ if __name__ == "__main__":
Component.iter(6)
except Exception:
logger.critical("DISCONNECTED")
- crashLog("Component.iter")
+ crashLog("component.iter")
disconnectHandler(True)
diff --git a/library/writer.py b/library/writer.py
index 5769d05..6ac33cc 100644
--- a/library/writer.py
+++ b/library/writer.py
@@ -20,7 +20,7 @@ def rFile(filename):
def crashLog(name, text = 0, fixMe = True):
global lastErrorBody
- logger.error("writing crashlog %s" % name)
+ logger.error("write crashlog %s" % name)
if fixMe:
fixme(name)
try: