Merge pull request #609 from Blatzar/master

fixed twist ._.
master
AbdullahM0hamed 2021-01-17 16:13:50 +00:00 committed by GitHub
commit a2a2fc0dd3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 11 additions and 11 deletions

View File

@ -20,7 +20,7 @@ class BaseExtractor:
self.headers = desktop_headers
self._stream_url = None
self._referer = ''
self._referer = self.headers.get('Referer', '')
self._meta = None
@property

View File

@ -5,5 +5,5 @@ class AnimeVideo(BaseExtractor):
def _get_data(self):
return {
'stream_url': self.url,
'referer': self.url
'referer': self._referer if self._referer else self.url
}

View File

@ -23,6 +23,7 @@ KEY = b"LXgIVP&PorO68Rq7dTx8N^lP!Fa5sGJ^*XK"
class TwistMoeEpisode(AnimeEpisode, sitename='twist.moe'):
def _get_sources(self):
self.headers["Referer"] = self._parent.url + str(self.ep_no)
return [('no_extractor', self.url)]
@ -71,14 +72,13 @@ class TwistMoe(Anime, sitename='twist.moe'):
episodes = episodes.json()
logging.debug(episodes)
self.title = anime_name
episode_urls = ['https://twist.moe' +
episode_urls = ['https://twistcdn.bunny.sh' +
decrypt(episode['source'].encode('utf-8'), KEY).decode('utf-8')
for episode in episodes]
self._episode_urls = [(i + 1, episode_url)
for i, episode_url in enumerate(episode_urls)]
self._len = len(self._episode_urls)
return self._episode_urls
@ -95,6 +95,7 @@ def unpad(data):
def bytes_to_key(data, salt, output=48):
# extended from https://gist.github.com/gsakkis/4546068
assert len(salt) == 8, len(salt)
data = b"267041df55ca2b36f2e322d05ee2c9cf"
data += salt
key = md5(data).digest()
final_key = key

View File

@ -22,7 +22,7 @@ from urllib.parse import urlparse, unquote
from anime_downloader import session
from anime_downloader.sites import get_anime_class, helpers
from anime_downloader.const import desktop_headers
from anime_downloader.const import desktop_headers, get_random_header
logger = logging.getLogger(__name__)
@ -224,12 +224,11 @@ def print_episodeurl(episode):
def play_episode(episode, *, player, title):
if player == 'mpv':
p = subprocess.Popen([
player,
'--title={}'.format(title),
'--referrer="{}"'.format(episode.source().referer),
episode.source().stream_url
])
p = subprocess.Popen([player,
f'--title={title}',
f'--referrer={episode.source().referer}',
f'--user-agent={get_random_header()["user-agent"]}',
episode.source().stream_url])
else:
p = subprocess.Popen([player, episode.source().stream_url
])