class CBZInfo: def __init__(self, title, url): self.title = title self.url = url self.serires = "" self.type = "" self.filename = "" self.torrent = "" self.language = "" self.gallery_id = 0 # 중복을 허용하지 않는 집합으로 초기화 self.related_galID = set() self.artists = set() self.tags = set() def __str__(self): strArtists = ", ".join(self.artists) strTags = ", ".join(self.tags) return f"ID : {self.gallery_id} - {self.title} by {strArtists} - #{strTags}" def AddTag(self, name): self.tags.add(name) def RmvTag(self, name): self.tags.discard(name) def AddArtist(self, name): self.artists.add(name) def RmvArtist(self, name): self.artists.discard(name) class TagInfo: def __init__(self, name, url): self.name = name self.url = url def __str__(self): return f"{self.name} : {self.url}" class ImageFileInfo: def __init__(self, name, height, width, hashValue, bWebp): self.name = name self.height = height self.width = width self.hashValue = hashValue self.bWebp = bWebp