... | ... |
@@ -6,6 +6,7 @@ |
6 | 6 |
"csvTemp": "output.temp", |
7 | 7 |
"debug": 0, |
8 | 8 |
"logfile": "output.log", |
9 |
+ "favorite": "favorite.txt", |
|
9 | 10 |
"name": "Proxy", |
10 | 11 |
"port": 8080, |
11 | 12 |
"version": "1.0", |
... | ... |
@@ -42,6 +42,7 @@ default_config = { |
42 | 42 |
"port": 8080, |
43 | 43 |
"address": "0.0.0.0", |
44 | 44 |
"logfile": "output.log", |
45 |
+ "favorite": "favorite.txt", |
|
45 | 46 |
"csv": "output.csv", |
46 | 47 |
"csvTemp": "output.temp", |
47 | 48 |
"csvMax": 10, |
... | ... |
@@ -59,6 +60,9 @@ def get_debug(): |
59 | 60 |
def get_logfile(): |
60 | 61 |
return server['logfile'] |
61 | 62 |
|
63 |
+def get_favorite(): |
|
64 |
+ return server['favorite'] |
|
65 |
+ |
|
62 | 66 |
def get_pageBegin(): |
63 | 67 |
return server['pageStart'] |
64 | 68 |
|
... | ... |
@@ -60,11 +60,16 @@ def completedManganeloTV(genre): |
60 | 60 |
|
61 | 61 |
def getManganeloTV(url): |
62 | 62 |
debug("Downloading: "+url) |
63 |
- if "manganelo.com" in url: |
|
64 |
- url=url.replace("manganelo.com","manganelo.tv") |
|
65 |
- say("Replace URL:"+url) |
|
63 |
+ #if "manganelo.com" in url: |
|
64 |
+ # url=url.replace("manganelo.com","manganelo.tv") |
|
65 |
+ # say("Replace URL:"+url) |
|
66 | 66 |
r = requests.get(url, allow_redirects=True) |
67 | 67 |
content = r.text |
68 |
+ |
|
69 |
+ isMangakakalot = 0 |
|
70 |
+ if "mangakakalot.com" in url: |
|
71 |
+ isMangakakalot = 1 |
|
72 |
+ |
|
68 | 73 |
#print(r.text) |
69 | 74 |
lineNextChapter = None |
70 | 75 |
linePreviousChapter = None |
... | ... |
@@ -76,10 +81,21 @@ def getManganeloTV(url): |
76 | 81 |
if "navi-change-chapter-btn-prev a-h" in line and linePreviousChapter is None: |
77 | 82 |
linePreviousChapter = line |
78 | 83 |
elif "navi-change-chapter-btn-next a-h" in line and lineNextChapter is None: |
79 |
- # ~ print("Found at"+str(line)) |
|
84 |
+ print("Found at"+str(line)) |
|
80 | 85 |
lineNextChapter = line |
86 |
+ |
|
81 | 87 |
elif "<meta property=\"og:title\" content=\"" in line and lineTitle is None: |
82 | 88 |
lineTitle = line |
89 |
+ |
|
90 |
+ elif isMangakakalot == 1 and "<div class='btn-navigation-chap'>" in line and lineNextChapter is None and linkNext is None: |
|
91 |
+ for subLine in line.split("><"): |
|
92 |
+ if "NEXT CHAPTER" in subLine: |
|
93 |
+ linkNext=subLine.split("'")[1] |
|
94 |
+ elif isMangakakalot == 1 and "<div class='btn-navigation-chap'>" in line and linePreviousChapter is None and linkPrev is None: |
|
95 |
+ for subLine in line.split("><"): |
|
96 |
+ if "PREV CHAPTER" in subLine: |
|
97 |
+ linkPrev=subLine.split("'")[1] |
|
98 |
+ |
|
83 | 99 |
elif "<img class=\"img-loading\" data-src=\"" in line: |
84 | 100 |
if ".jpg" in line: |
85 | 101 |
listImages.append(line.split("\"")[3]) |
... | ... |
@@ -120,7 +136,10 @@ def getManganeloTV(url): |
120 | 136 |
linkNext="https://manganelo.tv"+lineNextChapter.split("\"")[5] |
121 | 137 |
|
122 | 138 |
mangaImagesNum = len(listImages) |
123 |
- mangaTitle=lineTitle.split("\"")[3].split(" - Manganelo")[0] |
|
139 |
+ if not isMangakakalot: |
|
140 |
+ mangaTitle=lineTitle.split("\"")[3].split(" - Manganelo")[0] |
|
141 |
+ else: |
|
142 |
+ mangaTitle=lineTitle.split("\"")[3].split(" - Mangakakalot.com")[0] |
|
124 | 143 |
say("Manga :"+mangaTitle) |
125 | 144 |
pageContent = "" |
126 | 145 |
pageContent += "<div class=\"mangaChapNavig\">\n" |
... | ... |
@@ -130,8 +149,6 @@ def getManganeloTV(url): |
130 | 149 |
if linkNext is not None: |
131 | 150 |
pageContent += " <div class=\"mangaChapNavigNext\"><a href=\"?url="+linkNext+"\"><div class=\"arrow-right\"></div><div class=\"arrow-right\"></div></a></div>\n" |
132 | 151 |
pageContent += " <div class=\"mangaChapNavigHome\"><a href=\".\"><div class=\"arrow-up\"></div></a></div>\n" |
133 |
- #pageContent += " <div class=\"mangaRead\" onclick=\"onArticle(0)\">📖</div>\n" |
|
134 |
- #pageContent += " <div class=\"mangaChapNavigHome\"><div class=\"arrow-down\" onclick=\"onArticle(0)\"></div><a></div>\n" |
|
135 | 152 |
pageContent += " <span id=\"mangaCurrPage\"></span><span id=\"mangaNumPages\"> / "+str(mangaImagesNum)+"</span>\n" |
136 | 153 |
pageContent += " <span id=\"mangaFSStatus\" style=\"display: none;\">0</span>\n" |
137 | 154 |
pageContent += " <span id=\"mangaFSToggle\" onclick=\"openFullscreen();\"><div class=\"fs-on\"></div></span>\n" |
... | ... |
@@ -142,8 +159,6 @@ def getManganeloTV(url): |
142 | 159 |
pageContent += " <span id=\"mangaOpacityValue\">"+str(opacityValue)+"</span>" |
143 | 160 |
pageContent += " <span id=\"mangaOpacityPlus\" onclick=\"onOpacityPlus()\">☀</span>\n" |
144 | 161 |
pageContent += " <span id=\"mangaReload\" onClick=\"window.location.reload();\"><div class=\"reload-circle\"></div></span>\n" |
145 |
- #pageContent += " <div class=\"column\" id=\"colLeft\" onclick=\"onArticle("+str(cpt-1)+")\">\n" |
|
146 |
- #pageContent += " <div class=\"column\" id=\"colRight\" onclick=\"onArticle("+str(cpt+1)+")\">\n" |
|
147 | 162 |
pageContent += "</div>\n" |
148 | 163 |
|
149 | 164 |
pageContent += "<a name=\"article-top\"></a><div id=\"article-current\"></div>\n" |
... | ... |
@@ -185,25 +200,23 @@ class MyServer(BaseHTTPRequestHandler): |
185 | 200 |
csvFilename = rootdir + server['csv'] |
186 | 201 |
csvFilenameTemp = rootdir + server['csvTemp'] |
187 | 202 |
|
188 |
- if '/genre.html' in self.path: |
|
203 |
+ if '/list.html' in self.path: |
|
189 | 204 |
page=[] |
190 | 205 |
data_begin = "" |
191 | 206 |
|
192 |
- s = self.path |
|
193 |
- genre = None |
|
194 |
- if "genre" in s: |
|
195 |
- strGenre = "genre=" |
|
196 |
- indexGenre = s.index(strGenre) |
|
197 |
- genre = s[indexGenre+len(strGenre):len(s)] |
|
198 |
- say(genre) |
|
199 |
- |
|
200 | 207 |
with open(configuration.get_pageBegin(),'r') as fStart: |
201 | 208 |
data_begin += fStart.read().replace( 'CSTAPPNAME', server['name'] ) |
202 | 209 |
|
203 | 210 |
data_end = "" |
204 | 211 |
with open(configuration.get_pageEnd(),'r') as fEnd: |
205 | 212 |
data_end += fEnd.read().replace( 'CSTAPPNAME', server['name'] ).replace( 'CSTAPPVERSION', server['version'] ) |
206 |
- data_page = completedManganeloTV(genre) |
|
213 |
+ |
|
214 |
+ data_page = "" |
|
215 |
+ with open("list.html", "rt") as f: |
|
216 |
+ lines=f.readlines() |
|
217 |
+ for line in lines: |
|
218 |
+ data_page += "<li><a href=\"./?url="+line.split("@")[0]+"\">"+line.split("@")[1]+"</a></li>" |
|
219 |
+ f.close() |
|
207 | 220 |
page.append(data_begin) |
208 | 221 |
page.append(data_page) |
209 | 222 |
page.append(data_end) |
... | ... |
@@ -248,10 +261,22 @@ class MyServer(BaseHTTPRequestHandler): |
248 | 261 |
data_page += getManganeloTV(url) |
249 | 262 |
elif "readmanganato.com" in url: |
250 | 263 |
data_page += getManganeloTV(url) |
264 |
+ elif "mangakakalot.com" in url: |
|
265 |
+ data_page += getManganeloTV(url) |
|
251 | 266 |
else: |
252 |
- date_page += "Unsupported hoster at "+url |
|
267 |
+ warn("Unsupported Hoster at "+url) |
|
268 |
+ data_page += "<span id=\"lbl\">Unsupported hoster at "+url+"</span>" |
|
269 |
+ data_page += "<div class=\"mangaChapNavigHome\"><a href=\".\"><div class=\"arrow-up\"></div></a></div>" |
|
253 | 270 |
|
254 | 271 |
else: |
272 |
+ try: |
|
273 |
+ with open(server['favorite'], "rt") as f: |
|
274 |
+ lines=f.readlines() |
|
275 |
+ for line in lines: |
|
276 |
+ data_page += "<li><a href=\"./?url="+line+"\">"+line+"</a></li>" |
|
277 |
+ f.close() |
|
278 |
+ except: |
|
279 |
+ pass |
|
255 | 280 |
data_form = "<form action=\"\">\n\ |
256 | 281 |
<span id=\"lbl\">Url:</span>\n\ |
257 | 282 |
<input type=\"text\" id=\"srvIp\" name=\"url\" value=\"\">\n\ |
... | ... |
@@ -1,3 +1,4 @@ |
1 | 1 |
#!/bin/bash |
2 |
+cd /home/ycawidro/dev/mangaProxy |
|
2 | 3 |
screen -S manga python3 mangaProxy.py |
3 | 4 |
|