def _get_group_messages(self): """ Returns summary of group chat: each group member name and how many msgs they sent. @:return list of len 2: [int totalMessages , dict {"Asaf":360, "Neta":180,...}] """ groupData = {} # data to be returned rawMessages = self.browser.execute_script(scrapingScripts.getTextMessages()) totalMessages = len(rawMessages) for msg in rawMessages: name, text, dateandtime = self._parse_message(msg) # In case of images if name is None: continue # update contact if exists otherwise create if name in groupData: groupData[ name ] += 1 else: groupData[ name ] = 1 return [ totalMessages, groupData ]
def _get_person_messages(self): """ Get all messages from current open chat, parse to fields name, datetime and text. :return: list of messages [{"name":name, "text": text, "time":time}, {"name":name, "text": text, "time":time}, ...] """ messages = [] rawMessages = self.browser.execute_script(scrapingScripts.getTextMessages()) # Onetime update for user whatsapp name if self.user_whatsapp_name is None: outMsg = self.browser.execute_script(scrapingScripts.getSingleOutgoingMessage()) if outMsg is not None: self.user_whatsapp_name = outMsg[outMsg.find("\xa0")+1: outMsg.find("\xa0", outMsg.find("\xa0")+2)-1] # Extract data from raw message for msg in rawMessages: name, text, dateandtime = self._parse_message(msg) # Unsupported message if name is None: continue msgData = {"name": name, "text": text, "time": dateandtime} messages.append(msgData) return messages