def _select_date(self, date: datetime): """Callback for Calendar widget selection command""" self.clear_data_widgets() self._tree.delete(*self._tree.get_children("")) if date not in self._dates: return self._files: List[str] = self._dates[date] for f, file in enumerate(sorted(self._files)): name = Parser.get_player_name_raw(file) cube, matches, spawns = Parser.split_combatlog_file(file) for m, match in enumerate(sorted(matches[::2])): match = datetime.strftime(match, "%H:%M, {}".format(name)) match_iid = "{},{}".format(f, m) self._tree.insert("", tk.END, text=match, iid=match_iid) for s, spawn in enumerate(sorted(spawns[m])): spawn = datetime.strftime(spawn, "%H:%M:%S") player_list: List[str] = Parser.get_player_id_list(cube[m][s]) abs_dict: Dict[str: int] = Parser.get_abilities_dict(cube[m][s], player_list) ships: List[str] = Parser.get_ship_for_dict(abs_dict) ship = self.format_ships_list(ships) spawn = "{}{}".format(spawn, ship) spawn_iid = "{},{},{}".format(f, m, s) self._tree.insert(match_iid, tk.END, text=spawn, iid=spawn_iid)
def insert_file(self, file_string): """ Insert a file into the Treeview list of files and links it to an entry in self.file_string_dict :param file_string: string representing the file in the list """ if file_string in self.file_string_dict: file_name = self.file_string_dict[file_string] elif file_string.endswith(".txt"): file_name = file_string else: raise ValueError("Unsupported file_string received: {0}".format(file_string)) self.file_tree.insert("", tk.END, iid=file_name, text=file_string) file_cube, match_timings, spawn_timings = Parser.split_combatlog_file(file_name) if len(match_timings) / 2 != len(file_cube): print("[FileFrame] Uneven results for file {}".format(file_name)) return for match_index, match in enumerate(match_timings[::2]): self.file_tree.insert(file_name, tk.END, iid=(file_name, match_index), text=match.strftime("%H:%M")) for spawn_index, spawn in enumerate(spawn_timings[match_index]): self.file_tree.insert( (file_name, match_index), tk.END, iid=(file_name, match_index, spawn_index), text=spawn.strftime("%H:%M:%S"))