Эх сурвалжийг харах

reminder fix and code cleanup

Phil 5 жил өмнө
parent
commit
1412e7fd20

+ 1 - 0
dummys/player.html

@@ -0,0 +1 @@
+b'<!DOCTYPE html>\n<html>\n<head>\n<script language="JavaScript" type="text/javascript" CHARSET="UTF-8" src="/js/jquery-1.9.1.min.js"></script>\n\n</head>\n<body style="background-color: #000; margin:0;">\n<div id="player_code" style="margin:0 auto;width: 720px;height: 504px;"><link rel="stylesheet" type="text/css" href="/player/plyr2/psplayer-global.css">\n<link rel="stylesheet" type="text/css" href="/player/plyr2/plyr.css">\n<video class="" controls id="plyr" style="width: 100%; height: 504px;background-color: #000;">\n<source type="video/mp4" src="https://s3-psc.proxer.me/files/0/yy84jixb4sui/video.mp4">\n</video>\n<div class="video_fw_info" style="display: none;">Du hast die freiwillige Werbung aktiv und zus\xc3\xa4tzlich einen Werbeblocker. Bitte <a target="_blank" href="https://proxer.me/ucp?s=settings">klicke hier</a> und deaktiviere entweder die freiwillige Werbung oder den Werbeblocker, damit dieser Stream funktioniert.</div>\n\n<script type="text/javascript">var proxerstream_player = "html5";</script>\n<script type="text/javascript" src="/player/plyr2/psplayer-global.js?2"></script>\n<script type="text/javascript" src="/player/plyr2/plyr.js"></script>\n<script>\nconst player = new Plyr(\'#plyr\', {disableContextMenu: true,ads:{enabled: false,tagUrl: \'\',invertTime: true}});\nplayer.on(\'loadeddata\', event => { player.currentTime = 0; });\n</script>\n\n</div>\n</body>\n</html>\n'

+ 41 - 0
dummys/player_clean.html

@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta name="generator" content=
+"HTML Tidy for HTML5 for Linux version 5.7.28">
+<title></title>
+</head>
+<body>
+b'\n\n\n
+<script language="JavaScript" type="text/javascript" charset=
+"UTF-8" src="/js/jquery-1.9.1.min.js"></script>\n\n\n\n
+<div id="player_code" style=
+"margin:0 auto;width: 720px;height: 504px;">
+<link rel="stylesheet" type="text/css" href=
+"/player/plyr2/psplayer-global.css">\n
+<link rel="stylesheet" type="text/css" href=
+"/player/plyr2/plyr.css">\n<video class="" controls="" id="plyr"
+style=
+"width: 100%; height: 504px;background-color: #000;">\n<source type="video/mp4"
+src=
+"https://s3-psc.proxer.me/files/0/yy84jixb4sui/video.mp4">\n</video>\n
+<div class="video_fw_info" style="display: none;">Du hast die
+freiwillige Werbung aktiv und zus\xc3\xa4tzlich einen Werbeblocker.
+Bitte <a target="_blank" href=
+"https://proxer.me/ucp?s=settings">klicke hier</a> und deaktiviere
+entweder die freiwillige Werbung oder den Werbeblocker, damit
+dieser Stream funktioniert.</div>
+\n\n
+<script type="text/javascript">
+var proxerstream_player = "html5";
+</script>\n
+<script type="text/javascript" src=
+"/player/plyr2/psplayer-global.js?2"></script>\n
+<script type="text/javascript" src=
+"/player/plyr2/plyr.js"></script>\n
+<script>
+\nconst player = new Plyr(\'#plyr\', {disableContextMenu: true,ads:{enabled: false,tagUrl: \'\',invertTime: true}});\nplayer.on(\'loadeddata\', event => { player.currentTime = 0; });\n
+</script>\n\n</div>
+\n\n\n'
+</body>
+</html>

+ 21 - 58
main.py

@@ -8,6 +8,7 @@ import subprocess
 from parsers.episode import episodeParser
 from parsers.lesezeichen import lesezeichenParser
 from parsers.chapter import chapterParser
+from parsers.player import playerParser
 
 def main():
     while True:
@@ -49,18 +50,6 @@ def main():
         if uin =='99':
             exit()
 
-def chapter_dummy():
-    #url = 'https://proxer.me' + ep['link'].replace('chapter','read').replace('#top','')+'/1'
-    #print(url)
-    #response = sess.get(url)
-    f = open('dummys/chapter.html','r')
-    content = f.readlines()
-    f.close()
-    chapPars = chapterParser()
-    chapPars.feed(str(content))
-
-    
-    
 def chapter(sess,ep):
     url = 'https://proxer.me' + ep['link'].replace('chapter','read').replace('#top','')+'/1'
     response = sess.get(url)
@@ -70,31 +59,40 @@ def chapter(sess,ep):
     path = 'manga/'+ep['name']+'/'+ep['num']+'/'
     if not os.path.exists(path):
         os.makedirs(path)
+    print(str(ep))
     print(chapPars.serverurl)
     count = 0
     print("1 - Download")
     print("2 - mark as read")
     uin = input('$>: ')
     if uin == '1':
+        print(path)
         for p in tqdm(chapPars.images):
-            call(['curl',chapPars.serverurl + p['file'],'-o',path+str(count).zfill(3)+p['file'][p['file'].rindex('.'):]])
+            call(['curl',chapPars.serverurl + p['file'],'-o',path+str(count).zfill(2)+p['file'][p['file'].rindex('.'):]])
             count +=1
 
     if uin == '2':
-        url = 'https://proxer.me' + ep['link'].replace('#top','?format=json&type=reminder&'+ auth.token +'=1&title=reminder_next')
-        response = sess.post(url,data = {'check':'1'})
+        url = 'https://proxer.me' + ep['link'].replace('#top','?format=json&type=reminder&'+ chapPars.token +'=1&title=reminder_next')
+        response = sess.post(url,data = {"check":1})
+        print(url)
         print(str(response.content))
          
 def episode(sess,ep):
     response = sess.get('https://proxer.me'+ep['link'])
     content = response.content
+    print(str(content))
     epars = episodeParser()
     epars.feed(str(content))
     code = epars.code
-    link = "https://s3-psc.proxer.me/files/0/"+code+"/video.mp4"
+    link = 'https:'+epars.url.replace('#',code)
+    response = sess.get(link)
+    ppars = playerParser()
+    ppars.feed(str(response.content))
+    link = ppars.url
     print(link)
     print('1 - open with vlc')
     print('2 - download')
+    print('3 - mark as watched')
     path = 'anime/'+ep['name']+'/'
     if not os.path.exists(path):
         os.makedirs(path)
@@ -103,27 +101,15 @@ def episode(sess,ep):
         call(["vlc", link])
     if uin == '2':
         call(['curl',link,'-o',path+ep['num']+'.mp4'])
- 
-def episode_test():
-    f = open('dummys/episode.html','r')
-    content = f.readlines()
-    f.close()
-    epars = episodeParser()
-    epars.feed(str(content))
-    code = epars.code
-    link = "https://s3-psc.proxer.me/files/0/"+code+"/video.mp4"
-    print(link)
-    print('1 - open with vlc')
-    print('2 - download')
-    uin = input('$>: ')
-    if uin == '1':
-        os.popen('vlc '+link)
-        #x = subprocess.run(['bash','vlc',link])
-        #call(["vlc", link])
-    if uin == '2':
-        call(['curl',link,'-o','test.mp4'])
+    if uin == '3':
+        url = 'https://proxer.me' + ep['link'].replace('#top','?format=json&type=reminder&'+ epars.token +'=1&title=reminder_next')
+        response = sess.post(url,data = {"check":1})
+        print(url)
+        print(str(response.content))
     
 def LesezeichenAll(sess):
+    watchlist = []
+    readlist = []
     response = sess.get('https://proxer.me/ucp?s=reminder&utm_source=nav#top')
     lpars = lesezeichenParser()
     content = response.content
@@ -172,28 +158,5 @@ def LesezeichenSingle(sess,mode):
     f.write(str(response.content))
     f.close
     print('written')
-
-def LesezeichenD():
-    lpars = lesezeichenParser()
-    f = open('dump.html','r')
-    content = f.readlines()
-    lpars.feed(str(content))
-    watchlist = lpars.watchlist
-    readlist = lpars.readlist
-    print('----------------------------')
-    print('watchlist')
-    for i in range (0,len(watchlist) - 1):
-        print('w' + str(i) + ' - ' + watchlist[i]['name'] + ' - ' + str(watchlist[i]['new']))
-    print('readlist')
-    for i in range (0,len(readlist) - 1):
-        print('r' + str(i) + ' - ' + readlist[i]['name'] + ' - ' + str(readlist[i]['new']))
-    print(str(readlist))
-    uin = input('$>: ')
-    link = ''
-    if uin[0] == 'w':
-        link = watchlist[int(uin.replace('w',''))]['link']
-    else:
-        link = readlist[int(uin.replace('r',''))]['link']
-    print(link)
     
 main()

+ 5 - 0
parsers/chapter.py

@@ -5,9 +5,14 @@ class chapterParser(HTMLParser):
     inScript = False
     serverurl = ""
     images = []
+    token = ""
+
     def handle_starttag(self, tag, attrs):
         if tag=='script':
             self.inScript = True
+        if tag == 'input' and len(attrs) > 2:
+            if attrs[2][1] == 'proxerToken':
+                self.token = attrs[1][1]
     def handle_data(self, data):
         if self.inScript:
             if 'var serverurl' in data:

+ 12 - 2
parsers/episode.py

@@ -6,10 +6,15 @@ from html.entities import name2codepoint
 class episodeParser(HTMLParser):
     inScript = False
     code = ""
+    url = ""
+    token = ""
 
     def handle_starttag(self, tag, attrs):
         if tag == 'script':
             self.inScript = True
+        if tag == 'input' and len(attrs) > 2:
+            if attrs[2][1] == 'proxerToken':
+                self.token = attrs[1][1]
 
 
     def handle_data(self, data):
@@ -18,15 +23,20 @@ class episodeParser(HTMLParser):
             streams = lines[0][lines[0].index('['):]
             streams = streams.split('}')
             print(streams[0])
+            
             typeIndex = streams[0].index('type') + 7
             if streams[0][typeIndex:typeIndex + 13] == 'proxer-stream':
                 print('proxer-steram')
                 codeStart = streams[0].index('code') + 7
                 code = streams[0][codeStart:]
                 code = code[:code.index('"')]
-                print(code)
                 self.code = code
+                print(code)
+                urlStart = streams[0].index('replace') + 10
+                url = streams[0][urlStart:streams[0].index('.html') + 5]
+                self.url = url.replace("\\\\","")
+                print("url: " + url)
 
     def handle_endtag(self, tag):
         if tag == 'script' and self.inScript:
-            self.inScript = False
+            self.inScript = False

+ 19 - 0
parsers/player.py

@@ -0,0 +1,19 @@
+from getpass import getpass
+import requests
+from html.parser import HTMLParser
+from html.entities import name2codepoint
+    
+class playerParser(HTMLParser):
+    url = ""
+
+    def handle_starttag(self, tag, attrs):
+        if tag == 'source':
+            self.url = attrs[1][1]
+            print(self.url)
+
+
+
+    #def handle_data(self, data):
+    
+
+    #def handle_endtag(self, tag):