Merge pull request #617 from nate-moo/patch-1

Adding support for android intents
master
Red 2021-02-08 22:14:56 +00:00 committed by GitHub
commit 3a6ef87a6e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 15 deletions

View File

@ -123,14 +123,17 @@ def command(ctx, anime_url, episode_range, url, player, skip_download, quality,
for episode in animes:
if skip_fillers and fillers:
if episode.ep_no in fillers:
logger.info("Skipping episode {} because it is a filler.".format(episode.ep_no))
logger.info(
"Skipping episode {} because it is a filler.".format(episode.ep_no))
continue
if url:
util.print_episodeurl(episode)
if player:
util.play_episode(episode, player=player, title=f'{anime.title} - Episode {episode.ep_no}')
episode_range = f"0:{len(animes)}" if not episode_range else episode_range
util.play_episode(
episode, player=player, title=f'{anime.title} - Episode {episode.ep_no}', episodes=episode_range)
if not skip_download:
if external_downloader:

View File

@ -185,7 +185,8 @@ def parse_episode_range(max_range, episode_range):
if not episode_range:
episode_range = '1:'
if episode_range.endswith(':'):
length = max_range if type(max_range) == int else (int(max_range._episode_urls[-1][0]))
length = max_range if type(max_range) == int else (
int(max_range._episode_urls[-1][0]))
episode_range += str(length + 1)
if episode_range.startswith(':'):
episode_range = '1' + episode_range
@ -222,16 +223,20 @@ def print_episodeurl(episode):
print(unquote(url))
def play_episode(episode, *, player, title):
def play_episode(episode, *, player, title, episodes="0:0"):
if player == 'mpv':
p = subprocess.Popen([player,
f'--title={title}',
f'--referrer={episode.source().referer}',
f'--user-agent={get_random_header()["user-agent"]}',
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])
elif player == "android":
p = subprocess.Popen(['am', 'start', '-a', 'android.intent.action.VIEW',
'-t', 'video/*', '-d', f'{episode.source().stream_url}'])
if episodes == None or ':' in episodes and episodes != "0:1":
input("Press enter to continue\n")
else:
p = subprocess.Popen([player, episode.source().stream_url
])
p = subprocess.Popen([player, episode.source().stream_url])
p.wait()
@ -273,8 +278,9 @@ def format_filename(filename, episode):
def format_command(cmd, episode, file_format, speed_limit, path):
from anime_downloader.config import Config
if not Config._CONFIG['dl']['aria2c_for_torrents'] and (episode.url.startswith('magnet:?xt=urn:btih:') or episode.source().stream_url.startswith('https://magnet:?xt=urn:btih:')):
url = episode.url if episode.url.startswith("magnet") else episode.source().stream_url
url = url.replace("https://","")
url = episode.url if episode.url.startswith(
"magnet") else episode.source().stream_url
url = url.replace("https://", "")
return ['open', url]
# For aria2c.
@ -303,8 +309,10 @@ def format_command(cmd, episode, file_format, speed_limit, path):
else:
useragent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36'
stream_url = episode.source().stream_url if not episode.url.startswith('magnet:?xt=urn:btih:') else episode.url
stream_url = stream_url if 'magnet:?xt=urn:btih:' not in stream_url else stream_url.replace('https://', '')
stream_url = episode.source().stream_url if not episode.url.startswith(
'magnet:?xt=urn:btih:') else episode.url
stream_url = stream_url if 'magnet:?xt=urn:btih:' not in stream_url else stream_url.replace(
'https://', '')
rep_dict = {
'stream_url': stream_url,