Beispiel #1
0
    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
Beispiel #2
0
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)
Beispiel #3
0
            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]] = []