From 7cedfb0c39dd7e52dab4f21355cdcf9adcf775f5 Mon Sep 17 00:00:00 2001 From: John Smith Date: Fri, 1 Feb 2019 22:19:48 +0700 Subject: fix getting names for groups --- extensions/attachments.py | 8 +++++--- extensions/forwarded_messages.py | 2 +- extensions/groupchats.py | 10 ++++------ 3 files changed, 10 insertions(+), 10 deletions(-) (limited to 'extensions') 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, -- cgit v1.2.3