episode.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from getpass import getpass
  2. import requests
  3. from html.parser import HTMLParser
  4. from html.entities import name2codepoint
  5. class episodeParser(HTMLParser):
  6. inScript = False
  7. code = ""
  8. url = ""
  9. token = ""
  10. def handle_starttag(self, tag, attrs):
  11. if tag == 'script':
  12. self.inScript = True
  13. if tag == 'input' and len(attrs) > 2:
  14. if attrs[2][1] == 'proxerToken':
  15. self.token = attrs[1][1]
  16. def handle_data(self, data):
  17. if self.inScript:
  18. lines = data.replace('\\n','').split(';')
  19. streams = lines[0][lines[0].index('['):]
  20. streams = streams.split('}')
  21. typeIndex = streams[0].index('type') + 7
  22. if streams[0][typeIndex:typeIndex + 13] == 'proxer-stream':
  23. print('proxer-steram')
  24. codeStart = streams[0].index('code') + 7
  25. code = streams[0][codeStart:]
  26. code = code[:code.index('"')]
  27. self.code = code
  28. urlStart = streams[0].index('replace') + 10
  29. url = streams[0][urlStart:streams[0].index('.html') + 5]
  30. self.url = url.replace("\\\\","")
  31. def handle_endtag(self, tag):
  32. if tag == 'script' and self.inScript:
  33. self.inScript = False