class CBZInfo: def __init__(self, title, url): self.title = title self.url = url self.series = "" 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 SaveToText(self): retText = "\{" retText += f"Title : {self.title}\r\n" retText += f"URL : {self.url}\r\n" retText += f"Series : {self.series}\r\n" retText += f"Type : {self.type}\r\n" retText += f"Filename : {self.filename}\r\n" retText += f"Torrent : {self.torrent}\r\n" retText += f"Language : {self.language}\r\n" retText += f"Gallery ID : {self.gallery_id}\r\n" retText += self.SaveToTextArtists() + f"\r\n" retText += self.SavetToTextRelatedGalleryID() + f"\r\n" retText += self.SavetToTextTags() + f"\r\n" retText += "\}" def SaveToTextTagList(self, listTags): RetText = "\{" for tag in listTags: RetText += (f"\"{tag.name}\" ") RetText += "\}" return RetText def SaveToTextArtists(self): retText = f"Artists : " retText += self.SaveToTextTagList(self.artists) return retText def SavetToTextRelatedGalleryID(self): retText = f"Gallery_ID : " retText += self.SaveToTextTagList(self.related_galID) return retText def SavetToTextTags(self): retText = f"Tags : " retText += self.SaveToTextTagList(self.tags) return retText 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