def Compile(self: Any) -> None: """Compile the Operator XAssets for the COD Tracker Database.""" dbOperators: List[Dict[str, Any]] = [] operators: List[Dict[str, Any]] = Utility.ReadFile( self, f"{self.eXAssets}/operators.json") skins: List[Dict[str, Any]] = Utility.ReadFile( self, f"{self.eXAssets}/operatorSkins.json") executions: List[Dict[str, Any]] = Utility.ReadFile( self, f"{self.eXAssets}/executions.json") quips: List[Dict[str, Any]] = Utility.ReadFile( self, f"{self.eXAssets}/operatorQuips.json") for operator in operators: if operator.get("id") is None: continue elif operator.get("name") is None: continue elif (i := operator.get("image")) is None: continue self.dbImages.append(i) if Utility.FileExists(self, f"{self.iImages}/{i}.png") is False: continue operator.pop("altId") operator.pop("type") operator.pop("rarity") operator.pop("branchIcon") operator.pop("thumbprint") operator.pop("launchOperator") operator.pop("video") operator.pop("hidden") operator.pop("billets") if operator.get("season") is None: operator.pop("season") if operator.get("description") is None: operator.pop("description") operator["skins"] = [] operator["executions"] = [] operator["quips"] = [] operator["slug"] = Utility.Sluggify(self, operator.get("name")) for skin in Utility.SortList(self, skins, "name", key2="rarity"): if (skinId := skin.get("id")) is None: continue elif skin.get("name") is None: continue
class DBWeapons: """Weapon XAssets for the COD Tracker Database.""" def Compile(self: Any) -> None: """Compile the Weapon XAssets for the COD Tracker Database.""" dbWeapons: List[Dict[str, Any]] = [] weapons: List[Dict[str, Any]] = Utility.ReadFile( self, f"{self.eXAssets}/weapons.json") for weapon in weapons: if weapon.get("id") is None: continue if weapon.get("name") is None: continue if (i := weapon.get("image")) is None: continue if (ico := weapon.get("icon")) is None: continue self.dbImages.append(i) self.dbImages.append(ico) if Utility.FileExists(self, f"{self.iImages}/{i}.png") is False: continue elif Utility.FileExists(self, f"{self.iImages}/{ico}.png") is False: continue variants: List[int] = [] for variant in Utility.SortList(self, weapon.get("variants"), "name", key2="rarity"): if variant.get("id") is None: continue elif variant.get("name") is None: continue elif variant.get("image") is None: continue variants.append(variant.get("id")) weapon["variants"] = variants attachments: List[int] = [] for attachment in weapon.get("attachments"): if attachment.get("id") is None: continue elif attachment.get("name") is None: continue elif (i := attachment.get("image")) is None: continue self.dbImages.append(i) if Utility.FileExists(self, f"{self.iImages}/{i}.png") is False: continue attachment.pop("altId") attachment.pop("unlock") if attachment.get("description") is None: attachment.pop("description") attachments.append(attachment)
if bundle.get("feature") is None: bundle.pop("feature") if bundle.get("season") is None: bundle.pop("season") if bundle.get("name") == bundle.get("flavor"): bundle.pop("flavor") bundle["slug"] = Utility.Sluggify(self, bundle.get("name")) dbBundles.append(bundle) self.count += 1 Utility.WriteFile( self, f"{self.eDatabase}/bundles.json", Utility.SortList(self, dbBundles, "name", key2="type"), compress=True, ) Utility.WriteFile( self, f"{self.eDatabase}/_bundles.json", Utility.SortList(self, dbBundles, "name", key2="type"), ) class DBLoot: """Loot XAssets for the COD Tracker Database.""" def Compile(self: Any) -> None: """Compile the Loot XAssets for the COD Tracker Database.""" dbLoot: List[Dict[str, Any]] = []