public override NonBloatSeasonData GetSeasonData(MALSeason ms, TempThread tempThread, string year, object storedData) { List <AnimeVibeData> data = (List <AnimeVibeData>)storedData; NonBloatSeasonData setData = new NonBloatSeasonData() { dubEpisodes = new List <string>(), subEpisodes = new List <string>() }; foreach (var subData in data) { if (subData.title.Contains(ms.japName)) { bool isDub = subData.isDub; if (isDub && !setData.DubExists) { for (int i = 1; i <= subData.maxEp; i++) { setData.dubEpisodes.Add(subData.href + i); } } else if (!setData.SubExists) { for (int i = 1; i <= subData.maxEp; i++) { setData.subEpisodes.Add(subData.href + i); } } } } return(setData); }
public override NonBloatSeasonData GetSeasonData(MALSeason ms, TempThread tempThread, string year, object storedData) { List <RealShiroItem> data = (List <RealShiroItem>)storedData; NonBloatSeasonData setData = new NonBloatSeasonData() { dubEpisodes = new List <string>(), subEpisodes = new List <string>() }; if (Token == "") { error("NO SHIRO TOKEN! AT " + nameof(GetSeasonData)); return(setData); } string[] extraData = new string[2]; foreach (var subData in data) { if ((setData.DubExists && subData.isDub) || (setData.SubExists && !subData.isDub)) { continue; } bool synoExist = false; if (subData.synonyms != null && ms.synonyms != null && ms.synonyms.Count > 0 && subData.synonyms.Length > 0) { synoExist = ms.synonyms.Where(t => subData.synonyms.Contains(t)).ToArray().Length > 0; } if (ToDown(ms.engName) == ToDown(subData.name) || synoExist) { List <string> episodes = new List <string>(); string slug = subData.slug; for (int i = 1; i <= subData.episodes; i++) { episodes.Add($"https://tapi.{shiroBase._siteUrl.Replace("https://", "")}/anime-episode/slug/{slug}-episode-{i}?token={Token}"); } if (subData.isDub) { setData.dubEpisodes = episodes; } else { setData.subEpisodes = episodes; } extraData[subData.isDub ? 1 : 0] = slug; } } setData.extraData = extraData; return(setData); }
public override NonBloatSeasonData GetSeasonData(MALSeason ms, TempThread tempThread, string year, object storedData) { List <string> data = (List <string>)storedData; NonBloatSeasonData setData = new NonBloatSeasonData() { dubEpisodes = new List <string>(), subEpisodes = new List <string>() }; foreach (var subData in data) { } return(setData); }
public override NonBloatSeasonData GetSeasonData(MALSeason ms, TempThread tempThread, string year, object storedData) { YuSearchItems[] data = (YuSearchItems[])storedData; NonBloatSeasonData setData = new NonBloatSeasonData() { dubEpisodes = new List <string>(), subEpisodes = new List <string>() }; if (baseProvider == null) { return(setData); } int index = 0; foreach (var subData in data) { string toDownTitle = ToDown(subData.fields.title); if (index < 2 || ToDown(ms.name) == toDownTitle || ToDown(ms.engName) == toDownTitle || ToDown(ms.japName) == toDownTitle) // CAN BE REMOVED, BUT MIGHT BE BLOCKED DUE TO MANY REQUESTS { var info = baseProvider.GetYuInfo(subData.pk, subData.fields.slug); if (!GetThredActive(tempThread)) { return(setData); } if (info.HasValue) { var infoVal = info.Value; if (infoVal.malId == ms.MalId) { for (int i = 0; i < infoVal.subbedEps; i++) { setData.subEpisodes.Add($"https://yugenani.me/watch/{subData.pk}/{subData.fields.slug}/{(i + 1)}/"); } for (int i = 0; i < infoVal.dubbedEps; i++) { setData.dubEpisodes.Add($"https://yugenani.me/watch/{subData.pk}/{subData.fields.slug}-dub/{(i + 1)}/"); } return(setData); } } } index++; } return(setData); }
public override NonBloatSeasonData GetSeasonData(MALSeason ms, TempThread tempThread, string year, object storedData) { AnimeFeverHelper.AnimeFeverSearchInfo data = (AnimeFeverHelper.AnimeFeverSearchInfo)storedData; NonBloatSeasonData setData = new NonBloatSeasonData() { dubEpisodes = new List <string>(), subEpisodes = new List <string>() }; foreach (var subData in data.data) { if (subData.name == ms.engName || subData.alt_name == ms.engName) { try { var mainInfo = helper.GetAnimeFeverEpisodeInfo(subData.id, subData.slug); if (mainInfo == null) { continue; } var _mainInfo = mainInfo.Value; var emtyList = new string[_mainInfo.data.Count].ToList(); var referers = new string[_mainInfo.data.Count]; int index = 0; setData.dubEpisodes = emtyList; setData.subEpisodes = emtyList; foreach (var epInfo in _mainInfo.data) { var langs = epInfo.video_meta.audio_languages; if (langs.Contains("eng")) { setData.dubEpisodes[index] = (epInfo.id.ToString()); } if (langs.Contains("jap")) { setData.subEpisodes[index] = (epInfo.id.ToString()); } referers[index] = $"https://www.animefever.tv/series/{subData.id}-{subData.slug}/episode/{epInfo.id}-episode-{index+1}-{epInfo.slug}"; print("ANIMEFEVER REFERER: " + referers[index]); index++; } setData.extraData = referers; } catch (Exception) { } } } return(setData); }
public override NonBloatSeasonData GetSeasonData(MALSeason ms, TempThread tempThread, string year, object storedData) { if (storedData == null) { return(new NonBloatSeasonData()); } List <NineAnimeDataSearch> data = (List <NineAnimeDataSearch>)storedData; if (data.Count == 0) { return(new NonBloatSeasonData()); } print("START:::: " + data.FString()); NonBloatSeasonData setData = new NonBloatSeasonData() { dubEpisodes = new List <string>(), subEpisodes = new List <string>() }; foreach (var subData in data) { if (subData.names.Split(' ').Contains(ms.japName)) { bool isDub = subData.isDub; if (isDub && !setData.dubExists) { for (int i = 1; i <= subData.maxEp; i++) { setData.dubEpisodes.Add(subData.href); } } else if (!setData.subExists) { for (int i = 1; i <= subData.maxEp; i++) { setData.subEpisodes.Add(subData.href); } } } } return(setData); }
public override void FishMainLink(string year, TempThread tempThred, MALData malData) { print("FF:::: <>>"); print("NDNDNDNND;;; " + Name + "|" + year + "|" + malData.engName); object storedData = NullMetadata ? null : StoreData(year, tempThred, malData); if (storedData == null && !NullMetadata) { return; } for (int i = 0; i < ActiveMovie.title.MALData.seasonData.Count; i++) { for (int q = 0; q < ActiveMovie.title.MALData.seasonData[i].seasons.Count; q++) { try { MALSeason ms; lock (_lock) { ms = ActiveMovie.title.MALData.seasonData[i].seasons[q]; ms.season = i; ms.part = q + 1; } NonBloatSeasonData data = GetSeasonData(ms, tempThred, year, storedData); data.name = Name; lock (_lock) { ms = ActiveMovie.title.MALData.seasonData[i].seasons[q]; if (ms.nonBloatSeasonData == null) { ms.nonBloatSeasonData = new List <NonBloatSeasonData>(); } ms.nonBloatSeasonData.Add(data); ActiveMovie.title.MALData.seasonData[i].seasons[q] = ms; } } catch (Exception _ex) { print("FATAL EX IN Fish " + Name + " | " + _ex); } } } }
public override void FishMainLink(string year, TempThread tempThred, MALData malData) { object storedData = StoreData(year, tempThred, malData); if (storedData == null) { return; } for (int i = 0; i < activeMovie.title.MALData.seasonData.Count; i++) { for (int q = 0; q < activeMovie.title.MALData.seasonData[i].seasons.Count; q++) { try { MALSeason ms; lock (_lock) { ms = activeMovie.title.MALData.seasonData[i].seasons[q]; } NonBloatSeasonData data = GetSeasonData(ms, tempThred, year, storedData); data.name = Name; lock (_lock) { ms = activeMovie.title.MALData.seasonData[i].seasons[q]; if (ms.nonBloatSeasonData == null) { ms.nonBloatSeasonData = new List <NonBloatSeasonData>(); } ms.nonBloatSeasonData.Add(data); activeMovie.title.MALData.seasonData[i].seasons[q] = ms; } } catch (Exception _ex) { print("FATAL EX IN Fish " + Name + " | " + _ex); } } } }
public override NonBloatSeasonData GetSeasonData(MALSeason ms, TempThread tempThread, string year, object storedData) { try { List <FourAnimeQuickSearchItem> data = (List <FourAnimeQuickSearchItem>)storedData; NonBloatSeasonData setData = new NonBloatSeasonData() { dubEpisodes = new List <string>(), subEpisodes = new List <string>() }; foreach (var subData in data) { var _title = ToLowerAndReplace(subData.title); if ((ms.Year == -1 || (subData.year == ms.Year.ToString())) && ( _title == ToLowerAndReplace(ms.engName) || _title == ToLowerAndReplace(ms.name) || ms.synonyms.Select(t => ToLowerAndReplace(t)).Contains(_title))) // CHECK { string url = subData.href; string d = DownloadString(url, tempThread); if (!d.IsClean()) { continue; } bool isSub = d.Contains("/language/subbed"); // There is some dubbed anime if ((isSub && !setData.SubExists) || (!isSub && !setData.DubExists)) // To prevent duplicates, first result if often right { try { var doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(d); var episodes = doc.QuerySelectorAll("ul.episodes.range.active > li > a"); List <FourAnimeEpisode> localEpisodes = new List <FourAnimeEpisode>(); foreach (var f in episodes) // This is to really make sure no offset happends, if for some reason some episode is misson { int.TryParse(f.InnerText, out int ep); if (ep > 0) { localEpisodes.Add(new FourAnimeEpisode() { episode = ep, href = f.GetAttributeValue("href", "") }); } } if (localEpisodes.Count == 0) { continue; } int maxEp = localEpisodes.OrderBy(t => - t.episode).First().episode; var list = new string[maxEp].ToList(); foreach (var item in localEpisodes) { list[item.episode - 1] = item.href; } if (isSub) { setData.subEpisodes = list; } else { setData.dubEpisodes = list; } } catch (Exception _ex) { error(_ex); } } } } return(setData); } catch (Exception _ex) { error("Fatal Ex in 4Anime Getseason: " + _ex); return(new NonBloatSeasonData()); } }
public override NonBloatSeasonData GetSeasonData(MALSeason ms, TempThread tempThread, string year, object storedData) { NonBloatSeasonData setData = new NonBloatSeasonData() { dubEpisodes = new List <string>(), subEpisodes = new List <string>() }; try { string name = ms.name; var list = (List <TheMovieTitle>)storedData; string compare = ToDown(name, true, ""); var end = list.Where(t => (t.href.Contains("/anime-info/")) && ToDown(t.name, true, "") == compare).OrderBy(t => { FuzzyMatch(t.name, name, out int score); return(-score); }).ToArray(); bool subExists = false; bool dubExists = false; string subUrl = ""; string dubUrl = ""; for (int k = 0; k < end.Length; k++) { if (!subExists && !end[k].isDub) { subExists = true; subUrl = end[k].href; } if (!dubExists && end[k].isDub) { dubExists = true; dubUrl = end[k].href; } } try { int maxSubbedEp = subExists ? TheMovieHelper.GetMaxEp(DownloadString(subUrl), subUrl) : 0; if (!GetThredActive(tempThread)) { return(setData); } ; // COPY UPDATE PROGRESS int maxDubbedEp = dubExists ? TheMovieHelper.GetMaxEp(DownloadString(dubUrl), dubUrl) : 0; if (!GetThredActive(tempThread)) { return(setData); } ; // COPY UPDATE PROGRESS for (int i = 0; i < maxDubbedEp; i++) { setData.dubEpisodes.Add(dubUrl); } for (int i = 0; i < maxSubbedEp; i++) { setData.subEpisodes.Add(subUrl); } return(setData); } catch (Exception _ex) { print("ANIME ERROROROROOR.::" + _ex); return(setData); } } catch (Exception) { return(setData); } }