def parse_message(self, msg): # Extract details from message sender_id = msg['sender_id']['chat_id'] msg_type = msg['event_type'] timestamp = int(msg['timestamp']) / 1000000 # Check if conversation participant is known participant = self.get_participant(sender_id) if participant is None: LOG_DEBUG('Parsing message for unkown participant') self.message_data.append([timestamp, msg_type, sender_id]) return # Add message to database self.message_data.append( [timestamp, msg_type, participant.get_name_or_id()]) participant.add_message(msg_type) # Perform message-type-based actions if msg_type == 'RENAME_CONVERSATION': self.conversation_names.append( msg['conversation_rename']['new_name']) elif msg_type == 'ADD_USER': for id in msg['membership_change']['participant_id']: if not self.is_participant(id['chat_id']): self.add_participant(id['chat_id']) elif msg_type == 'HANGOUT_EVENT': event = msg['hangout_event'] event_type = event['event_type'] if event_type == 'END_HANGOUT': self.hangouts_duration_s += int(event['hangout_duration_secs'])
def add_message(self, msg_type): if msg_type not in self.num_messages.keys(): LOG_DEBUG( 'Trying to parse unknown message type: {}'.format(msg_type)) return else: self.num_messages[msg_type] += 1
def saveConfig(self, file, data): LOG_DEBUG('GUIFlash :', 'Save config in file "%s".' % file) with open(file, 'wb') as file: json.dump(data, codecs.getwriter('utf-8')(file), indent=4, sort_keys=True, ensure_ascii=False)
def newBattleRoyalePageCloseSpawnPoints(self): try: LOG_DEBUG('newBattleRoyalePageCloseSpawnPoints called!') g_guiHooks.onBattleRoyaleSpawnVisibilityChanged(False) except StandardError: pass finally: hooked_closeSpawnPoints(self)
def saveConfig(self, path, data): LOG_DEBUG("Save config in file '%s'." % path) with open(path, 'wb') as f: json.dump(data, codecs.getwriter('utf-8')(f), indent=4, sort_keys=True, ensure_ascii=False)
def _populate(self): g_eventBus.addListener(events.GameEvent.SHOW_CURSOR, self.__handleShowCursor, EVENT_BUS_SCOPE.GLOBAL) g_eventBus.addListener(events.GameEvent.HIDE_CURSOR, self.__handleHideCursor, EVENT_BUS_SCOPE.GLOBAL) g_eventBus.addListener(events.GameEvent.RADIAL_MENU_CMD, self.__toggleRadialMenu, scope=EVENT_BUS_SCOPE.BATTLE) g_eventBus.addListener(events.GameEvent.FULL_STATS, self.__toggleFullStats, scope=EVENT_BUS_SCOPE.BATTLE) g_eventBus.addListener(events.GameEvent.FULL_STATS_QUEST_PROGRESS, self.__toggleFullStatsQuestProgress, scope=EVENT_BUS_SCOPE.BATTLE) g_guiResetters.add(self.__onResizeStage) ctrl = self.sessionProvider.dynamic.maps if ctrl is not None and hasattr(ctrl, 'onVisibilityChanged'): ctrl.onVisibilityChanged += self.__onMapVisibilityChanged # NOTE: frontline respawn screen ctrl = self.sessionProvider.dynamic.respawn if ctrl is not None and hasattr(ctrl, 'onRespawnVisibilityChanged'): ctrl.onRespawnVisibilityChanged += self.__onRespawnVisibilityChanged # NOTE: steel hunter select spawn screen spawnCtrl = self.sessionProvider.dynamic.spawn if spawnCtrl is not None: if hasattr(BattleRoyalePage, 'showSpawnPoints'): global hooked_showSpawnPoints if hooked_showSpawnPoints is None: hooked_showSpawnPoints = BattleRoyalePage.showSpawnPoints BattleRoyalePage.showSpawnPoints = newBattleRoyalePageShowSpawnPoints LOG_DEBUG('BattleRoyalePage:showSpawnPoints hooked!') if hasattr(BattleRoyalePage, 'closeSpawnPoints'): global hooked_closeSpawnPoints if hooked_closeSpawnPoints is None: hooked_closeSpawnPoints = BattleRoyalePage.closeSpawnPoints BattleRoyalePage.closeSpawnPoints = newBattleRoyalePageCloseSpawnPoints LOG_DEBUG('BattleRoyalePage:closeSpawnPoints hooked!')
def readConfig(self, file): LOG_DEBUG("Read config from file '%s'." % file) with open(file, "r") as file: data = json.load(file) return data
def delete(self, alias): LOG_DEBUG("Destroy cache: '%s'" % alias) del self.components[alias]
def update(self, alias, props): LOG_DEBUG("Change cache: '%s' -> Properties: %s" % (alias, props)) self.components[alias].get('props').update(props)
def create(self, alias, type, props): LOG_DEBUG("Create cache: '%s' [%s] -> Properties: %s" % (alias, type, props)) self.components[alias] = {'type': type, 'props': props}
def delete(self, alias): if self.ui is not None: LOG_DEBUG("Destroy component: '%s'" % alias) self.ui.as_deleteS(alias)
def update(self, alias, props, params): if self.ui is not None: LOG_DEBUG( "Change component: '%s' -> Properties: %s | Parameters: %s" % (alias, props, params)) self.ui.as_updateS(alias, props, params)
def create(self, alias, type, props): if self.ui is not None: self.ui.as_createS(alias, type, props) LOG_DEBUG( 'GUIFlash :', 'Component "%s" [%s] created. Parameters: %s' % (alias, type, props))
def readConfig(self, file): LOG_DEBUG('GUIFlash :', 'Read config from file "%s".' % file) with open(file, "r") as file: data = json.load(file) return data
def delete(self, alias): del self.components[alias] LOG_DEBUG('GUIFlash :', 'Cache "%s" deleted.' % alias)
def update(self, alias, props): self.components[alias].get('props').update(props) LOG_DEBUG('GUIFlash :', 'Cache "%s" updated. Parameters: %s' % (alias, props))
def create(self, alias, type, props): self.components[alias] = {'type': type, 'props': props} LOG_DEBUG( 'GUIFlash :', 'Cache "%s" [%s] created. Parameters: %s' % (alias, type, props))
def delete(self, alias): if self.ui is not None: self.ui.as_deleteS(alias) LOG_DEBUG('GUIFlash :', 'Component "%s" deleted.' % alias)
def update(self, alias, props): if self.ui is not None: self.ui.as_updateS(alias, props) LOG_DEBUG( 'GUIFlash :', 'Component "%s" updated. Parameters: %s' % (alias, props))
def create(self, alias, type, props): if self.ui is not None: LOG_DEBUG("Create component: '%s' [%s] -> Properties: %s" % (alias, type, props)) self.ui.as_createS(alias, type, props)
def readConfig(self, path): LOG_DEBUG("Read config from file '%s'." % path) with open(path, "r") as f: data = json.load(f) return data