mirror of
https://github.com/morpheus65535/bazarr
synced 2024-12-21 23:32:31 +00:00
Added animetosho provider
This commit is contained in:
parent
3c30492e71
commit
77ebd036f2
16 changed files with 1465 additions and 22 deletions
|
@ -48,6 +48,7 @@ If you need something that is not already part of Bazarr, feel free to create a
|
|||
## Supported subtitles providers:
|
||||
|
||||
- Addic7ed
|
||||
- Animetosho (requires AniDb HTTP API client described [here](https://wiki.anidb.net/HTTP_API_Definition))
|
||||
- Assrt
|
||||
- BetaSeries
|
||||
- BSplayer
|
||||
|
|
|
@ -109,6 +109,7 @@ validators = [
|
|||
Validator('general.adaptive_searching_delta', must_exist=True, default='1w', is_type_of=str,
|
||||
is_in=['3d', '1w', '2w', '3w', '4w']),
|
||||
Validator('general.enabled_providers', must_exist=True, default=[], is_type_of=list),
|
||||
Validator('general.enabled_integrations', must_exist=True, default=[], is_type_of=list),
|
||||
Validator('general.multithreading', must_exist=True, default=True, is_type_of=bool),
|
||||
Validator('general.chmod_enabled', must_exist=True, default=False, is_type_of=bool),
|
||||
Validator('general.chmod', must_exist=True, default='0640', is_type_of=str),
|
||||
|
@ -234,6 +235,11 @@ validators = [
|
|||
Validator('addic7ed.user_agent', must_exist=True, default='', is_type_of=str),
|
||||
Validator('addic7ed.vip', must_exist=True, default=False, is_type_of=bool),
|
||||
|
||||
# animetosho section
|
||||
Validator('animetosho.search_threshold', must_exist=True, default=6, is_type_of=int, gte=1, lte=15),
|
||||
Validator('animetosho.anidb_api_client', must_exist=True, default='', is_type_of=str, cast=str),
|
||||
Validator('animetosho.anidb_api_client_ver', must_exist=True, default=1, is_type_of=int, gte=1, lte=9),
|
||||
|
||||
# avistaz section
|
||||
Validator('avistaz.cookies', must_exist=True, default='', is_type_of=str),
|
||||
Validator('avistaz.user_agent', must_exist=True, default='', is_type_of=str),
|
||||
|
@ -369,6 +375,10 @@ validators = [
|
|||
Validator('postgresql.database', must_exist=True, default='', is_type_of=str),
|
||||
Validator('postgresql.username', must_exist=True, default='', is_type_of=str, cast=str),
|
||||
Validator('postgresql.password', must_exist=True, default='', is_type_of=str, cast=str),
|
||||
|
||||
# anidb section
|
||||
Validator('anidb.api_client', must_exist=True, default='', is_type_of=str),
|
||||
Validator('anidb.api_client_ver', must_exist=True, default=1, is_type_of=int),
|
||||
]
|
||||
|
||||
|
||||
|
@ -442,6 +452,7 @@ array_keys = ['excluded_tags',
|
|||
'subzero_mods',
|
||||
'excluded_series_types',
|
||||
'enabled_providers',
|
||||
'enabled_integrations',
|
||||
'path_mappings',
|
||||
'path_mappings_movie',
|
||||
'language_equals',
|
||||
|
|
|
@ -324,6 +324,9 @@ def get_providers_auth():
|
|||
'timeout': settings.whisperai.timeout,
|
||||
'ffmpeg_path': _FFMPEG_BINARY,
|
||||
'loglevel': settings.whisperai.loglevel,
|
||||
},
|
||||
"animetosho": {
|
||||
'search_threshold': settings.animetosho.search_threshold,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,9 +3,11 @@
|
|||
from .ffprobe import refine_from_ffprobe
|
||||
from .database import refine_from_db
|
||||
from .arr_history import refine_from_arr_history
|
||||
from .anidb import refine_from_anidb
|
||||
|
||||
registered = {
|
||||
"database": refine_from_db,
|
||||
"ffprobe": refine_from_ffprobe,
|
||||
"arr_history": refine_from_arr_history,
|
||||
"anidb": refine_from_anidb,
|
||||
}
|
||||
|
|
140
bazarr/subtitles/refiners/anidb.py
Normal file
140
bazarr/subtitles/refiners/anidb.py
Normal file
|
@ -0,0 +1,140 @@
|
|||
# coding=utf-8
|
||||
# fmt: off
|
||||
|
||||
import logging
|
||||
import requests
|
||||
from collections import namedtuple
|
||||
from datetime import timedelta
|
||||
from requests.exceptions import HTTPError
|
||||
|
||||
from app.config import settings
|
||||
from subliminal import Episode, region
|
||||
|
||||
try:
|
||||
from lxml import etree
|
||||
except ImportError:
|
||||
try:
|
||||
import xml.etree.cElementTree as etree
|
||||
except ImportError:
|
||||
import xml.etree.ElementTree as etree
|
||||
|
||||
refined_providers = {'animetosho'}
|
||||
|
||||
api_url = 'http://api.anidb.net:9001/httpapi'
|
||||
|
||||
|
||||
class AniDBClient(object):
|
||||
def __init__(self, api_client_key=None, api_client_ver=1, session=None):
|
||||
self.session = session or requests.Session()
|
||||
self.api_client_key = api_client_key
|
||||
self.api_client_ver = api_client_ver
|
||||
|
||||
AnimeInfo = namedtuple('AnimeInfo', ['anime', 'episode_offset'])
|
||||
|
||||
@region.cache_on_arguments(expiration_time=timedelta(days=1).total_seconds())
|
||||
def get_series_mappings(self):
|
||||
r = self.session.get(
|
||||
'https://raw.githubusercontent.com/Anime-Lists/anime-lists/master/anime-list.xml',
|
||||
timeout=10
|
||||
)
|
||||
|
||||
r.raise_for_status()
|
||||
|
||||
return r.content
|
||||
|
||||
@region.cache_on_arguments(expiration_time=timedelta(days=1).total_seconds())
|
||||
def get_series_id(self, mappings, tvdb_series_season, tvdb_series_id, episode):
|
||||
# Enrich the collection of anime with the episode offset
|
||||
animes = [
|
||||
self.AnimeInfo(anime, int(anime.attrib.get('episodeoffset', 0)))
|
||||
for anime in mappings.findall(
|
||||
f".//anime[@tvdbid='{tvdb_series_id}'][@defaulttvdbseason='{tvdb_series_season}']"
|
||||
)
|
||||
]
|
||||
|
||||
if not animes:
|
||||
return None
|
||||
|
||||
# Sort the anime by offset in ascending order
|
||||
animes.sort(key=lambda a: a.episode_offset)
|
||||
|
||||
# Different from Tvdb, Anidb have different ids for the Parts of a season
|
||||
anidb_id = None
|
||||
offset = 0
|
||||
|
||||
for index, anime_info in enumerate(animes):
|
||||
anime, episode_offset = anime_info
|
||||
anidb_id = int(anime.attrib.get('anidbid'))
|
||||
if episode > episode_offset:
|
||||
anidb_id = anidb_id
|
||||
offset = episode_offset
|
||||
|
||||
return anidb_id, episode - offset
|
||||
|
||||
@region.cache_on_arguments(expiration_time=timedelta(days=1).total_seconds())
|
||||
def get_series_episodes_ids(self, tvdb_series_id, season, episode):
|
||||
mappings = etree.fromstring(self.get_series_mappings())
|
||||
|
||||
series_id, episode_no = self.get_series_id(mappings, season, tvdb_series_id, episode)
|
||||
|
||||
if not series_id:
|
||||
return None, None
|
||||
|
||||
episodes = etree.fromstring(self.get_episodes(series_id))
|
||||
|
||||
return series_id, int(episodes.find(f".//episode[epno='{episode_no}']").attrib.get('id'))
|
||||
|
||||
@region.cache_on_arguments(expiration_time=timedelta(days=1).total_seconds())
|
||||
def get_episodes(self, series_id):
|
||||
r = self.session.get(
|
||||
api_url,
|
||||
params={
|
||||
'request': 'anime',
|
||||
'client': self.api_client_key,
|
||||
'clientver': self.api_client_ver,
|
||||
'protover': 1,
|
||||
'aid': series_id
|
||||
},
|
||||
timeout=10)
|
||||
r.raise_for_status()
|
||||
|
||||
xml_root = etree.fromstring(r.content)
|
||||
|
||||
response_code = xml_root.attrib.get('code')
|
||||
if response_code == '500':
|
||||
raise HTTPError('AniDB API Abuse detected. Banned status.')
|
||||
elif response_code == '302':
|
||||
raise HTTPError('AniDB API Client error. Client is disabled or does not exists.')
|
||||
|
||||
episode_elements = xml_root.find('episodes')
|
||||
|
||||
if not episode_elements:
|
||||
raise ValueError
|
||||
|
||||
return etree.tostring(episode_elements, encoding='utf8', method='xml')
|
||||
|
||||
|
||||
def refine_from_anidb(path, video):
|
||||
if refined_providers.intersection(settings.general.enabled_providers) and video.series_anidb_id is None:
|
||||
refine_anidb_ids(video)
|
||||
|
||||
|
||||
def refine_anidb_ids(video):
|
||||
if not isinstance(video, Episode) and not video.series_tvdb_id:
|
||||
logging.debug(f'Video is not an Anime TV series, skipping refinement for {video}')
|
||||
|
||||
return video
|
||||
|
||||
anidb_client = AniDBClient(settings.anidb.api_client, settings.anidb.api_client_ver)
|
||||
|
||||
season = video.season if video.season else 0
|
||||
|
||||
anidb_series_id, anidb_episode_id = anidb_client.get_series_episodes_ids(video.series_tvdb_id, season, video.episode)
|
||||
|
||||
if not anidb_episode_id:
|
||||
logging.error(f'Could not find anime series {video.series}')
|
||||
|
||||
return video
|
||||
|
||||
video.series_anidb_id = anidb_series_id
|
||||
video.series_anidb_episode_id = anidb_episode_id
|
|
@ -129,7 +129,8 @@ class Episode(Video):
|
|||
|
||||
"""
|
||||
def __init__(self, name, series, season, episode, title=None, year=None, original_series=True, tvdb_id=None,
|
||||
series_tvdb_id=None, series_imdb_id=None, alternative_series=None, **kwargs):
|
||||
series_tvdb_id=None, series_imdb_id=None, alternative_series=None, series_anidb_id=None,
|
||||
series_anidb_episode_id=None, **kwargs):
|
||||
super(Episode, self).__init__(name, **kwargs)
|
||||
|
||||
#: Series of the episode
|
||||
|
@ -162,6 +163,9 @@ class Episode(Video):
|
|||
#: Alternative names of the series
|
||||
self.alternative_series = alternative_series or []
|
||||
|
||||
self.series_anidb_episode_id = series_anidb_episode_id
|
||||
self.series_anidb_id = series_anidb_id
|
||||
|
||||
@classmethod
|
||||
def fromguess(cls, name, guess):
|
||||
if guess['type'] != 'episode':
|
||||
|
|
|
@ -64,4 +64,3 @@ subliminal.refiner_manager.register('drone = subliminal_patch.refiners.drone:ref
|
|||
subliminal.refiner_manager.register('filebot = subliminal_patch.refiners.filebot:refine')
|
||||
subliminal.refiner_manager.register('file_info_file = subliminal_patch.refiners.file_info_file:refine')
|
||||
subliminal.refiner_manager.register('symlinks = subliminal_patch.refiners.symlinks:refine')
|
||||
|
||||
|
|
164
custom_libs/subliminal_patch/providers/animetosho.py
Normal file
164
custom_libs/subliminal_patch/providers/animetosho.py
Normal file
|
@ -0,0 +1,164 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import absolute_import
|
||||
|
||||
import logging
|
||||
import lzma
|
||||
|
||||
from guessit import guessit
|
||||
from requests import Session
|
||||
from subzero.language import Language
|
||||
|
||||
|
||||
from subliminal.exceptions import ConfigurationError, ProviderError
|
||||
from subliminal_patch.providers import Provider
|
||||
from subliminal_patch.providers.mixins import ProviderSubtitleArchiveMixin
|
||||
from subliminal_patch.subtitle import Subtitle, guess_matches
|
||||
from subliminal.video import Episode
|
||||
|
||||
try:
|
||||
from lxml import etree
|
||||
except ImportError:
|
||||
try:
|
||||
import xml.etree.cElementTree as etree
|
||||
except ImportError:
|
||||
import xml.etree.ElementTree as etree
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# TODO: Test and Support Other Languages
|
||||
supported_languages = [
|
||||
"eng", # English
|
||||
"ita", # Italian
|
||||
]
|
||||
|
||||
|
||||
class AnimeToshoSubtitle(Subtitle):
|
||||
"""AnimeTosho.org Subtitle."""
|
||||
provider_name = 'animetosho'
|
||||
|
||||
def __init__(self, language, download_link, meta):
|
||||
super(AnimeToshoSubtitle, self).__init__(language, page_link=download_link)
|
||||
self.meta = meta
|
||||
self.download_link = download_link
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
return self.download_link
|
||||
|
||||
def get_matches(self, video):
|
||||
matches = set()
|
||||
matches |= guess_matches(video, guessit(self.meta['filename']))
|
||||
|
||||
# Add these data are explicit extracted from the API and they always have to match otherwise they wouldn't
|
||||
# arrive at this point and would stop on list_subtitles.
|
||||
matches.update(['title', 'series', 'tvdb_id', 'season', 'episode'])
|
||||
|
||||
return matches
|
||||
|
||||
|
||||
class AnimeToshoProvider(Provider, ProviderSubtitleArchiveMixin):
|
||||
"""AnimeTosho.org Provider."""
|
||||
subtitle_class = AnimeToshoSubtitle
|
||||
languages = {Language('por', 'BR')} | {Language(sl) for sl in supported_languages}
|
||||
video_types = Episode
|
||||
|
||||
def __init__(self, search_threshold=None):
|
||||
self.session = None
|
||||
|
||||
if not all([search_threshold]):
|
||||
raise ConfigurationError("Search threshold, Api Client and Version must be specified!")
|
||||
|
||||
self.search_threshold = search_threshold
|
||||
|
||||
def initialize(self):
|
||||
self.session = Session()
|
||||
|
||||
def terminate(self):
|
||||
self.session.close()
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
if not video.series_anidb_episode_id:
|
||||
raise ProviderError("Video does not have an AnimeTosho Episode ID!")
|
||||
|
||||
return [s for s in self._get_series(video.series_anidb_episode_id) if s.language in languages]
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
logger.info('Downloading subtitle %r', subtitle)
|
||||
|
||||
r = self.session.get(subtitle.page_link, timeout=10)
|
||||
r.raise_for_status()
|
||||
|
||||
# Check if the bytes content starts with the xz magic number of the xz archives
|
||||
if not self._is_xz_file(r.content):
|
||||
raise ProviderError('Unidentified archive type')
|
||||
|
||||
subtitle.content = lzma.decompress(r.content)
|
||||
|
||||
return subtitle
|
||||
|
||||
@staticmethod
|
||||
def _is_xz_file(content):
|
||||
return content.startswith(b'\xFD\x37\x7A\x58\x5A\x00')
|
||||
|
||||
def _get_series(self, episode_id):
|
||||
storage_download_url = 'https://animetosho.org/storage/attach/'
|
||||
feed_api_url = 'https://feed.animetosho.org/json'
|
||||
|
||||
subtitles = []
|
||||
|
||||
entries = self._get_series_entries(episode_id)
|
||||
|
||||
for entry in entries:
|
||||
r = self.session.get(
|
||||
feed_api_url,
|
||||
params={
|
||||
'show': 'torrent',
|
||||
'id': entry['id'],
|
||||
},
|
||||
timeout=10
|
||||
)
|
||||
r.raise_for_status()
|
||||
|
||||
for file in r.json()['files']:
|
||||
if 'attachments' not in file:
|
||||
continue
|
||||
|
||||
subtitle_files = list(filter(lambda f: f['type'] == 'subtitle', file['attachments']))
|
||||
|
||||
for subtitle_file in subtitle_files:
|
||||
hex_id = format(subtitle_file['id'], '08x')
|
||||
|
||||
subtitle = self.subtitle_class(
|
||||
Language.fromalpha3b(subtitle_file['info']['lang']),
|
||||
storage_download_url + '{}/{}.xz'.format(hex_id, subtitle_file['id']),
|
||||
meta=file,
|
||||
)
|
||||
|
||||
logger.debug('Found subtitle %r', subtitle)
|
||||
|
||||
subtitles.append(subtitle)
|
||||
|
||||
return subtitles
|
||||
|
||||
def _get_series_entries(self, episode_id):
|
||||
api_url = 'https://feed.animetosho.org/json'
|
||||
|
||||
r = self.session.get(
|
||||
api_url,
|
||||
params={
|
||||
'eid': episode_id,
|
||||
},
|
||||
timeout=10
|
||||
)
|
||||
|
||||
r.raise_for_status()
|
||||
|
||||
j = r.json()
|
||||
|
||||
# Ignore records that are not yet ready or has been abandoned by AnimeTosho.
|
||||
entries = list(filter(lambda t: t['status'] == 'complete', j))[:self.search_threshold]
|
||||
|
||||
# Return the latest entries that have been added as it is used to cutoff via the user configuration threshold
|
||||
entries.sort(key=lambda t: t['timestamp'], reverse=True)
|
||||
|
||||
return entries
|
|
@ -33,6 +33,8 @@ class Video(Video_):
|
|||
edition=None,
|
||||
other=None,
|
||||
info_url=None,
|
||||
series_anidb_id=None,
|
||||
series_anidb_episode_id=None,
|
||||
**kwargs
|
||||
):
|
||||
super(Video, self).__init__(
|
||||
|
@ -57,3 +59,5 @@ class Video(Video_):
|
|||
self.original_path = name
|
||||
self.other = other
|
||||
self.info_url = info_url
|
||||
self.series_anidb_series_id = series_anidb_id,
|
||||
self.series_anidb_episode_id = series_anidb_episode_id,
|
||||
|
|
|
@ -39,14 +39,24 @@ import {
|
|||
} from "../utilities/FormValues";
|
||||
import { SettingsProvider, useSettings } from "../utilities/SettingsProvider";
|
||||
import { useSettingValue } from "../utilities/hooks";
|
||||
import { ProviderInfo, ProviderList } from "./list";
|
||||
import { ProviderInfo } from "./list";
|
||||
|
||||
const ProviderKey = "settings-general-enabled_providers";
|
||||
type SettingsKey =
|
||||
| "settings-general-enabled_providers"
|
||||
| "settings-general-enabled_integrations";
|
||||
|
||||
export const ProviderView: FunctionComponent = () => {
|
||||
interface ProviderViewProps {
|
||||
availableOptions: Readonly<ProviderInfo[]>;
|
||||
settingsKey: SettingsKey;
|
||||
}
|
||||
|
||||
export const ProviderView: FunctionComponent<ProviderViewProps> = ({
|
||||
availableOptions,
|
||||
settingsKey,
|
||||
}) => {
|
||||
const settings = useSettings();
|
||||
const staged = useStagedValues();
|
||||
const providers = useSettingValue<string[]>(ProviderKey);
|
||||
const providers = useSettingValue<string[]>(settingsKey);
|
||||
|
||||
const { update } = useFormActions();
|
||||
|
||||
|
@ -61,17 +71,27 @@ export const ProviderView: FunctionComponent = () => {
|
|||
staged,
|
||||
settings,
|
||||
onChange: update,
|
||||
availableOptions: availableOptions,
|
||||
settingsKey: settingsKey,
|
||||
});
|
||||
}
|
||||
},
|
||||
[modals, providers, settings, staged, update],
|
||||
[
|
||||
modals,
|
||||
providers,
|
||||
settings,
|
||||
staged,
|
||||
update,
|
||||
availableOptions,
|
||||
settingsKey,
|
||||
],
|
||||
);
|
||||
|
||||
const cards = useMemo(() => {
|
||||
if (providers) {
|
||||
return providers
|
||||
.flatMap((v) => {
|
||||
const item = ProviderList.find((inn) => inn.key === v);
|
||||
const item = availableOptions.find((inn) => inn.key === v);
|
||||
if (item) {
|
||||
return item;
|
||||
} else {
|
||||
|
@ -89,7 +109,7 @@ export const ProviderView: FunctionComponent = () => {
|
|||
} else {
|
||||
return [];
|
||||
}
|
||||
}, [providers, select]);
|
||||
}, [providers, select, availableOptions]);
|
||||
|
||||
return (
|
||||
<SimpleGrid cols={3}>
|
||||
|
@ -106,6 +126,8 @@ interface ProviderToolProps {
|
|||
staged: LooseObject;
|
||||
settings: Settings;
|
||||
onChange: (v: LooseObject) => void;
|
||||
availableOptions: Readonly<ProviderInfo[]>;
|
||||
settingsKey: Readonly<SettingsKey>;
|
||||
}
|
||||
|
||||
const SelectItem = forwardRef<
|
||||
|
@ -126,6 +148,8 @@ const ProviderTool: FunctionComponent<ProviderToolProps> = ({
|
|||
staged,
|
||||
settings,
|
||||
onChange,
|
||||
availableOptions,
|
||||
settingsKey,
|
||||
}) => {
|
||||
const modals = useModals();
|
||||
|
||||
|
@ -147,11 +171,11 @@ const ProviderTool: FunctionComponent<ProviderToolProps> = ({
|
|||
if (idx !== -1) {
|
||||
const newProviders = [...enabledProviders];
|
||||
newProviders.splice(idx, 1);
|
||||
onChangeRef.current({ [ProviderKey]: newProviders });
|
||||
onChangeRef.current({ [settingsKey]: newProviders });
|
||||
modals.closeAll();
|
||||
}
|
||||
}
|
||||
}, [payload, enabledProviders, modals]);
|
||||
}, [payload, enabledProviders, modals, settingsKey]);
|
||||
|
||||
const submit = useCallback(
|
||||
(values: FormValues) => {
|
||||
|
@ -161,8 +185,7 @@ const ProviderTool: FunctionComponent<ProviderToolProps> = ({
|
|||
|
||||
// Add this provider if not exist
|
||||
if (enabledProviders.find((v) => v === info.key) === undefined) {
|
||||
const newProviders = [...enabledProviders, info.key];
|
||||
changes[ProviderKey] = newProviders;
|
||||
changes[settingsKey] = [...enabledProviders, info.key];
|
||||
}
|
||||
|
||||
// Apply submit hooks
|
||||
|
@ -172,7 +195,7 @@ const ProviderTool: FunctionComponent<ProviderToolProps> = ({
|
|||
modals.closeAll();
|
||||
}
|
||||
},
|
||||
[info, enabledProviders, modals],
|
||||
[info, enabledProviders, modals, settingsKey],
|
||||
);
|
||||
|
||||
const canSave = info !== null;
|
||||
|
@ -188,18 +211,18 @@ const ProviderTool: FunctionComponent<ProviderToolProps> = ({
|
|||
}
|
||||
}, []);
|
||||
|
||||
const availableOptions = useMemo(
|
||||
const options = useMemo(
|
||||
() =>
|
||||
ProviderList.filter(
|
||||
availableOptions.filter(
|
||||
(v) =>
|
||||
enabledProviders?.find((p) => p === v.key && p !== info?.key) ===
|
||||
undefined,
|
||||
),
|
||||
[info?.key, enabledProviders],
|
||||
[info?.key, enabledProviders, availableOptions],
|
||||
);
|
||||
|
||||
const options = useSelectorOptions(
|
||||
availableOptions,
|
||||
const selectorOptions = useSelectorOptions(
|
||||
options,
|
||||
(v) => v.name ?? capitalize(v.key),
|
||||
);
|
||||
|
||||
|
@ -289,7 +312,7 @@ const ProviderTool: FunctionComponent<ProviderToolProps> = ({
|
|||
placeholder="Click to Select a Provider"
|
||||
itemComponent={SelectItem}
|
||||
disabled={payload !== null}
|
||||
{...options}
|
||||
{...selectorOptions}
|
||||
value={info}
|
||||
onChange={onSelect}
|
||||
></Selector>
|
||||
|
|
|
@ -11,12 +11,16 @@ import {
|
|||
Text,
|
||||
} from "../components";
|
||||
import { ProviderView } from "./components";
|
||||
import { IntegrationList, ProviderList } from "./list";
|
||||
|
||||
const SettingsProvidersView: FunctionComponent = () => {
|
||||
return (
|
||||
<Layout name="Providers">
|
||||
<Section header="Providers">
|
||||
<ProviderView></ProviderView>
|
||||
<ProviderView
|
||||
availableOptions={ProviderList}
|
||||
settingsKey="settings-general-enabled_providers"
|
||||
></ProviderView>
|
||||
</Section>
|
||||
<Section header="Anti-Captcha Options">
|
||||
<Selector
|
||||
|
@ -58,6 +62,12 @@ const SettingsProvidersView: FunctionComponent = () => {
|
|||
<Message>Link to subscribe</Message>
|
||||
</CollapseBox>
|
||||
</Section>
|
||||
<Section header="Integrations">
|
||||
<ProviderView
|
||||
availableOptions={IntegrationList}
|
||||
settingsKey="settings-general-enabled_integrations"
|
||||
></ProviderView>
|
||||
</Section>
|
||||
</Layout>
|
||||
);
|
||||
};
|
||||
|
|
|
@ -64,6 +64,20 @@ export const ProviderList: Readonly<ProviderInfo[]> = [
|
|||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: "animetosho",
|
||||
name: "Anime Tosho",
|
||||
description:
|
||||
"Anime Tosho is a free, completely automated service which mirrors most torrents posted on TokyoTosho's anime category, Nyaa.si's English translated anime category and AniDex's anime category.",
|
||||
inputs: [
|
||||
{
|
||||
type: "text",
|
||||
key: "search_threshold",
|
||||
defaultValue: 6,
|
||||
name: "Search Threshold. Increase if you often cannot find subtitles for your Anime. Note that increasing the value will decrease the performance of the search for each Episode.",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: "argenteam_dump",
|
||||
name: "Argenteam Dump",
|
||||
|
@ -538,3 +552,24 @@ export const ProviderList: Readonly<ProviderInfo[]> = [
|
|||
description: "Chinese Subtitles Provider. Anti-captcha required.",
|
||||
},
|
||||
];
|
||||
|
||||
export const IntegrationList: Readonly<ProviderInfo[]> = [
|
||||
{
|
||||
key: "anidb",
|
||||
name: "AniDB",
|
||||
description:
|
||||
"AniDB is non-profit database of anime information that is freely open to the public.",
|
||||
inputs: [
|
||||
{
|
||||
type: "text",
|
||||
key: "api_client",
|
||||
name: "API Client",
|
||||
},
|
||||
{
|
||||
type: "text",
|
||||
key: "api_client_ver",
|
||||
name: "API Client Version",
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
|
|
@ -7,7 +7,7 @@ import pkg_resources
|
|||
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "../libs/"))
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "../bazarr/"))
|
||||
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "../custom_libs/"))
|
||||
|
||||
def pytest_report_header(config):
|
||||
conflicting_packages = _get_conflicting("libs")
|
||||
|
|
756
tests/subliminal_patch/data/animetosho_episode_response.json
Normal file
756
tests/subliminal_patch/data/animetosho_episode_response.json
Normal file
|
@ -0,0 +1,756 @@
|
|||
[
|
||||
{
|
||||
"id": 608526,
|
||||
"title": "[EMBER] Ore dake Level Up na Ken S01E12 [1080p] [HEVC WEBRip] (Solo Leveling)",
|
||||
"link": "https://animetosho.org/view/ember-ore-dake-level-up-na-ken-s01e12.n1796835",
|
||||
"timestamp": 1711853493,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796835,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/f9670720a5142ec31aa8e3715745f1392e3ffd5b/%5BEMBER%5D%20Solo%20Leveling%20-%2012.torrent",
|
||||
"torrent_name": "[EMBER] Solo Leveling - 12.mkv",
|
||||
"info_hash": "f9670720a5142ec31aa8e3715745f1392e3ffd5b",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:7FTQOIFFCQXMGGVI4NYVORPRHEXD77K3&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&dn=%5BEMBER%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20S01E12%20%5B1080p%5D%20%5BHEVC%20WEBRip%5D%20%28Solo%20Leveling%29",
|
||||
"seeders": 316,
|
||||
"leechers": 24,
|
||||
"torrent_downloaded_count": 1164,
|
||||
"tracker_updated": 1711872554,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/0009490e/%5BEMBER%5D%20Solo%20Leveling%20-%2012.nzb",
|
||||
"total_size": 369572311,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": null,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": null
|
||||
},
|
||||
{
|
||||
"id": 608516,
|
||||
"title": "[Anime Time] Solo Leveling - 12 [1080p][HEVC 10bit x265][AAC][Multi Sub] [Weekly] Ore dake Level Up na Ken",
|
||||
"link": "https://animetosho.org/view/anime-time-solo-leveling-12-1080p-hevc-10bit.n1796824",
|
||||
"timestamp": 1711851382,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796824,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/db16234b7aba70d2d901bde30fb0aa899589da47/%5BAnime%20Time%5D%20Solo%20Leveling%20-%2012%20%5B1080p%5D%5BHEVC%2010bit%20x265%5D%5BAAC%5D%5BMulti%20Sub%5D.torrent",
|
||||
"torrent_name": "[Anime Time] Solo Leveling - 12 [1080p][HEVC 10bit x265][AAC][Multi Sub].mkv",
|
||||
"info_hash": "db16234b7aba70d2d901bde30fb0aa899589da47",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:3MLCGS32XJYNFWIBXXRQ7MFKRGKYTWSH&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Fanidex.moe%3A6969%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce&dn=%5BAnime%20Time%5D%20Solo%20Leveling%20-%2012%20%5B1080p%5D%5BHEVC%2010bit%20x265%5D%5BAAC%5D%5BMulti%20Sub%5D%20%5BWeekly%5D%20Ore%20dake%20Level%20Up%20na%20Ken",
|
||||
"seeders": 85,
|
||||
"leechers": 11,
|
||||
"torrent_downloaded_count": 436,
|
||||
"tracker_updated": 1711892085,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/00094904/%5BAnime%20Time%5D%20Solo%20Leveling%20-%2012%20%5B1080p%5D%5BHEVC%2010bit%20x265%5D%5BAAC%5D%5BMulti%20Sub%5D.nzb",
|
||||
"total_size": 588022366,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": null,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "http://animetime.cc/"
|
||||
},
|
||||
{
|
||||
"id": 608491,
|
||||
"title": "Solo Leveling - 12 (WEB 4K | 2160p AV1 AAC).mkv",
|
||||
"link": "https://animetosho.org/view/solo-leveling-12-web-4k-2160p-av1-aac-mkv.d595164",
|
||||
"timestamp": 1711845852,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": null,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": 595164,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/cfc631026a1837ef70ff6993aa9c1b1304e0d75b/Solo%20Leveling%20-%2012%20%28WEB%204K%20AV1%20AAC%29.torrent",
|
||||
"torrent_name": "Solo Leveling - 12 (WEB 4K AV1 AAC).mkv",
|
||||
"info_hash": "cfc631026a1837ef70ff6993aa9c1b1304e0d75b",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:Z7DDCATKDA3664H7NGJ2VHA3CMCOBV23&tr=http%3A%2F%2Fanidex.moe%3A6969%2Fannounce&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Ftracker.anirena.com%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker-udp.anirena.com%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&dn=Solo%20Leveling%20-%2012%20%28WEB%204K%20%7C%202160p%20AV1%20AAC%29.mkv",
|
||||
"seeders": 11,
|
||||
"leechers": 0,
|
||||
"torrent_downloaded_count": 118,
|
||||
"tracker_updated": 1712027991,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/000948eb/Solo%20Leveling%20-%2012%20%28WEB%204K%20AV1%20AAC%29.nzb",
|
||||
"total_size": 586875995,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": null,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": null
|
||||
},
|
||||
{
|
||||
"id": 608439,
|
||||
"title": "[SanKyuu] Ore dake Level Up na Ken (Solo Leveling) - 12 [WEB 1080p][AV1][AAC E-AC3][Multi-Sub]",
|
||||
"link": "https://animetosho.org/view/sankyuu-ore-dake-level-up-na-ken-solo.n1796722",
|
||||
"timestamp": 1711836670,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796722,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/fb8193f9da38b06a444e2a50966c3fbefdb7dcde/%5BSanKyuu%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20%28Solo%20Leveling%29%20-%2012%20%5BWEB%201080p%20AV1%20AAC%20E-AC3%5D%20%5B325A372A%5D.torrent",
|
||||
"torrent_name": "[SanKyuu] Ore dake Level Up na Ken (Solo Leveling) - 12 [WEB 1080p AV1 AAC E-AC3] [325A372A].mkv",
|
||||
"info_hash": "fb8193f9da38b06a444e2a50966c3fbefdb7dcde",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:7OAZH6O2HCYGURCOFJIJM3B7X363PXG6&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Fanidex.moe%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.anirena.com%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker-udp.anirena.com%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&dn=%5BSanKyuu%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20%28Solo%20Leveling%29%20-%2012%20%5BWEB%201080p%5D%5BAV1%5D%5BAAC%20E-AC3%5D%5BMulti-Sub%5D",
|
||||
"seeders": 51,
|
||||
"leechers": 2,
|
||||
"torrent_downloaded_count": 522,
|
||||
"tracker_updated": 1711939563,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/000948b7/%5BSanKyuu%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20%28Solo%20Leveling%29%20-%2012%20%5BWEB%201080p%20AV1%20AAC%20E-AC3%5D%20%5B325A372A%5D.nzb",
|
||||
"total_size": 477160034,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": null,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": null
|
||||
},
|
||||
{
|
||||
"id": 608407,
|
||||
"title": "[NeoLX] Solo Leveling - S01E12 [END][1080p x264 10bits AAC][Multiple Subtitles].mkv",
|
||||
"link": "https://animetosho.org/view/neolx-solo-leveling-s01e12-end-1080p-x264-10bits.1859288",
|
||||
"timestamp": 1711831500,
|
||||
"status": "complete",
|
||||
"tosho_id": 1859288,
|
||||
"nyaa_id": null,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/4a053ad27c1ca38db68b77f1a81860948bec93cb/%5BNeoLX%5D%20Solo%20Leveling%20-%20S01E12%20%5BEND%5D%5B1080p%20x264%2010bits%20AAC%5D%5BMultiple%20Subtitles%5D.torrent",
|
||||
"torrent_name": "[NeoLX] Solo Leveling - S01E12 [END][1080p x264 10bits AAC][Multiple Subtitles].mkv",
|
||||
"info_hash": "4a053ad27c1ca38db68b77f1a81860948bec93cb",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:JICTVUT4DSRY3NULO7Y2QGDASSF6ZE6L&tr=http%3A%2F%2Fanidex.moe%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.anirena.com%3A80%2Fannounce&tr=http%3A%2F%2Ftracker.acgnx.se%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.tiny-vps.com%3A6969%2Fannounce&dn=%5BNeoLX%5D%20Solo%20Leveling%20-%20S01E12%20%5BEND%5D%5B1080p%20x264%2010bits%20AAC%5D%5BMultiple%20Subtitles%5D.mkv",
|
||||
"seeders": 22,
|
||||
"leechers": 0,
|
||||
"torrent_downloaded_count": 444,
|
||||
"tracker_updated": 1712027991,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/00094897/%5BNeoLX%5D%20Solo%20Leveling%20-%20S01E12%20%5BEND%5D%5B1080p%20x264%2010bits%20AAC%5D%5BMultiple%20Subtitles%5D.nzb",
|
||||
"total_size": 1775949490,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": null,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": null
|
||||
},
|
||||
{
|
||||
"id": 608385,
|
||||
"title": "[CameEsp] Solo Leveling - 12 [1080p][ESP-ENG][mkv].mkv",
|
||||
"link": "https://animetosho.org/view/cameesp-solo-leveling-12-1080p-esp-eng-mkv-mkv.1859281",
|
||||
"timestamp": 1711829220,
|
||||
"status": "skipped",
|
||||
"tosho_id": 1859281,
|
||||
"nyaa_id": 1796635,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/7e683310c0a03a8d94ad4a1aaac0b7f97d98e70e/%5BCameEsp%5D%20Solo%20Leveling%20-%2012%20%5B1080p%5D%5BESP-ENG%5D%5Bmkv%5D.torrent",
|
||||
"torrent_name": "",
|
||||
"info_hash": "7e683310c0a03a8d94ad4a1aaac0b7f97d98e70e",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:PZUDGEGAUA5I3FFNJINKVQFX7F6ZRZYO&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Fanidex.moe%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.anirena.com%3A80%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&dn=%5BCameEsp%5D%20Solo%20Leveling%20-%2012%20%5B1080p%5D%5BESP-ENG%5D%5Bmkv%5D.mkv",
|
||||
"seeders": 178,
|
||||
"leechers": 21,
|
||||
"torrent_downloaded_count": 541,
|
||||
"tracker_updated": null,
|
||||
"nzb_url": null,
|
||||
"total_size": 1448914325,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": null,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://linkr.bio/CAME_CameEsp"
|
||||
},
|
||||
{
|
||||
"id": 608386,
|
||||
"title": "[CameEsp] Solo Leveling - 12 [720p][ESP-ENG][mkv].mkv",
|
||||
"link": "https://animetosho.org/view/cameesp-solo-leveling-12-720p-esp-eng-mkv-mkv.1859282",
|
||||
"timestamp": 1711829220,
|
||||
"status": "skipped",
|
||||
"tosho_id": 1859282,
|
||||
"nyaa_id": 1796636,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/3b35bdf9880489b38f7a318cca8fe02ff31e430c/%5BCameEsp%5D%20Solo%20Leveling%20-%2012%20%5B720p%5D%5BESP-ENG%5D%5Bmkv%5D.torrent",
|
||||
"torrent_name": "",
|
||||
"info_hash": "3b35bdf9880489b38f7a318cca8fe02ff31e430c",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:HM2336MIASE3HD32GGGMVD7AF7ZR4QYM&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Fanidex.moe%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.anirena.com%3A80%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&dn=%5BCameEsp%5D%20Solo%20Leveling%20-%2012%20%5B720p%5D%5BESP-ENG%5D%5Bmkv%5D.mkv",
|
||||
"seeders": 35,
|
||||
"leechers": 10,
|
||||
"torrent_downloaded_count": 160,
|
||||
"tracker_updated": null,
|
||||
"nzb_url": null,
|
||||
"total_size": 737663624,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": null,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://linkr.bio/CAME_CameEsp"
|
||||
},
|
||||
{
|
||||
"id": 608370,
|
||||
"title": "[Valenciano] Ore dake Level Up na Ken - 12 [1080p][AV1 10bit][AAC][Multi-Sub] (Weekly).mkv",
|
||||
"link": "https://animetosho.org/view/valenciano-ore-dake-level-up-na-ken-12.n1796530",
|
||||
"timestamp": 1711826614,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796530,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/f89a9ffa23f5fc3321f3e2c476dbccbf0435fc98/%5BValenciano%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20-%2012%20%5B1080p%5D%5BAV1%2010bit%5D%5BAAC%5D%5BMulti-Sub%5D%20%28Weekly%29.torrent",
|
||||
"torrent_name": "[Valenciano] Ore dake Level Up na Ken - 12 [1080p][AV1 10bit][AAC][Multi-Sub] (Weekly).mkv",
|
||||
"info_hash": "f89a9ffa23f5fc3321f3e2c476dbccbf0435fc98",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:7CNJ76RD6X6DGIPT4LCHNW6MX4CDL7EY&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&dn=%5BValenciano%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20-%2012%20%5B1080p%5D%5BAV1%2010bit%5D%5BAAC%5D%5BMulti-Sub%5D%20%28Weekly%29.mkv",
|
||||
"seeders": 22,
|
||||
"leechers": 2,
|
||||
"torrent_downloaded_count": 240,
|
||||
"tracker_updated": 1711940503,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/00094872/%5BValenciano%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20-%2012%20%5B1080p%5D%5BAV1%2010bit%5D%5BAAC%5D%5BMulti-Sub%5D%20%28Weekly%29.nzb",
|
||||
"total_size": 427930434,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": null,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://discord.gg/83dRFDFDp7"
|
||||
},
|
||||
{
|
||||
"id": 608368,
|
||||
"title": "[Erai-raws] Ore dake Level Up na Ken - 12 [1080p][HEVC][Multiple Subtitle] [ENG][POR-BR][SPA-LA][SPA][ARA][FRE][GER][ITA][RUS]",
|
||||
"link": "https://animetosho.org/view/erai-raws-ore-dake-level-up-na-ken.n1796524",
|
||||
"timestamp": 1711825169,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796524,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/8009ee0e9b20732f44df9bf5eaef926df0814d68/%5BErai-raws%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20-%2012%20%5B1080p%5D%5BHEVC%5D%5BMultiple%20Subtitle%5D%5BB46F650F%5D.torrent",
|
||||
"torrent_name": "[Erai-raws] Ore dake Level Up na Ken - 12 [1080p][HEVC][Multiple Subtitle][B46F650F].mkv",
|
||||
"info_hash": "8009ee0e9b20732f44df9bf5eaef926df0814d68",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:QAE64DU3EBZS6RG7TP26V34SNXYICTLI&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=http%3A%2F%2Fopen.acgnxtracker.com%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&dn=%5BErai-raws%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20-%2012%20%5B1080p%5D%5BHEVC%5D%5BMultiple%20Subtitle%5D%20%5BENG%5D%5BPOR-BR%5D%5BSPA-LA%5D%5BSPA%5D%5BARA%5D%5BFRE%5D%5BGER%5D%5BITA%5D%5BRUS%5D",
|
||||
"seeders": 298,
|
||||
"leechers": 12,
|
||||
"torrent_downloaded_count": 2398,
|
||||
"tracker_updated": 1711933623,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/00094870/%5BErai-raws%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20-%2012%20%5B1080p%5D%5BHEVC%5D%5BMultiple%20Subtitle%5D%5BB46F650F%5D.nzb",
|
||||
"total_size": 1073028408,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": 3399105,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://www.erai-raws.info/anime-list/ore-dake-level-up-na-ken/"
|
||||
},
|
||||
{
|
||||
"id": 608349,
|
||||
"title": "[DKB] Solo Leveling - S01E12 [1080p][END][HEVC x265 10bit][Multi-Subs][weekly]",
|
||||
"link": "https://animetosho.org/view/dkb-solo-leveling-s01e12-1080p-end-hevc-x265.n1796502",
|
||||
"timestamp": 1711823055,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796502,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/d89e1a3b415c0b569481b06dbbe58d936f2e6f0a/%5BDKB%5D%20Solo%20Leveling%20-%20S01E12%20%5B1080p%5D%5BEND%5D%5BHEVC%20x265%2010bit%5D%5BMulti-Subs%5D.torrent",
|
||||
"torrent_name": "[DKB] Solo Leveling - S01E12 [1080p][END][HEVC x265 10bit][Multi-Subs].mkv",
|
||||
"info_hash": "d89e1a3b415c0b569481b06dbbe58d936f2e6f0a",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:3CPBUO2BLQFVNFEBWBW3XZMNSNXS43YK&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Fanidex.moe%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.internetwarriors.net%3A1337%2Fannounce&dn=%5BDKB%5D%20Solo%20Leveling%20-%20S01E12%20%5B1080p%5D%5BEND%5D%5BHEVC%20x265%2010bit%5D%5BMulti-Subs%5D%5Bweekly%5D",
|
||||
"seeders": 153,
|
||||
"leechers": 9,
|
||||
"torrent_downloaded_count": 1010,
|
||||
"tracker_updated": 1711922054,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/0009485d/%5BDKB%5D%20Solo%20Leveling%20-%20S01E12%20%5B1080p%5D%5BEND%5D%5BHEVC%20x265%2010bit%5D%5BMulti-Subs%5D.nzb",
|
||||
"total_size": 665460303,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": 3399329,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://discord.gg/ZBQCQ7u"
|
||||
},
|
||||
{
|
||||
"id": 608347,
|
||||
"title": "[ASW] Solo Leveling - 12 [1080p HEVC x265 10Bit][AAC]",
|
||||
"link": "https://animetosho.org/view/asw-solo-leveling-12-1080p-hevc-x265-10bit-aac.n1796496",
|
||||
"timestamp": 1711822239,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796496,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/78d41db42271123d520f971b71a67d970cfdb64c/%5BASW%5D%20Solo%20Leveling%20-%2012%20%5B1080p%20HEVC%5D%5BE1A01A3E%5D.torrent",
|
||||
"torrent_name": "[ASW] Solo Leveling - 12 [1080p HEVC][E1A01A3E].mkv",
|
||||
"info_hash": "78d41db42271123d520f971b71a67d970cfdb64c",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:PDKB3NBCOEJD2UQPS4NXDJT5S4GP3NSM&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&dn=%5BASW%5D%20Solo%20Leveling%20-%2012%20%5B1080p%20HEVC%20x265%2010Bit%5D%5BAAC%5D",
|
||||
"seeders": 689,
|
||||
"leechers": 212,
|
||||
"torrent_downloaded_count": 1960,
|
||||
"tracker_updated": null,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/0009485b/%5BASW%5D%20Solo%20Leveling%20-%2012%20%5B1080p%20HEVC%5D%5BE1A01A3E%5D.nzb",
|
||||
"total_size": 455351405,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": 3399037,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://discord.gg/6XnYdWP"
|
||||
},
|
||||
{
|
||||
"id": 608346,
|
||||
"title": "[Tenrai-Sensei] Solo Leveling - S01E12 - Arise [Web][1080p][HEVC 10bit x265] Ore dake Level Up na Ken",
|
||||
"link": "https://animetosho.org/view/tenrai-sensei-solo-leveling-s01e12-arise-web-1080p.n1796495",
|
||||
"timestamp": 1711822029,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796495,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/8b22acf6c18e9ac56f0af00a6061918712d8d992/Solo%20Leveling%20-%20S01E12%20-%20Arise.torrent",
|
||||
"torrent_name": "Solo Leveling - S01E12 - Arise.mkv",
|
||||
"info_hash": "8b22acf6c18e9ac56f0af00a6061918712d8d992",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:RMRKZ5WBR2NMK3YK6AFGAYMRQ4JNRWMS&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce&tr=udp%3A%2F%2Fopentracker.i2p.rocks%3A6969%2Fannounce&dn=%5BTenrai-Sensei%5D%20Solo%20Leveling%20-%20S01E12%20-%20Arise%20%5BWeb%5D%5B1080p%5D%5BHEVC%2010bit%20x265%5D%20Ore%20dake%20Level%20Up%20na%20Ken",
|
||||
"seeders": 1000000000,
|
||||
"leechers": 1000000000,
|
||||
"torrent_downloaded_count": 3028,
|
||||
"tracker_updated": null,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/0009485a/Solo%20Leveling%20-%20S01E12%20-%20Arise.nzb",
|
||||
"total_size": 574082022,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": 3399753,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://discord.gg/WucPeE5ume"
|
||||
},
|
||||
{
|
||||
"id": 608339,
|
||||
"title": "[Judas] Ore dake Level Up na Ken (Solo Leveling) - S01E12 [1080p][HEVC x265 10bit][Multi-Subs] (Weekly)",
|
||||
"link": "https://animetosho.org/view/judas-ore-dake-level-up-na-ken-solo.n1796483",
|
||||
"timestamp": 1711821551,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796483,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/aa0f1690f5bff99891883dbbde61e4c59920aa5e/%5BJudas%5D%20Solo%20Leveling%20-%20S01E12.torrent",
|
||||
"torrent_name": "[Judas] Solo Leveling - S01E12.mkv",
|
||||
"info_hash": "aa0f1690f5bff99891883dbbde61e4c59920aa5e",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:VIHRNEHVX74ZREMIHW554YPEYWMSBKS6&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&dn=%5BJudas%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20%28Solo%20Leveling%29%20-%20S01E12%20%5B1080p%5D%5BHEVC%20x265%2010bit%5D%5BMulti-Subs%5D%20%28Weekly%29",
|
||||
"seeders": 422,
|
||||
"leechers": 20,
|
||||
"torrent_downloaded_count": 3434,
|
||||
"tracker_updated": 1711874024,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/00094853/%5BJudas%5D%20Solo%20Leveling%20-%20S01E12.nzb",
|
||||
"total_size": 485334036,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": 3399248,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://discord.gg/vbJ7RTn"
|
||||
},
|
||||
{
|
||||
"id": 608338,
|
||||
"title": "[Raze] Solo Leveling (Ore dake Level Up na Ken) - 12 x265 10bit 1080p 143.8561fps.mkv",
|
||||
"link": "https://animetosho.org/view/raze-solo-leveling-ore-dake-level-up-na.n1796482",
|
||||
"timestamp": 1711821474,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796482,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/bcebcb468c1a2557404afa18f4948cb4fded5c17/%5BRaze%5D%20Solo%20Leveling%20%28Ore%20dake%20Level%20Up%20na%20Ken%29%20-%2012%20x265%2010bit%201080p%20143.8561fps.torrent",
|
||||
"torrent_name": "[Raze] Solo Leveling (Ore dake Level Up na Ken) - 12 x265 10bit 1080p 143.8561fps.mkv",
|
||||
"info_hash": "bcebcb468c1a2557404afa18f4948cb4fded5c17",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:XTV4WRUMDISVOQCK7IMPJFEMWT662XAX&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&dn=%5BRaze%5D%20Solo%20Leveling%20%28Ore%20dake%20Level%20Up%20na%20Ken%29%20-%2012%20x265%2010bit%201080p%20143.8561fps.mkv",
|
||||
"seeders": 15,
|
||||
"leechers": 1,
|
||||
"torrent_downloaded_count": 216,
|
||||
"tracker_updated": 1711932770,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/00094852/%5BRaze%5D%20Solo%20Leveling%20%28Ore%20dake%20Level%20Up%20na%20Ken%29%20-%2012%20x265%2010bit%201080p%20143.8561fps.nzb",
|
||||
"total_size": 987255128,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": null,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://discord.gg/72ZKssY"
|
||||
},
|
||||
{
|
||||
"id": 608324,
|
||||
"title": "Ore dake Level Up na Ken - S01E12 - 720p WEB x264 -NanDesuKa (CR).mkv",
|
||||
"link": "https://animetosho.org/view/ore-dake-level-up-na-ken-s01e12-720p.n1796469",
|
||||
"timestamp": 1711817371,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796469,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/514d25bbb699f0cd50ba82663f4d9972e42aec7e/Ore%20dake%20Level%20Up%20na%20Ken%20-%20S01E12%20-%20720p%20WEB%20x264%20-NanDesuKa%20%28CR%29.torrent",
|
||||
"torrent_name": "Ore dake Level Up na Ken - S01E12 - 720p WEB x264 -NanDesuKa (CR).mkv",
|
||||
"info_hash": "514d25bbb699f0cd50ba82663f4d9972e42aec7e",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:KFGSLO5WTHYM2UF2QJTD6TMZOLSCV3D6&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.internetwarriors.net%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce&dn=Ore%20dake%20Level%20Up%20na%20Ken%20-%20S01E12%20-%20720p%20WEB%20x264%20-NanDesuKa%20%28CR%29.mkv",
|
||||
"seeders": 24,
|
||||
"leechers": 1,
|
||||
"torrent_downloaded_count": 147,
|
||||
"tracker_updated": 1711941873,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/00094844/Ore%20dake%20Level%20Up%20na%20Ken%20-%20S01E12%20-%20720p%20WEB%20x264%20-NanDesuKa%20%28CR%29.nzb",
|
||||
"total_size": 733563952,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": null,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": null
|
||||
},
|
||||
{
|
||||
"id": 608323,
|
||||
"title": "Ore dake Level Up na Ken - S01E12 - 1080p WEB x264 -NanDesuKa (CR).mkv",
|
||||
"link": "https://animetosho.org/view/ore-dake-level-up-na-ken-s01e12-1080p.n1796468",
|
||||
"timestamp": 1711817278,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796468,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/2368c8599cb9dfcd15c4133c195a026c0c061452/Ore%20dake%20Level%20Up%20na%20Ken%20-%20S01E12%20-%201080p%20WEB%20x264%20-NanDesuKa%20%28CR%29.torrent",
|
||||
"torrent_name": "Ore dake Level Up na Ken - S01E12 - 1080p WEB x264 -NanDesuKa (CR).mkv",
|
||||
"info_hash": "2368c8599cb9dfcd15c4133c195a026c0c061452",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:ENUMQWM4XHP42FOECM6BSWQCNQGAMFCS&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.internetwarriors.net%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce&dn=Ore%20dake%20Level%20Up%20na%20Ken%20-%20S01E12%20-%201080p%20WEB%20x264%20-NanDesuKa%20%28CR%29.mkv",
|
||||
"seeders": 43,
|
||||
"leechers": 1,
|
||||
"torrent_downloaded_count": 325,
|
||||
"tracker_updated": 1711950739,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/00094843/Ore%20dake%20Level%20Up%20na%20Ken%20-%20S01E12%20-%201080p%20WEB%20x264%20-NanDesuKa%20%28CR%29.nzb",
|
||||
"total_size": 1444814636,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": null,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": null
|
||||
},
|
||||
{
|
||||
"id": 608322,
|
||||
"title": "Ore dake Level Up na Ken - S01E12 - 480p WEB x264 -NanDesuKa (CR).mkv",
|
||||
"link": "https://animetosho.org/view/ore-dake-level-up-na-ken-s01e12-480p.n1796467",
|
||||
"timestamp": 1711817275,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796467,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/65c34046223f78409badf5138035708875dae046/Ore%20dake%20Level%20Up%20na%20Ken%20-%20S01E12%20-%20480p%20WEB%20x264%20-NanDesuKa%20%28CR%29.torrent",
|
||||
"torrent_name": "Ore dake Level Up na Ken - S01E12 - 480p WEB x264 -NanDesuKa (CR).mkv",
|
||||
"info_hash": "65c34046223f78409badf5138035708875dae046",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:MXBUARRCH54EBG5N6UJYANLQRB25VYCG&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.internetwarriors.net%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce&dn=Ore%20dake%20Level%20Up%20na%20Ken%20-%20S01E12%20-%20480p%20WEB%20x264%20-NanDesuKa%20%28CR%29.mkv",
|
||||
"seeders": 2,
|
||||
"leechers": 1,
|
||||
"torrent_downloaded_count": 47,
|
||||
"tracker_updated": 1711939543,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/00094842/Ore%20dake%20Level%20Up%20na%20Ken%20-%20S01E12%20-%20480p%20WEB%20x264%20-NanDesuKa%20%28CR%29.nzb",
|
||||
"total_size": 379888841,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": null,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": null
|
||||
},
|
||||
{
|
||||
"id": 608321,
|
||||
"title": "[ToonsHub] Solo Leveling E12 Arise 2160p B-Global WEB-DL x264 (Multi-Subs)",
|
||||
"link": "https://animetosho.org/view/toonshub-solo-leveling-e12-arise-2160p-b-global.n1796464",
|
||||
"timestamp": 1711816495,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796464,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/953e7663ac91c946ee46efd1f00c544a81ac5210/Solo%20Leveling%20E12%20Arise%202160p%20B-Global%20WEB-DL%20x264%20%5BJapanese%5D%20%28AAC%202.0%29%20MSubs_ToonsHub_.torrent",
|
||||
"torrent_name": "Solo Leveling E12 Arise 2160p B-Global WEB-DL x264 [Japanese] (AAC 2.0) MSubs_ToonsHub_.mkv",
|
||||
"info_hash": "953e7663ac91c946ee46efd1f00c544a81ac5210",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:SU7HMY5MSHEUN3SG57I7ADCUJKA2YUQQ&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Fanidex.moe%3A6969%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce&dn=%5BToonsHub%5D%20Solo%20Leveling%20E12%20Arise%202160p%20B-Global%20WEB-DL%20x264%20%28Multi-Subs%29",
|
||||
"seeders": 283,
|
||||
"leechers": 6,
|
||||
"torrent_downloaded_count": 2103,
|
||||
"tracker_updated": 1711940653,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/00094841/Solo%20Leveling%20E12%20Arise%202160p%20B-Global%20WEB-DL%20x264%20%5BJapanese%5D%20%28AAC%202.0%29%20MSubs_ToonsHub_.nzb",
|
||||
"total_size": 1725930387,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": null,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://discord.gg/2mPFKykW4j"
|
||||
},
|
||||
{
|
||||
"id": 608320,
|
||||
"title": "Solo Leveling S01E12 Arise 1080p CR WEB-DL AAC2.0 H 264-VARYG (Ore dake Level Up na Ken, Multi-Subs)",
|
||||
"link": "https://animetosho.org/view/solo-leveling-s01e12-arise-1080p-cr-web-dl.n1796463",
|
||||
"timestamp": 1711816461,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796463,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/e8c25942e297bfd38515d785ca82e0dac7a09688/Solo.Leveling.S01E12.Arise.1080p.CR.WEB-DL.AAC2.0.H.264-VARYG.torrent",
|
||||
"torrent_name": "Solo.Leveling.S01E12.Arise.1080p.CR.WEB-DL.AAC2.0.H.264-VARYG.mkv",
|
||||
"info_hash": "e8c25942e297bfd38515d785ca82e0dac7a09688",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:5DBFSQXCS675HBIV26C4VAXA3LD2BFUI&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&dn=Solo%20Leveling%20S01E12%20Arise%201080p%20CR%20WEB-DL%20AAC2.0%20H%20264-VARYG%20%28Ore%20dake%20Level%20Up%20na%20Ken%2C%20Multi-Subs%29",
|
||||
"seeders": 476,
|
||||
"leechers": 78,
|
||||
"torrent_downloaded_count": 2233,
|
||||
"tracker_updated": 1711948863,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/00094840/Solo.Leveling.S01E12.Arise.1080p.CR.WEB-DL.AAC2.0.H.264-VARYG.nzb",
|
||||
"total_size": 1447070929,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": null,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://myanimelist.net/anime/52299/"
|
||||
},
|
||||
{
|
||||
"id": 608319,
|
||||
"title": "[ToonsHub] Solo Leveling E12 Arise 1080p B-Global WEB-DL x264 (Multi-Subs)",
|
||||
"link": "https://animetosho.org/view/toonshub-solo-leveling-e12-arise-1080p-b-global.n1796462",
|
||||
"timestamp": 1711816458,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796462,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/adf123922973e4c0f7979ab6d3874d2e2e0e5207/Solo%20Leveling%20E12%20Arise%201080p%20B-Global%20WEB-DL%20x264%20%5BJapanese%5D%20%28AAC%202.0%29%20MSubs_ToonsHub_.torrent",
|
||||
"torrent_name": "Solo Leveling E12 Arise 1080p B-Global WEB-DL x264 [Japanese] (AAC 2.0) MSubs_ToonsHub_.mkv",
|
||||
"info_hash": "adf123922973e4c0f7979ab6d3874d2e2e0e5207",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:VXYSHERJOPSMB54XTK3NHB2NFYXA4UQH&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Fanidex.moe%3A6969%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce&dn=%5BToonsHub%5D%20Solo%20Leveling%20E12%20Arise%201080p%20B-Global%20WEB-DL%20x264%20%28Multi-Subs%29",
|
||||
"seeders": 112,
|
||||
"leechers": 2,
|
||||
"torrent_downloaded_count": 955,
|
||||
"tracker_updated": 1711941514,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/0009483f/Solo%20Leveling%20E12%20Arise%201080p%20B-Global%20WEB-DL%20x264%20%5BJapanese%5D%20%28AAC%202.0%29%20MSubs_ToonsHub_.nzb",
|
||||
"total_size": 424813220,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": null,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://discord.gg/2mPFKykW4j"
|
||||
},
|
||||
{
|
||||
"id": 608318,
|
||||
"title": "[Erai-raws] Ore dake Level Up na Ken - 12 [480p][Multiple Subtitle] [ENG][POR-BR][SPA-LA][SPA][ARA][FRE][GER][ITA][RUS]",
|
||||
"link": "https://animetosho.org/view/erai-raws-ore-dake-level-up-na-ken.n1796461",
|
||||
"timestamp": 1711816354,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796461,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/5b4a6ec6c71d1033f336bdf027fc3f56dbb6544b/%5BErai-raws%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20-%2012%20%5B480p%5D%5BMultiple%20Subtitle%5D%5B348538A9%5D.torrent",
|
||||
"torrent_name": "[Erai-raws] Ore dake Level Up na Ken - 12 [480p][Multiple Subtitle][348538A9].mkv",
|
||||
"info_hash": "5b4a6ec6c71d1033f336bdf027fc3f56dbb6544b",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:LNFG5RWHDUIDH4ZWXXYCP7B7K3N3MVCL&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=http%3A%2F%2Fopen.acgnxtracker.com%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&dn=%5BErai-raws%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20-%2012%20%5B480p%5D%5BMultiple%20Subtitle%5D%20%5BENG%5D%5BPOR-BR%5D%5BSPA-LA%5D%5BSPA%5D%5BARA%5D%5BFRE%5D%5BGER%5D%5BITA%5D%5BRUS%5D",
|
||||
"seeders": 57,
|
||||
"leechers": 1,
|
||||
"torrent_downloaded_count": 593,
|
||||
"tracker_updated": 1711935570,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/0009483e/%5BErai-raws%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20-%2012%20%5B480p%5D%5BMultiple%20Subtitle%5D%5B348538A9%5D.nzb",
|
||||
"total_size": 390242548,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": 3399156,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://www.erai-raws.info/anime-list/ore-dake-level-up-na-ken/"
|
||||
},
|
||||
{
|
||||
"id": 608317,
|
||||
"title": "[Erai-raws] Ore dake Level Up na Ken - 12 [720p][Multiple Subtitle] [ENG][POR-BR][SPA-LA][SPA][ARA][FRE][GER][ITA][RUS]",
|
||||
"link": "https://animetosho.org/view/erai-raws-ore-dake-level-up-na-ken.n1796459",
|
||||
"timestamp": 1711816335,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796459,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/371911c245694044bb84dfa1cb162c5922e46090/%5BErai-raws%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20-%2012%20%5B720p%5D%5BMultiple%20Subtitle%5D%5BFF79133E%5D.torrent",
|
||||
"torrent_name": "[Erai-raws] Ore dake Level Up na Ken - 12 [720p][Multiple Subtitle][FF79133E].mkv",
|
||||
"info_hash": "371911c245694044bb84dfa1cb162c5922e46090",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:G4MRDQSFNFAEJO4E36Q4WFRMLEROIYEQ&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=http%3A%2F%2Fopen.acgnxtracker.com%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&dn=%5BErai-raws%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20-%2012%20%5B720p%5D%5BMultiple%20Subtitle%5D%20%5BENG%5D%5BPOR-BR%5D%5BSPA-LA%5D%5BSPA%5D%5BARA%5D%5BFRE%5D%5BGER%5D%5BITA%5D%5BRUS%5D",
|
||||
"seeders": 244,
|
||||
"leechers": 8,
|
||||
"torrent_downloaded_count": 1819,
|
||||
"tracker_updated": 1711891219,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/0009483d/%5BErai-raws%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20-%2012%20%5B720p%5D%5BMultiple%20Subtitle%5D%5BFF79133E%5D.nzb",
|
||||
"total_size": 743917601,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": 3399115,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://www.erai-raws.info/anime-list/ore-dake-level-up-na-ken/"
|
||||
},
|
||||
{
|
||||
"id": 608316,
|
||||
"title": "[Erai-raws] Ore dake Level Up na Ken - 12 [1080p][Multiple Subtitle] [ENG][POR-BR][SPA-LA][SPA][ARA][FRE][GER][ITA][RUS]",
|
||||
"link": "https://animetosho.org/view/erai-raws-ore-dake-level-up-na-ken.n1796456",
|
||||
"timestamp": 1711816309,
|
||||
"status": "complete",
|
||||
"tosho_id": null,
|
||||
"nyaa_id": 1796456,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/927f32f78956475287b80b7a3b8069d775b3bb74/%5BErai-raws%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20-%2012%20%5B1080p%5D%5BMultiple%20Subtitle%5D%5BC8116259%5D.torrent",
|
||||
"torrent_name": "[Erai-raws] Ore dake Level Up na Ken - 12 [1080p][Multiple Subtitle][C8116259].mkv",
|
||||
"info_hash": "927f32f78956475287b80b7a3b8069d775b3bb74",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:SJ7TF54JKZDVFB5YBN5DXADJ2523HO3U&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=http%3A%2F%2Fopen.acgnxtracker.com%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&dn=%5BErai-raws%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20-%2012%20%5B1080p%5D%5BMultiple%20Subtitle%5D%20%5BENG%5D%5BPOR-BR%5D%5BSPA-LA%5D%5BSPA%5D%5BARA%5D%5BFRE%5D%5BGER%5D%5BITA%5D%5BRUS%5D",
|
||||
"seeders": 1054,
|
||||
"leechers": 30,
|
||||
"torrent_downloaded_count": 7259,
|
||||
"tracker_updated": 1711904421,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/0009483c/%5BErai-raws%5D%20Ore%20dake%20Level%20Up%20na%20Ken%20-%2012%20%5B1080p%5D%5BMultiple%20Subtitle%5D%5BC8116259%5D.nzb",
|
||||
"total_size": 1455168235,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": 3399072,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://www.erai-raws.info/anime-list/ore-dake-level-up-na-ken/"
|
||||
},
|
||||
{
|
||||
"id": 608315,
|
||||
"title": "[SubsPlease] Solo Leveling - 12 (1080p) [5B47BF7E].mkv",
|
||||
"link": "https://animetosho.org/view/subsplease-solo-leveling-12-1080p-5b47bf7e-mkv.1859208",
|
||||
"timestamp": 1711816291,
|
||||
"status": "complete",
|
||||
"tosho_id": 1859208,
|
||||
"nyaa_id": 1796455,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/ac03972f83b13773c7d6c0387969d3873c98fe6e/%5BSubsPlease%5D%20Solo%20Leveling%20-%2012%20%281080p%29%20%5B5B47BF7E%5D.torrent",
|
||||
"torrent_name": "[SubsPlease] Solo Leveling - 12 (1080p) [5B47BF7E].mkv",
|
||||
"info_hash": "ac03972f83b13773c7d6c0387969d3873c98fe6e",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:VQBZOL4DWE3XHR6WYA4HS2OTQ46JR7TO&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2F9.rarbg.to%3A2710%2Fannounce&tr=udp%3A%2F%2F9.rarbg.me%3A2710%2Fannounce&dn=%5BSubsPlease%5D%20Solo%20Leveling%20-%2012%20%281080p%29%20%5B5B47BF7E%5D.mkv",
|
||||
"seeders": 4800,
|
||||
"leechers": 126,
|
||||
"torrent_downloaded_count": 32750,
|
||||
"tracker_updated": 1711902497,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/0009483b/%5BSubsPlease%5D%20Solo%20Leveling%20-%2012%20%281080p%29%20%5B5B47BF7E%5D.nzb",
|
||||
"total_size": 1448782755,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": 3398902,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://subsplease.org"
|
||||
},
|
||||
{
|
||||
"id": 608314,
|
||||
"title": "[SubsPlease] Solo Leveling - 12 (720p) [83538700].mkv",
|
||||
"link": "https://animetosho.org/view/subsplease-solo-leveling-12-720p-83538700-mkv.1859207",
|
||||
"timestamp": 1711816270,
|
||||
"status": "complete",
|
||||
"tosho_id": 1859207,
|
||||
"nyaa_id": 1796454,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/5a65737737ea4a6c24c2ef17fb87906f250f2b2b/%5BSubsPlease%5D%20Solo%20Leveling%20-%2012%20%28720p%29%20%5B83538700%5D.torrent",
|
||||
"torrent_name": "[SubsPlease] Solo Leveling - 12 (720p) [83538700].mkv",
|
||||
"info_hash": "5a65737737ea4a6c24c2ef17fb87906f250f2b2b",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:LJSXG5ZX5JFGYJGC54L7XB4QN4SQ6KZL&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2F9.rarbg.to%3A2710%2Fannounce&tr=udp%3A%2F%2F9.rarbg.me%3A2710%2Fannounce&dn=%5BSubsPlease%5D%20Solo%20Leveling%20-%2012%20%28720p%29%20%5B83538700%5D.mkv",
|
||||
"seeders": 1155,
|
||||
"leechers": 51,
|
||||
"torrent_downloaded_count": 8614,
|
||||
"tracker_updated": 1711883436,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/0009483a/%5BSubsPlease%5D%20Solo%20Leveling%20-%2012%20%28720p%29%20%5B83538700%5D.nzb",
|
||||
"total_size": 737532022,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": 3398956,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://subsplease.org"
|
||||
},
|
||||
{
|
||||
"id": 608313,
|
||||
"title": "[SubsPlease] Solo Leveling - 12 (480p) [9FBA731B].mkv",
|
||||
"link": "https://animetosho.org/view/subsplease-solo-leveling-12-480p-9fba731b-mkv.1859206",
|
||||
"timestamp": 1711816267,
|
||||
"status": "complete",
|
||||
"tosho_id": 1859206,
|
||||
"nyaa_id": 1796453,
|
||||
"nyaa_subdom": null,
|
||||
"anidex_id": null,
|
||||
"torrent_url": "https://animetosho.org/storage/torrent/071cfac21f433b07e81e43f33f9a869098af4f64/%5BSubsPlease%5D%20Solo%20Leveling%20-%2012%20%28480p%29%20%5B9FBA731B%5D.torrent",
|
||||
"torrent_name": "[SubsPlease] Solo Leveling - 12 (480p) [9FBA731B].mkv",
|
||||
"info_hash": "071cfac21f433b07e81e43f33f9a869098af4f64",
|
||||
"info_hash_v2": null,
|
||||
"magnet_uri": "magnet:?xt=urn:btih:A4OPVQQ7IM5QP2A6IPZT7GUGSCMK6T3E&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2F9.rarbg.to%3A2710%2Fannounce&tr=udp%3A%2F%2F9.rarbg.me%3A2710%2Fannounce&dn=%5BSubsPlease%5D%20Solo%20Leveling%20-%2012%20%28480p%29%20%5B9FBA731B%5D.mkv",
|
||||
"seeders": 385,
|
||||
"leechers": 143,
|
||||
"torrent_downloaded_count": 2467,
|
||||
"tracker_updated": null,
|
||||
"nzb_url": "https://animetosho.org/storage/nzbs/00094839/%5BSubsPlease%5D%20Solo%20Leveling%20-%2012%20%28480p%29%20%5B9FBA731B%5D.nzb",
|
||||
"total_size": 383857166,
|
||||
"num_files": 1,
|
||||
"anidb_aid": 17495,
|
||||
"anidb_eid": 277518,
|
||||
"anidb_fid": 3399016,
|
||||
"article_url": null,
|
||||
"article_title": null,
|
||||
"website_url": "https://subsplease.org"
|
||||
}
|
||||
]
|
232
tests/subliminal_patch/data/animetosho_series_response.json
Normal file
232
tests/subliminal_patch/data/animetosho_series_response.json
Normal file
File diff suppressed because one or more lines are too long
59
tests/subliminal_patch/test_animetosho.py
Normal file
59
tests/subliminal_patch/test_animetosho.py
Normal file
|
@ -0,0 +1,59 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import pytest
|
||||
|
||||
from subliminal_patch.core import Episode
|
||||
from subliminal_patch.providers.animetosho import AnimeToshoProvider
|
||||
from subzero.language import Language
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def anime_episodes():
|
||||
return {
|
||||
"frieren_s01e01": Episode(
|
||||
"Frieren - Beyond Journey's End S01E28 1080p WEB x264 AAC -Tsundere-Raws (CR) (Sousou no Frieren).mkv",
|
||||
"Frieren: Beyond Journey's End",
|
||||
1,
|
||||
28,
|
||||
source="Web",
|
||||
series_anidb_id=17617,
|
||||
series_anidb_episode_id=271418,
|
||||
series_tvdb_id=424536,
|
||||
series_imdb_id="tt22248376",
|
||||
release_group="Tsundere-Raws",
|
||||
resolution="1080p",
|
||||
video_codec="H.264",
|
||||
),
|
||||
"solo_leveling_s01e10": Episode(
|
||||
"[New-raws] Ore Dake Level Up na Ken - 12 END [1080p] [AMZN].mkv",
|
||||
"Solo Leveling",
|
||||
1,
|
||||
12,
|
||||
source="Web",
|
||||
series_anidb_id=17495,
|
||||
series_anidb_episode_id=277518,
|
||||
series_tvdb_id=389597,
|
||||
series_imdb_id="tt21209876",
|
||||
release_group="New-raws",
|
||||
resolution="1080p",
|
||||
video_codec="H.264",
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
def test_list_subtitles(anime_episodes, requests_mock, data):
|
||||
language = Language("eng")
|
||||
item = anime_episodes["solo_leveling_s01e10"]
|
||||
|
||||
with open(os.path.join(data, 'animetosho_episode_response.json'), "rb") as f:
|
||||
requests_mock.get(' https://feed.animetosho.org/json?eid=277518', content=f.read())
|
||||
|
||||
with open(os.path.join(data, 'animetosho_series_response.json'), "rb") as f:
|
||||
response = f.read()
|
||||
requests_mock.get('https://feed.animetosho.org/json?show=torrent&id=608516', content=response)
|
||||
requests_mock.get('https://feed.animetosho.org/json?show=torrent&id=608526', content=response)
|
||||
|
||||
with AnimeToshoProvider(2) as provider:
|
||||
subtitles = provider.list_subtitles(item, languages={language})
|
||||
|
||||
assert len(subtitles) == 2
|
Loading…
Reference in a new issue