Merge pull request #83 from SmartHoneybee/patch-1

self.joinRoom before self.backend.handleMessage
This commit is contained in:
Steffen Vogel 2017-07-02 16:38:52 +02:00 committed by GitHub
commit 76fb1b4a6d
1 changed files with 22 additions and 27 deletions

View File

@ -135,39 +135,34 @@ class Session(YowsupApp):
"\n".join(text) + "\nIf you do not join them you will lose messages" "\n".join(text) + "\nIf you do not join them you will lose messages"
#self.bot.send(message) #self.bot.send(message)
def _updateGroups(self, response, request): def _updateGroups(self, response, _):
self.logger.debug('Received groups list %s' % response) self.logger.debug('Received groups list %s' % response)
groups = response.getGroups() groups = response.getGroups()
for group in groups: for group in groups:
room = group.getId() room = group.getId()
owner = group.getOwner().split('@')[0] # ensure self.groups[room] exists
subjectOwner = group.getSubjectOwner().split('@')[0] if room not in self.groups:
subject = utils.softToUni(group.getSubject()) owner = group.getOwner().split('@')[0]
subjectOwner = group.getSubjectOwner().split('@')[0]
if room in self.groups: subject = utils.softToUni(group.getSubject())
oroom = self.groups[room] self.groups[room] = Group(room, owner, subject, subjectOwner,
oroom.owner = owner self.backend, self.user)
oroom.subjectOwner = subjectOwner # add/update room participants
oroom.subject = subject
else:
self.groups[room] = Group(room, owner, subject, subjectOwner, self.backend, self.user)
# self.joinRoom(self._shortenGroupId(room), self.user.split("@")[0])
self.groups[room].addParticipants(group.getParticipants().keys(), self.groups[room].addParticipants(group.getParticipants().keys(),
self.buddies, self.legacyName) self.buddies, self.legacyName)
#self._addParticipantsToRoom(room, group.getParticipants())
if room in self.groupOfflineQueue:
while self.groupOfflineQueue[room]:
msg = self.groupOfflineQueue[room].pop(0)
self.backend.handleMessage(self.user, room, msg[1],
msg[0], "", msg[2])
self.logger.debug("Send queued group message to: %s %s %s" %
(msg[0],msg[1], msg[2]))
self.gotGroupList = True self.gotGroupList = True
for room, nick in self.joinRoomQueue: # join rooms
self.joinRoom(room, nick) while self.joinRoomQueue:
self.joinRoomQueue = [] self.joinRoom(*self.joinRoomQueue.pop(0))
# deliver queued offline messages
for room in self.groupOfflineQueue:
while self.groupOfflineQueue[room]:
msg = self.groupOfflineQueue[room].pop(0)
self.backend.handleMessage(self.user, room, msg[1], msg[0], "",
msg[2])
self.logger.debug("Send queued group message to: %s %s %s" %
(msg[0], msg[1], msg[2]))
# pass update to backend
self.updateRoomList() self.updateRoomList()
def joinRoom(self, room, nick): def joinRoom(self, room, nick):