Showing 1 changed files with 76 additions and 2 deletions
+76 -2
mangaProxy.py
... ...
@@ -8,6 +8,7 @@ import urllib.parse
8 8
 import configuration
9 9
 import socket
10 10
 import requests
11
+import re
11 12
 from userio import *
12 13
 
13 14
 # Random Example URL: https://manganelo.tv/chapter/dy925032/chapter_21
... ...
@@ -17,6 +18,46 @@ server = None
17 18
 csvFilename = None
18 19
 connectionResults = None
19 20
 
21
+def completedManganeloTV(genre):
22
+  if genre is None:
23
+    genre=""
24
+  url = "https://manganelo.tv/genre/"+genre+"?state=completed" 
25
+  say("display by genre: ["+genre+"]")
26
+  say(url)
27
+  pageContent = ""
28
+  pageContent += "<div class=\"mangaChapNavig\">\n"
29
+  pageContent += "  <div class=\"mangaChapNavigHome\"><a href=\".\"><div class=\"arrow-up\"></div><a></div>\n"
30
+  pageContent += "</div>\n"
31
+  pageContent += "<div class=\"row\">\n"
32
+  if configuration.get_debug() != 0:
33
+    pageContent += "<p>Request: "+url+"</p>\n"
34
+  r = requests.get(url, allow_redirects=True)
35
+  content = r.text
36
+  #pageContent += content
37
+  articleCstBegin="<div class=\"panel-content-genres\">"
38
+  articleCstEnd="<div class=\"panel-page-number\">"
39
+  indexBegin = content.index(articleCstBegin)
40
+  indexEnd   = content.index(articleCstEnd)
41
+  dataContent = content[indexBegin+len(articleCstBegin):indexEnd]
42
+  dataContent = re.sub(r"<span class=\"genres-item-time\">(.*?)</span>", '', dataContent)
43
+  dataContent = re.sub(r"<span class=\"genres-item-view\">(.*?)", '<span>', dataContent)
44
+  dataContent = re.sub(r"onerror=\"javascript:this.src='/res/img/404_not_found.webp';\" ", '', dataContent)
45
+  dataContent = re.sub(r"href=\"\/", 'href=\"//manganelo.tv/', dataContent)
46
+  dataContent = re.sub(r"src=\"\/", 'src=\"//manganelo.tv/', dataContent)
47
+  dataContent = re.sub(r"<a rel=\"nofollow\" class=\"genres-item-img\" href=\"", '<a target="new" href="', dataContent)
48
+  dataContent = re.sub(r"<a rel=\"nofollow\" class=\"genres-item-chap text-nowrap a-h\" href=\"", '<a target="new" href="./?url=https:', dataContent)
49
+  dataContent = re.sub(r"<a rel=\"nofollow\" class=\"genres-item-readmore\" href=\"(.*)\">Read more</a>", '', dataContent)
50
+  dataContent = re.sub(r"<i class=\"genres-item-description-linear\"></i>", '', dataContent)
51
+  dataContent = re.sub(r"<em class=\"genres-item-rate\">(.*)</em>", '', dataContent)
52
+  dataContent = re.sub(r"<span class=\"genres-item-author\">(.*?)</span>", '<p class="genres-item-description">\g<1></p>', dataContent)
53
+  dataContent = re.sub(r"<div class=\"genres-item-info\">", '<div>', dataContent)
54
+  dataContent = re.sub(r"<div class=\"content-genres-item\">", '<div class="content-genres-item"><hr>', dataContent)
55
+  dataContent = re.sub(r"<span>(.*),(.*)", '<span>', dataContent)
56
+  pageContent += "</div>\n"
57
+  pageContent += dataContent
58
+
59
+  return pageContent
60
+
20 61
 def getManganeloTV(url):
21 62
   debug("Downloading: "+url)
22 63
   if "manganelo.com" in url:
... ...
@@ -35,7 +76,7 @@ def getManganeloTV(url):
35 76
     if "navi-change-chapter-btn-prev a-h" in line and linePreviousChapter is None:
36 77
       linePreviousChapter = line
37 78
     elif "navi-change-chapter-btn-next a-h" in line and lineNextChapter is None:
38
-      print("Found at"+str(line))
79
+      # ~ print("Found at"+str(line))
39 80
       lineNextChapter = line
40 81
     elif "<meta property=\"og:title\" content=\"" in line and lineTitle is None:
41 82
       lineTitle = line
... ...
@@ -138,7 +179,37 @@ class MyServer(BaseHTTPRequestHandler):
138 179
         rootdir = 'pages/static/'
139 180
         csvFilename = rootdir + server['csv']
140 181
         csvFilenameTemp = rootdir + server['csvTemp']
141
-        if not os.path.exists(rootdir + self.path) or self.path == '/index.html' or self.path == '/':
182
+
183
+        if '/genre.html' in self.path:
184
+            page=[]
185
+            data_begin = ""
186
+
187
+            s = self.path
188
+            genre = None
189
+            if "genre" in s:
190
+                strGenre = "genre="
191
+                indexGenre = s.index(strGenre) 
192
+                genre = s[indexGenre+len(strGenre):len(s)] 
193
+            say(genre)
194
+
195
+            with open(configuration.get_pageBegin(),'r') as fStart:
196
+                data_begin += fStart.read().replace( 'CSTAPPNAME', server['name'] )
197
+            
198
+            data_end = ""
199
+            with open(configuration.get_pageEnd(),'r') as fEnd:
200
+                data_end += fEnd.read().replace( 'CSTAPPNAME', server['name'] ).replace( 'CSTAPPVERSION', server['version'] )
201
+            data_page = completedManganeloTV(genre)
202
+            page.append(data_begin)
203
+            page.append(data_page)
204
+            page.append(data_end)
205
+            content = ''.join(page)
206
+            self.send_response(200)
207
+            self.send_header("Content-type", "text/html")
208
+            self.send_header('Server',server['name']+" v"+server['version'])
209
+            self.end_headers()
210
+            self.wfile.write(content.encode('utf-8'))
211
+
212
+        elif not os.path.exists(rootdir + self.path) or self.path == '/index.html' or self.path == '/':
142 213
             if self.headers['X-Real-IP'] is None:
143 214
                 say("From: "+self.client_address[0]+" GET Received : "+self.path)
144 215
             else:
... ...
@@ -170,6 +241,8 @@ class MyServer(BaseHTTPRequestHandler):
170 241
             if not url is None:
171 242
                 if "manganelo" in url:
172 243
                     data_page += getManganeloTV(url)
244
+                elif "readmanganato.com" in url:
245
+                    data_page += getManganeloTV(url)
173 246
                 else:
174 247
                     date_page += "Unsupported hoster at "+url
175 248
 
... ...
@@ -190,6 +263,7 @@ class MyServer(BaseHTTPRequestHandler):
190 263
             self.send_header('Server',server['name']+" v"+server['version'])
191 264
             self.end_headers()
192 265
             self.wfile.write(content.encode('utf-8'))
266
+
193 267
         elif not os.path.exists(rootdir + self.path):
194 268
             self.send_header('Server',server['name']+" v"+server['version'])
195 269
             self.send_error(404, 'file not found')