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:
Diffstat (limited to 'handlers/Presence.py')
-rw-r--r--handlers/Presence.py46
1 files changed, 21 insertions, 25 deletions
diff --git a/handlers/Presence.py b/handlers/Presence.py
index 58a7eea..74b9d67 100644
--- a/handlers/Presence.py
+++ b/handlers/Presence.py
@@ -9,33 +9,30 @@ def prsHandler(cl, prs):
jidFromStr = jidFrom.getStripped()
jidToStr = jidTo.getStripped()
if jidFromStr in Transport:
- Class = Transport[jidFromStr]
+ user = Transport[jidFromStr]
Resource = jidFrom.getResource()
if pType in ("available", "probe", None):
- if jidTo == TransportID and Resource not in Class.resources:
+ if jidTo == TransportID and Resource not in user.resources:
logger.debug("%s from user %s, will send sendInitPresence" % (pType, jidFromStr))
- Class.resources.append(Resource)
- if Class.lastStatus == "unavailable" and len(Class.resources) == 1:
- if not Class.vk.Online:
- Class.vk.Online = True
- Class.sendInitPresence()
+ user.resources.append(Resource)
+ user.sendInitPresence()
elif pType == "unavailable":
- if jidTo == TransportID and Resource in Class.resources:
- Class.resources.remove(Resource)
- if Class.resources:
- Class.sendOutPresence(jidFrom)
- if not Class.resources:
+ if jidTo == TransportID and Resource in user.resources:
+ user.resources.remove(Resource)
+ if user.resources:
+ user.sendOutPresence(jidFrom)
+ if not user.resources:
Sender(cl, xmpp.Presence(jidFrom, "unavailable", frm = TransportID))
- Class.vk.disconnect()
+ user.vk.disconnect()
if jidFromStr in Transport:
del Transport[jidFromStr]
- updateTransportsList(jidFromStr, False)
+ updateTransportsList(user, False)
elif pType == "error":
eCode = prs.getErrorCode()
if eCode == "404":
- Class.vk.disconnect()
+ user.vk.disconnect()
elif pType == "subscribe":
if jidToStr == TransportID:
@@ -43,27 +40,26 @@ def prsHandler(cl, prs):
Sender(cl, xmpp.Presence(jidFrom, frm = TransportID))
else:
Sender(cl, xmpp.Presence(jidFromStr, "subscribed", frm = jidTo))
- if Class.friends:
+ if user.friends:
id = vk2xmpp(jidToStr)
- if id in Class.friends:
- if Class.friends[id]["online"]:
+ if id in user.friends:
+ if user.friends[id]["online"]:
Sender(cl, xmpp.Presence(jidFrom, frm = jidTo))
+
elif pType == "unsubscribe":
if jidFromStr in Transport and jidToStr == TransportID:
- Class.deleteUser(True)
+ user.deleteUser(True)
WatcherMsg(_("User removed registration: %s") % jidFromStr)
- if jidToStr == TransportID:
- Class.lastStatus = pType
elif pType in ("available", None):
logger.debug("User %s not in transport but want to be in" % jidFromStr)
with Database(DatabaseFile) as db:
- db("select * from users where jid=?", (jidFromStr,))
- user = db.fetchone()
- if user:
+ db("select jid,username from users where jid=?", (jidFromStr,))
+ data = db.fetchone()
+ if data:
logger.debug("User %s found in db" % jidFromStr)
- jid, phone = user[:2]
+ jid, phone = data
Transport[jid] = user = tUser((phone, None), jid)
try:
if user.connect():