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:
authorJohn Smith <mrdoctorwho@helldev.net>2019-02-01 18:19:48 +0300
committerJohn Smith <mrdoctorwho@helldev.net>2019-02-01 18:20:08 +0300
commit7cedfb0c39dd7e52dab4f21355cdcf9adcf775f5 (patch)
tree2881b775ed1437821bdf69a14405220e15008e0e
parentf53219762ba2732e285abf45e0254737e03ab516 (diff)
fix getting names for groups
-rw-r--r--extensions/attachments.py8
-rw-r--r--extensions/forwarded_messages.py2
-rw-r--r--extensions/groupchats.py10
-rw-r--r--gateway.py7
4 files changed, 17 insertions, 10 deletions
diff --git a/extensions/attachments.py b/extensions/attachments.py
index 2416d9f..1aca767 100644
--- a/extensions/attachments.py
+++ b/extensions/attachments.py
@@ -52,10 +52,12 @@ def parseAttachments(self, msg, spacer=""):
if type == "wall":
if self.settings.parse_wall:
tid = current.get("to_id", 1)
+ name_ = self.vk.getName(tid)
if tid > 0:
- name = "%s's" % self.vk.getUserData(tid).get("name", "Unknown User (%s)" % tid)
+ name = "%s's" % name_
else:
- name = "ā€œ%sā€" % self.vk.getGroupData(tid).get("name", "Unknown Group (%s)" % tid)
+ name = "ā€œ%sā€" % name_
+
body += "Post on %s wall:\n" % name
if current.get("text") or current.get("copy_text"):
body += spacer + uhtml(compile_eol.sub("\n" + spacer, current["text"] or current.get("copy_text"))) + "\n"
@@ -85,7 +87,7 @@ def parseAttachments(self, msg, spacer=""):
elif type == "wall_reply":
# TODO: What if it's a community? from_id will be negative.
# TODO: Remove "[idxxx|Name]," from the text or make it a link if XHTML is allowed
- current["name"] = self.vk.getUserData(current["uid"])["name"]
+ current["name"] = self.vk.getName(current["uid"])
current["text"] = uhtml(compile_eol.sub("\n" + spacer, current["text"]))
current["url"] = WALL_COMMENT_LINK % current
diff --git a/extensions/forwarded_messages.py b/extensions/forwarded_messages.py
index 43148b6..98c7095 100644
--- a/extensions/forwarded_messages.py
+++ b/extensions/forwarded_messages.py
@@ -22,7 +22,7 @@ def parseForwardedMessages(self, msg, depth=0):
date = fwd["date"]
fwdBody = escape("", uhtml(compile_eol.sub("\n" + spacer + BASE_SPACER, fwd["body"])))
date = datetime.fromtimestamp(date).strftime("%d.%m.%Y %H:%M:%S")
- name = self.vk.getUserData(source)["name"]
+ name = self.vk.getName(source)
body += "\n%s[%s] <%s> %s" % (spacer + BASE_SPACER, date, name, fwdBody)
body += parseAttachments(self, fwd, spacer + (BASE_SPACER * 2))
if depth < MAXIMUM_FORWARD_DEPTH:
diff --git a/extensions/groupchats.py b/extensions/groupchats.py
index 0695bc6..027ffa8 100644
--- a/extensions/groupchats.py
+++ b/extensions/groupchats.py
@@ -249,7 +249,7 @@ class Chat(object):
runDatabaseQuery("insert into groupchats (jid, owner, user, last_used) values (?,?,?,?)",
(self.jid, TransportID, user.source, time.time()), True)
- name = user.vk.getUserData(self.owner)["name"]
+ name = user.vk.getName(self.owner)
self.users[TransportID] = {"name": name, "jid": TransportID}
# We join to the chat with the room owner's name to set the room subject from their name.
joinChat(self.jid, name, TransportID, "Lost in time.")
@@ -274,7 +274,7 @@ class Chat(object):
name = "@%s" % TransportID
setAffiliation(chat, "member", user.source)
if not self.invited:
- inviteUser(chat, user.source, TransportID, user.vk.getUserData(self.owner)["name"])
+ inviteUser(chat, user.source, TransportID, user.vk.getName(self.owner))
logger.debug("groupchats: user has been invited to chat %s (jid: %s)", chat, user.source)
self.invited = True
self.setSubject(self.subject, self.creation_date)
@@ -306,10 +306,8 @@ class Chat(object):
# TODO: Transport MUST NOT request the name for each user it sees.
# It should be done with a list of users
# E.g. requesting a list of users and get a list of names
- userData = userObject.vk.getUserData(user)
- try:
- name = userData["name"]
- except KeyError:
+ name = userObject.vk.getName(user)
+ if not name:
logger.error("groupchats: unable to get user name"
+ " for %s in chat %s, data: %s (jid: %s)",
user,
diff --git a/gateway.py b/gateway.py
index 1ee3c44..16d12e5 100644
--- a/gateway.py
+++ b/gateway.py
@@ -599,6 +599,13 @@ class VK(object):
return data
raise RuntimeError("Unable to get the user's name")
+ def getName(self, id_):
+ if id_ > 0:
+ name = self.getUserData(id_).get("name", "Unknown user (id: %s)" % id_)
+ else:
+ name = self.getGroupData(id_).get("name", "Unknown group (id: %s)" % id_)
+ return name
+
def sendMessage(self, body, id, mType="user_id", more={}):
"""
Sends message to a VK user (or a chat)