-
Notifications
You must be signed in to change notification settings - Fork 0
/
MangaListManager.py
84 lines (65 loc) · 3.44 KB
/
MangaListManager.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import os
from lxml import etree
class MangaListManager:
def __init__(self):
self._filename = "manga.xml"
if not os.path.isfile(self._filename):
mangaXML = open(self._filename, "w")
mangaXML.write("<mangaList></mangaList>")
mangaXML.close()
def getMangaList(self):
return self._mangaList
def update(self, manga):
tree = etree.parse(self._filename)
mangaXmlList = tree.xpath("/mangaList/manga")
for mangaXml in mangaXmlList:
mangaName = mangaXml.xpath("name")[0].text
if mangaName == manga["name"]:
mangaXml.xpath("status")[0].text = manga["status"]
mangaXml.xpath("latestChapter")[0].text = manga["latestChapter"]
mangaXml.xpath("link")[0].text = magan["link"]
break
mangaFile = open(self._filename, "w")
mangaFile.write(etree.tostring(tree.getroot()))
mangaFile.close()
def add(self,manga):
tree = etree.parse(self._filename)
root = tree.getroot()
mangaElement = etree.SubElement(root,"manga")
nameElement = etree.SubElement(mangaElement,"name")
nameElement.text = manga["name"]
statusElement = etree.SubElement(mangaElement, "status")
statusElement.text = manga["status"]
latestChapterElement = etree.SubElement(mangaElement, "latestChapter")
latestChapterElement.text = manga["latestChapter"]
linkElement = etree.SubElement(mangaElement, "link")
linkElement.text = manga["link"]
mangaFile = open(self._filename, "w")
mangaFile.write(etree.tostring(root))
mangaFile.close()
def read(self):
mangaList = []
tree = etree.parse(self._filename)
mangaXmlList = tree.xpath("/mangaList/manga")
for manga in mangaXmlList:
dic = {}
dic["name"] = manga.xpath("name")[0].text
dic["status"] = manga.xpath("status")[0].text
dic["latestChapter"] = manga.xpath("latestChapter")[0].text
dic["link"] = manga.xpath("link")[0].text
mangaList.append(dic)
return mangaList
def write(self, mangaList):
root = etree.Element("mangaList")
for manga in mangaList:
mangaElement = etree.SubElement(root, "manga")
nameElement = etree.SubElement(mangaElement, "name")
nameElement.text = manga["name"]
statusElement = etree.SubElement(mangaElement, "status")
statusElement.text = manga["status"]
latestChapterElement = etree.SubElement(mangaElement, "latestChapter")
latestChapterElement.text = manga["latestChapter"]
linkElement = etree.SubElement(mangaElement, "link")
linkElement.text = manga["link"]
tree = etree.ElementTree(root)
tree.write(self._filename)