private void Init() { this.Alpha = 0f; effectRecycler = new ManagedRecycler <JudgementEffect>(CreateEffect); effectHolder = CreateChild("effect-holder", 0); { effectHolder.Size = Vector2.zero; effectRecycler.Precook(6); } hitBarSprite = CreateChild <UguiSprite>("bar", 1); { hitBarSprite.Anchor = AnchorType.MiddleStretch; hitBarSprite.SetOffsetHorizontal(0f); hitBarSprite.SpriteName = "glow-bar"; hitBarSprite.Y = 0f; hitBarSprite.ImageType = Image.Type.Sliced; hitBarSprite.Alpha = 0.5f; } holdAni = new Anime(); holdAni.AnimateFloat(a => hitBarSprite.Alpha = a) .AddTime(0f, () => hitBarSprite.Alpha) .AddTime(0.1f, 1f) .Build(); releaseAni = new Anime(); releaseAni.AnimateFloat(a => hitBarSprite.Alpha = a) .AddTime(0f, () => hitBarSprite.Alpha) .AddTime(0.1f, 0.5f) .Build(); }
private void Init() { canvasGroup = RawObject.AddComponent <CanvasGroup>(); notificationList = CreateChild <NotificationList>("notification-list"); { notificationList.Anchor = AnchorType.Fill; notificationList.Offset = Offset.Zero; notificationList.Scope = NotificationScope.Temporary; notificationList.OnDismiss += OnDismissed; } showAni = new Anime(); showAni.AddEvent(0f, () => Active = true); showAni.AnimateFloat(a => canvasGroup.alpha = a) .AddTime(0f, () => canvasGroup.alpha) .AddTime(0.25f, 1f) .Build(); hideAni = new Anime(); hideAni.AnimateFloat(a => canvasGroup.alpha = a) .AddTime(0f, () => canvasGroup.alpha) .AddTime(0.25f, 1f) .Build(); hideAni.AddEvent(hideAni.Duration, () => Active = false); OnEnableInited(); }
/// <summary> /// Instantiate the anime list /// </summary> private AnimeList(IAnime client) { _entries = new List <Anime>(); _queue = new List <Anime>(); _client = client; _filePath = ResolveFilePath(client); }
private void Init() { fpsDisplayer = CreateChild <FpsDisplayer>("fps-displayer", 100); { fpsDisplayer.Anchor = AnchorType.BottomRight; fpsDisplayer.Pivot = PivotType.BottomRight; fpsDisplayer.Position = new Vector3(-DisplayerPadding, DisplayerPadding); fpsDisplayer.Size = new Vector2(170f, 30f); } messageDisplayer = CreateChild <NotificationDisplayer>("message-displayer", 1); { messageDisplayer.Anchor = AnchorType.TopRight; messageDisplayer.Pivot = PivotType.Right; messageDisplayer.Position = new Vector3(-DisplayerPadding, -DisplayerPadding); messageDisplayer.Size = new Vector2(320f, 0f); } menubarShowAni = new Anime(); menubarShowAni.AnimateFloat(y => messageDisplayer.Y = y) .AddTime(0f, () => messageDisplayer.Y) .AddTime(0.25f, () => - DisplayerPadding - MenuBarHeight) .Build(); menubarHideAni = new Anime(); menubarHideAni.AnimateFloat(y => messageDisplayer.Y = y) .AddTime(0f, () => messageDisplayer.Y) .AddTime(0.25f, () => - DisplayerPadding) .Build(); OnEnableInited(); }
/// <summary> /// Load the list and initialize it. /// </summary> /// <param name="client">The API client to use</param> /// <returns></returns> public static AnimeList Load(IAnime client) { AnimeList list = null; try { var f = new BinaryFormatter(); var fs = new FileStream(ResolveFilePath(client), FileMode.Open, FileAccess.Read, FileShare.Read); var t = (AnimeList)f.Deserialize(fs); fs.Close(); t._client = client; list = t; Task.Run(() => t.Sync()); return(list); } catch (IOException) { list = new AnimeList(client); list.Sync().Wait(); return(list); } catch (ApiRequestException) { Debug.WriteLine("Anime List sync failed."); if (list == null) { throw; } return(list); } }
private void Init(IRootMain rootMain) { Dependencies.Cache(this); infoContainer = CreateChild <InfoContainer>("info", 0); { infoContainer.Anchor = AnchorType.BottomStretch; infoContainer.Pivot = PivotType.Top; infoContainer.RawWidth = 0f; infoContainer.Height = Mathf.Min(infoContainer.FullDetailHeight, rootMain.Resolution.y - InfoDetailedYDiff); infoContainer.Y = InfoBriefY; } versionContainer = CreateChild <VersionContainer>("version", 1); { versionContainer.Anchor = AnchorType.TopStretch; versionContainer.Pivot = PivotType.Top; versionContainer.RawWidth = 0; versionContainer.Y = 0f; versionContainer.Height = 160f; } infoDetailAni = new Anime(); infoDetailAni.AnimateFloat(y => infoContainer.Y = y) .AddTime(0f, () => infoContainer.Y) .AddTime(0.25f, infoContainer.Height) .Build(); infoBriefAni = new Anime(); infoBriefAni.AnimateFloat(y => infoContainer.Y = y) .AddTime(0f, () => infoContainer.Y) .AddTime(0.25f, InfoBriefY) .Build(); OnEnableInited(); }
public static string Calculate(IAnime anime, DateTime today) { return CalculateWithAiringDates(anime, today) ?? CalculateWithYear(anime, today) ?? Unknown; }
private void Init() { glowSprite = CreateChild <UguiSprite>("glow"); { glowSprite.Size = new Vector2(BaseSize + GlowSizeOffset, BaseSize + GlowSizeOffset); glowSprite.SpriteName = "glow-square-32"; glowSprite.ImageType = Image.Type.Sliced; glowSprite.Color = ColorPreset.SecondaryFocus; glowSprite.RotationZ = 45f; glowSprite.IsRaycastTarget = false; } fillSprite = CreateChild <UguiSprite>("fill"); { fillSprite.Anchor = AnchorType.Fill; fillSprite.Offset = Offset.Zero; fillSprite.Color = ColorPreset.SecondaryFocus; fillSprite.RotationZ = 45f; fillSprite.IsRaycastTarget = false; fillSprite.AddEffect(new AdditiveShaderEffect()); } showAni = new Anime(); showAni.AnimateFloat((alpha) => glowSprite.Alpha = alpha) .AddTime(0f, 0f) .AddTime(0.05f, 0f, EaseType.QuadEaseOut) .AddTime(0.15f, 1f) .Build(); showAni.AnimateFloat((alpha) => fillSprite.Alpha = alpha) .AddTime(0f, 0.85f, EaseType.QuadEaseOut) .AddTime(0.15f, 0.25f) .Build(); showAni.AnimateVector2((size) => fillSprite.Size = size) .AddTime(0f, new Vector2(BaseSize + ShowShrinkSize, BaseSize + ShowShrinkSize), EaseType.CubicEaseOut) .AddTime(0.15f, new Vector2(BaseSize, BaseSize)) .Build(); showAni.AddEvent(showAni.Duration, () => repeatAni.PlayFromStart()); hideAni = new Anime(); hideAni.AddEvent(0f, () => repeatAni.Pause()); hideAni.AnimateFloat((alpha) => glowSprite.Alpha = alpha) .AddTime(0f, () => glowSprite.Alpha) .AddTime(0.25f, 0f) .Build(); hideAni.AnimateFloat((alpha) => fillSprite.Alpha = alpha) .AddTime(0f, () => fillSprite.Alpha) .AddTime(0.25f, 0f) .Build(); hideAni.AddEvent(hideAni.Duration, () => Recycler.Return(this)); repeatAni = new Anime() { WrapMode = WrapModeType.Loop, }; repeatAni.AnimateFloat((alpha) => fillSprite.Alpha = alpha) .AddTime(0f, 0.25f, EaseType.QuadEaseOut) .AddTime(0.4f, 0.75f, EaseType.QuadEaseIn) .AddTime(0.8f, 0.25f) .Build(); }
private void Init() { startupAnime = new Anime(); startupAnime.AnimateColor((color) => this.Glow.Color = color) .AddTime(0f, new Color(1f, 1f, 1f, 0f), EaseType.QuadEaseOut) .AddTime(0.1f, new Color(1f, 1f, 1f, 1f), EaseType.QuadEaseIn) .AddTime(1f, new Color(0f, 0f, 0f, 1f)) .Build(); startupAnime.AnimateColor((color) => this.Outer.Color = color) .AddTime(0f, new Color(1f, 1f, 1f, 0f), EaseType.QuadEaseOut) .AddTime(0.1f, new Color(1f, 1f, 1f, 1f), EaseType.QuadEaseIn) .AddTime(1f, new Color(0.25f, 0.25f, 0.25f, 1f)) .Build(); startupAnime.AnimateColor((color) => this.Inner.Color = color) .AddTime(0.1f, new Color(1f, 1f, 1f, 0f), EaseType.QuadEaseIn) .AddTime(1f, new Color(0.25f, 0.25f, 0.25f, 1f)) .Build(); startupAnime.AnimateColor((color) => this.Title.Color = color) .AddTime(0.5f, new Color(), EaseType.QuartEaseIn) .AddTime(1f, new Color(0.75f, 0.75f, 0.75f, 1f)) .Build(); startupAnime.AddEvent(startupAnime.Duration, () => OnStartup?.Invoke()); breatheAnime = new Anime(); breatheAnime.WrapMode = WrapModeType.Loop; breatheAnime.AnimateColor((color) => this.Glow.Color = color) .AddTime(0f, Color.black, EaseType.SineEaseOut) .AddTime(1.1f, Color.gray, EaseType.SineEaseIn) .AddTime(2.2f, Color.black) .Build(); breatheAnime.AnimateColor((color) => this.Title.Color = color) .AddTime(0f, new Color(0.75f, 0.75f, 0.75f, 1f), EaseType.SineEaseOut) .AddTime(1.1f, Color.white, EaseType.SineEaseIn) .AddTime(2.2f, new Color(0.75f, 0.75f, 0.75f, 1f)) .Build(); endAnime = new Anime(); endAnime.AnimateColor((color) => this.Glow.Color = color) .AddTime(0f, () => this.Glow.Color, EaseType.QuartEaseIn) .AddTime(1.5f, Color.white) .Build(); endAnime.AnimateColor((color) => this.Outer.Color = color) .AddTime(0f, () => this.Outer.Color, EaseType.QuartEaseIn) .AddTime(1.5f, Color.white) .Build(); endAnime.AnimateColor((color) => this.Inner.Color = color) .AddTime(0f, () => this.Inner.Color, EaseType.QuartEaseIn) .AddTime(1.5f, Color.white) .Build(); endAnime.AnimateColor((color) => this.Title.Color = color) .AddTime(0f, () => this.Title.Color, EaseType.QuartEaseIn) .AddTime(1.5f, Color.white) .Build(); endAnime.AnimateVector3((scale) => this.Scale = scale) .AddTime(0f, Vector3.one, EaseType.SineEaseOut) .AddTime(1.5f, new Vector3(1.1f, 1.1f, 1.1f)) .Build(); endAnime.AddEvent(endAnime.Duration, () => OnEnd?.Invoke()); }
private void Init() { Anchor = AnchorType.Fill; RawSize = Vector2.zero; // Create animations. ShowAnime = CreateShowAnime(Dependencies); HideAnime = CreateHideAnime(Dependencies); }
private void Init() { Alpha = 0.0625f; loaderIcon = CreateChild <LoaderIcon>("loader"); { loaderIcon.Position = Vector3.zero; loaderIcon.Size = new Vector2(32f, 32f); } tabDisplay = CreateChild <RankingTabDisplay>("tab"); { tabDisplay.Anchor = AnchorType.TopStretch; tabDisplay.Pivot = PivotType.Top; tabDisplay.RawWidth = 0f; tabDisplay.Height = 0f; tabDisplay.Y = 0f; } column = CreateChild <RankingColumn>("column"); { column.Anchor = AnchorType.TopStretch; column.Pivot = PivotType.Top; column.Height = 36f; column.Y = -52f; column.SetOffsetHorizontal(0f); } rankingList = CreateChild <RankingList>("list"); { rankingList.Anchor = AnchorType.Fill; rankingList.Offset = new Offset(0f, 88f, 0f, 0f); rankingList.Column = column; } loadShowAni = new Anime(); loadShowAni.AnimateFloat((alpha) => loaderIcon.Alpha = alpha) .AddTime(0f, () => loaderIcon.Alpha) .AddTime(0.35f, 1f) .Build(); loadShowAni.AnimateFloat((alpha) => rankingList.Alpha = alpha) .AddTime(0f, () => rankingList.Alpha) .AddTime(0.35f, 0f) .Build(); loadHideAni = new Anime(); loadHideAni.AnimateFloat((alpha) => loaderIcon.Alpha = alpha) .AddTime(0f, () => loaderIcon.Alpha) .AddTime(0.35f, 0f) .Build(); loadHideAni.AnimateFloat((alpha) => rankingList.Alpha = alpha) .AddTime(0f, () => rankingList.Alpha) .AddTime(0.35f, 1f) .Build(); OnEnableInited(); }
private void Init() { var blur = CreateChild <BlurDisplay>("blur", 0); { blur.Anchor = AnchorType.Fill; blur.Offset = Offset.Zero; var dark = blur.CreateChild <UguiSprite>("dark", 0); { dark.Anchor = AnchorType.Fill; dark.Offset = Offset.Zero; dark.Color = new Color(0f, 0f, 0f, 0.75f); } } infoDisplayer = CreateChild <InfoDisplayer>("info", 1); { } loadIndicator = CreateChild <LoadIndicator>("load", 2); { loadIndicator.Position = new Vector3(0f, -260f); loadIndicator.Size = new Vector2(88f, 88f); } float showDur = Mathf.Max(infoDisplayer.ShowAniDuration, loadIndicator.ShowAniDuration); componentShowAni = new Anime(); componentShowAni.AddEvent(0f, () => { infoDisplayer.Show(); loadIndicator.Show(); }); componentShowAni.AddEvent(showDur + model.MinimumLoadTime, OnShowAniEnd); float hideDur = Mathf.Max(infoDisplayer.HideAniDuration, loadIndicator.HideAniDuration); componentHideAni = new Anime(); componentHideAni.AddEvent(0f, () => { infoDisplayer.Hide(); loadIndicator.Hide(); }); componentHideAni.AnimateFloat(v => model.MusicController.SetFade(v)) .AddTime(0f, 0.5f, EaseType.QuadEaseOut) .AddTime(hideDur, 0f) .Build(); componentHideAni.AddEvent(hideDur, () => { model.MusicController.SetFade(1f); OnHideAniEnd(); }); OnEnableInited(); }
public void LoadImageForAnime(IAnime anime) { if (anime == null) { throw new ArgumentNullException ("anime"); } if (string.IsNullOrWhiteSpace (anime.ImageUrl)) { return; } var path = Files.ImagePath(anime); using (var web = new WebClient()) { web.DownloadFile (anime.ImageUrl, path); anime.ImagePath = path; } }
public string ConvertAnimeToJson(IAnime anime) { var jsonAnime = _factory.CreateJsonAnime(); _mappingEngine.Map(anime, jsonAnime); jsonAnime.OtherTitles["japanese"].AddRange(anime.JapaneseTitles); jsonAnime.OtherTitles["english"].AddRange(anime.EnglishTitles); jsonAnime.OtherTitles["synonyms"].AddRange(anime.SynonymousTitles); var jsonString = JsonConvert.SerializeObject(jsonAnime); return jsonString; }
private void GetRelated(HtmlDocument doc, IAnime anime) { var relatedNodes = doc.DocumentNode.SelectSingleNode("//table[@class='anime_detail_related_anime']"); if (relatedNodes != null) { foreach (var node in relatedNodes.ChildNodes) { ParseTd(node, anime); } } }
/// <summary> /// Removes the specified anime instance from update service. /// </summary> public static void RemoveAnime(IAnime anime) { var animes = Instance.animes; for (int i = 0; i < animes.Count; i++) { if (animes[i] == anime) { animes[i] = null; break; } } }
public void TearDown() { _notAired= null; _airing1= null; _airing2= null; _aired= null; _unknown1 = null; _unknown2 = null; _notAiredByYear= null; _airedByYear= null; }
public string ConvertAnimeToJson(IAnime anime) { var jsonAnime = _factory.CreateJsonAnime(); _mappingEngine.Map(anime, jsonAnime); jsonAnime.OtherTitles["japanese"].AddRange(anime.JapaneseTitles); jsonAnime.OtherTitles["english"].AddRange(anime.EnglishTitles); jsonAnime.OtherTitles["synonyms"].AddRange(anime.SynonymousTitles); var jsonString = JsonConvert.SerializeObject(jsonAnime); return(jsonString); }
private void ParseTd(HtmlNode node, IAnime anime) { switch (node.ChildNodes[0].InnerText.Replace(":", "").ToLower()) { case "adaptation": anime.MangaAdaptation.AddRange(MapRelated(node)); break; case "prequel": anime.Prequels.AddRange(MapRelated(node)); break; case "sequel": anime.Sequels.AddRange(MapRelated(node)); break; case "side story": anime.SideStories.AddRange(MapRelated(node)); break; case "parent story": anime.ParentStory = MapRelated(node).FirstOrDefault(); break; case "character": anime.CharacterAnime.AddRange(MapRelated(node)); break; case "spin-off": anime.SpinOffs.AddRange(MapRelated(node)); break; case "summary": anime.Summaries.AddRange(MapRelated(node)); break; case "alternative version": anime.AlternativeVersion.AddRange(MapRelated(node)); break; case "alternative setting": anime.AlternativeSetting.AddRange(MapRelated(node)); break; case "full story": anime.FullStories.AddRange(MapRelated(node)); break; default: anime.Others.AddRange(MapRelated(node)); break; } if (node.ChildNodes.Count == 3) { var nextNode = node.ChildNodes[2]; if (nextNode != null) ParseTd(nextNode, anime); } }
/// <summary> /// Creates default hover in/out animations. /// </summary> public virtual void UseDefaultHoverAni() { hoverInAni = new Anime(); hoverInAni.AnimateFloat(a => hoverSprite.Alpha = a) .AddTime(0, () => hoverSprite.Alpha) .AddTime(0.25f, 0.25f) .Build(); hoverOutAni = new Anime(); hoverOutAni.AnimateFloat(a => hoverSprite.Alpha = a) .AddTime(0, () => hoverSprite.Alpha) .AddTime(0.25f, 0f) .Build(); }
public User() { Settings = Trackr.Core.Settings.Load(); IAnime anime = ResolveAnimeClient(Settings); if (anime != null) { AnimeList.Load(anime); } IManga manga = ResolveMangaClient(Settings); if (manga != null) { MangaList.Load(manga); } }
public void Setup() { _notAired = new AnimeDummy { AiringStart = new DateTime(2011, 1, 1), AiringEnd = new DateTime(2012, 1, 1) }; _airing1 = new AnimeDummy { AiringStart = new DateTime(2009, 12, 1), AiringEnd = new DateTime(2011, 10, 1) }; _airing2 = new AnimeDummy { AiringStart = new DateTime(2009, 12, 1), AiringEnd = null }; _aired = new AnimeDummy { AiringStart = new DateTime(2007, 1, 1), AiringEnd = new DateTime(2008, 1, 1) }; // Airing end for one-episode anime can be NULL (at least in world-art) because // obviously it is the same as Airing start. // _airedOneEpisode = new AnimeDummy { AiringStart = new DateTime(2009, 12, 12), Episodes = 1 }; _unknown1 = new AnimeDummy(); _unknown2 = new AnimeDummy { Year = Today.Year }; _notAiredByYear = new AnimeDummy { Year = 2100 }; _airedByYear = new AnimeDummy { Year = 1995 }; }
private void Init(IGameSession session) { session.OnSoftInit += () => { session.ScoreProcessor.OnNewJudgement += OnNewJudgement; }; SpriteName = "glow-in-square-32"; Color = ColorPreset.GetHitResultColor(HitResultType.Miss).Alpha(0f); showAni = new Anime(); showAni.AnimateFloat((alpha) => Alpha = alpha) .AddTime(0f, () => Alpha) .AddTime(0.05f, 0.125f, EaseType.QuadEaseOut) .AddTime(0.35f, 0f) .Build(); }
private void Init() { titleLabel = CreateChild <Label>("title", 0); { titleLabel.FontSize = 22; titleLabel.IsBold = true; titleLabel.Alpha = 0; } artistLabel = CreateChild <Label>("artist", 1); { artistLabel.FontSize = 16; artistLabel.Alpha = 0; } versionLabel = CreateChild <Label>("version", 2); { versionLabel.FontSize = 20; versionLabel.Alpha = 0; } mapperLabel = CreateChild <Label>("mapper", 3); { mapperLabel.FontSize = 16; mapperLabel.Alpha = 0; } thumbDisplayer = CreateChild <ThumbDisplayer>("thumb", 4); { thumbDisplayer.Size = new Vector2(400f, 72f); thumbDisplayer.Alpha = 0; } showAni = new Anime(); AddShowAniFrame(titleLabel, 0.3f, new Vector2(0f, 112f)); AddShowAniFrame(artistLabel, 0.4f, new Vector2(0f, 88f)); AddShowAniFrame(thumbDisplayer, 0.5f, new Vector2(0f, 16f)); AddShowAniFrame(versionLabel, 0.6f, new Vector2(0f, -60f)); AddShowAniFrame(mapperLabel, 0.7f, new Vector2(0f, -86f)); hideAni = new Anime(); hideAni.AddEvent(0f, () => showAni.Stop()); AddHideAniFrame(titleLabel, 0f); AddHideAniFrame(artistLabel, 0.1f); AddHideAniFrame(thumbDisplayer, 0.2f); AddHideAniFrame(versionLabel, 0.3f); AddHideAniFrame(mapperLabel, 0.4f); OnEnableInited(); }
private void Init() { gradient = CreateChild <UguiSprite>("gradient", 0); { gradient.Anchor = AnchorType.Fill; gradient.RawSize = Vector2.zero; gradient.SpriteName = "gradation-bottom"; gradient.Color = Color.black; } title = CreateChild <Label>("title", 1); { title.Anchor = AnchorType.BottomStretch; title.RawWidth = -84f; title.Y = 56f; title.IsBold = true; title.Alignment = TextAnchor.MiddleLeft; title.FontSize = 26; } artist = CreateChild <Label>("artist", 2); { artist.Anchor = AnchorType.BottomStretch; artist.Pivot = PivotType.BottomLeft; artist.SetOffsetHorizontal(42f, 402f); artist.Y = 12f; artist.Height = 34f; artist.FontSize = 22; artist.Alignment = TextAnchor.MiddleLeft; } creator = CreateChild <Label>("creator", 3); { creator.Anchor = AnchorType.BottomStretch; creator.Pivot = PivotType.BottomRight; creator.Alignment = TextAnchor.MiddleRight; creator.FontSize = 22; creator.Position = new Vector2(-42f, 12f); creator.Size = new Vector2(360f, 34f); } fadeAni = new Anime(); fadeAni.AnimateFloat(alpha => title.Alpha = artist.Alpha = alpha) .AddTime(0f, 0f, EaseType.SineEaseOut) .AddTime(0.25f, 1f) .Build(); OnEnableInited(); }
private void GetInfoUrls(HtmlDocument doc, IAnime anime) { foreach (var listItem in doc.DocumentNode.SelectNodes("//div[@id='horiznav_nav']")) { foreach (var child in listItem.ChildNodes["ul"].ChildNodes) { var item = child.ChildNodes["a"]; if (item == null) continue; switch (item.InnerText) { case "Episodes": anime.AdditionalInfoUrls.Episodes = child.ChildNodes["a"].Attributes["href"].Value; break; case "Reviews": anime.AdditionalInfoUrls.Reviews = child.ChildNodes["a"].Attributes["href"].Value; break; case "Recommendations": anime.AdditionalInfoUrls.Recommendation = child.ChildNodes["a"].Attributes["href"].Value; break; case "Stats": anime.AdditionalInfoUrls.Stats = child.ChildNodes["a"].Attributes["href"].Value; break; case "Characters & Staff": case "Characters & Staff": anime.AdditionalInfoUrls.CharactersAndStaff = child.ChildNodes["a"].Attributes["href"].Value; break; case "News": anime.AdditionalInfoUrls.News = child.ChildNodes["a"].Attributes["href"].Value; break; case "Forum": anime.AdditionalInfoUrls.Forum = child.ChildNodes["a"].Attributes["href"].Value; break; case "Featured": anime.AdditionalInfoUrls.Featured = child.ChildNodes["a"].Attributes["href"].Value; break; case "Clubs": anime.AdditionalInfoUrls.Clubs = child.ChildNodes["a"].Attributes["href"].Value; break; case "Pictures": anime.AdditionalInfoUrls.Pictures = child.ChildNodes["a"].Attributes["href"].Value; break; } } } }
void FindTorrents(string searchTitle, IAnime anime) { var nextEpisode = anime.Watched + 1; var queryTerm = searchTitle.Replace (' ', '+') + "+" + nextEpisode.ToString (); var torrents = Torrent.ParseTorrentsFromWeb (TorrentsLink + queryTerm) .Where (t => t.Category == TorrentCategory.English && t.CleanTitle.Contains (nextEpisode.ToString ())).ToList (); if (torrents.Any ()) { var evt = new Core.Domain.Events.NewTorrentsEvent(torrents, anime) { Title = queryTerm }; Console.WriteLine (evt); Console.WriteLine (); Console.WriteLine (); } }
public static EmbedBuilder ToEmbed(this IAnime anime, EmbedBuilder?embed = null) { if (embed == null) { embed = new EmbedBuilder(); } // Limit description length to 2048 characters var desc = anime.Description; if (desc.Length > 2048) { var addon = "..."; if (!string.IsNullOrWhiteSpace(anime.Url)) { addon += $"... <[Read More]({anime.Url})>"; } desc = desc[..(2047 - addon.Length)];
private void Init() { tickSprite = CreateChild <UguiSprite>("tick", 0); { tickSprite.Anchor = AnchorType.Fill; tickSprite.Offset = Offset.Zero; tickSprite.SpriteName = "circle-32"; } hitAni = new Anime(); hitAni.AnimateFloat(a => this.Alpha = a) .AddTime(0f, 1f, EaseType.QuadEaseOut) .AddTime(0.5f, 0f) .Build(); hitAni.AnimateVector3(s => this.Scale = s) .AddTime(0f, Vector3.one, EaseType.CubicEaseOut) .AddTime(0.5f, new Vector3(2.5f, 2.5f, 1f)) .Build(); hitAni.AddEvent(hitAni.Duration, () => Active = false); }
private void Init() { SpriteName = "glow-in-square-32"; ImageType = Image.Type.Sliced; RotationZ = 45f; AddEffect(new AdditiveShaderEffect()); anime = new Anime(); anime.AnimateFloat((alpha) => this.Alpha = alpha) .AddTime(0f, 0f, EaseType.QuadEaseOut) .AddTime(0.1f, 1f, EaseType.QuadEaseIn) .AddTime(0.25f, 0f) .Build(); anime.AnimateVector2((size) => this.Size = size) .AddTime(0f, new Vector2(PulseStartSize, PulseStartSize), EaseType.CubicEaseOut) .AddTime(0.25f, new Vector2(PulseFullSize, PulseFullSize)) .Build(); anime.AddEvent(anime.Duration, () => Recycler.Return(this)); }
public static string CalculateWithAiringDates(IAnime anime, DateTime today) { if (!anime.AiringStart.HasValue) { return null; } if (anime.AiringStart.Value.Date > today) { return NotAired; } else { if (!anime.AiringEnd.HasValue) { return anime.Episodes == 1 ? Aired : Airing; } else { return anime.AiringEnd.Value.Date <= today ? Aired : Airing; } } }
private void Init(IColorPreset colorPreset) { OnPointerDown += () => { isControlling = true; upAni.Stop(); downAni.PlayFromStart(); }; OnPointerUp += () => { isControlling = false; downAni.Stop(); upAni.PlayFromStart(); }; OnChange += (value) => { var audio = MusicController.Audio; if (isControlling && audio != null) { MusicController.Seek(value * audio.Duration); } }; background.Color = Color.black; foreground.Color = colorPreset.SecondaryFocus; thumb.Active = false; downAni = new Anime(); downAni.AnimateFloat(y => ScaleY = y) .AddTime(0f, () => ScaleY) .AddTime(0.25f, 2f) .Build(); upAni = new Anime(); upAni.AnimateFloat(y => ScaleY = y) .AddTime(0f, () => ScaleY) .AddTime(0.25f, 1f) .Build(); }
/// <summary> /// Get anime title as specified by preference. Order matters. if nothing found, preferred title is returned /// </summary> /// <param name="anime">IAnime object representing the Anime the title has to be searched for</param> /// <param name="type">TitleType, eg. TitleType.Official or TitleType.Short </param> /// <param name="langs">Arguments Array taking in the TitleLanguages that should be search for.</param> /// <returns>string representing the Anime Title for the first language a title is found for</returns> private string GetTitleByPref(IAnime anime, TitleType type, params TitleLanguage[] langs) { //get all titles var titles = (List <AnimeTitle>)anime.Titles; //iterate over the given TitleLanguages in langs foreach (TitleLanguage lang in langs) { //set title to the first found title of the defined language. if nothing found title will stay null string title = titles.FirstOrDefault(s => s.Language == lang && s.Type == type)?.Title; //if title is found, aka title not null, return it if (title != null) { return(title); } } //no title found for the preferred languages, return the preferred title as defined by shoko return(anime.PreferredTitle); }
/// <summary> /// Creates default highlighting animation. /// </summary> public void UseDefaultHighlightAni() { // Create highlight animation highlightAni = new Anime(); highlightAni.AnimateFloat(a => highlightSprite.Alpha = a) .AddTime(0f, () => highlightSprite.Alpha) .AddTime(0.25f, 1f) .Build(); // Highlight sprite sizing animation. ISection <float> highlightSection = null; if (IsHighlightSpriteVertical) { highlightSection = highlightAni.AnimateFloat(size => highlightSprite.Height = size).AddTime(0f, () => highlightSprite.Height); } else { highlightSection = highlightAni.AnimateFloat(size => highlightSprite.Width = size).AddTime(0f, () => highlightSprite.Width); } highlightSection.AddTime(0.25f, () => HighlightedSize).Build(); // Create unhighlight animation. unhighlightAni = new Anime(); unhighlightAni.AnimateFloat(a => highlightSprite.Alpha = a) .AddTime(0f, () => highlightSprite.Alpha) .AddTime(0.25f, 0f) .Build(); // Highlight sprite sizing animation. ISection <float> unhighlightSection = null; if (IsHighlightSpriteVertical) { unhighlightSection = unhighlightAni.AnimateFloat(size => highlightSprite.Height = size).AddTime(0f, () => highlightSprite.Height); } else { unhighlightSection = unhighlightAni.AnimateFloat(size => highlightSprite.Width = size).AddTime(0f, () => highlightSprite.Width); } unhighlightSection.AddTime(0.25f, 0f).Build(); }
private void Init(IColorPreset colorPreset) { showAni = new Anime(); showAni.AnimateFloat(a => this.Alpha = a) .AddTime(1.5f, 0f, EaseType.QuadEaseOut) .AddTime(1.75f, 1f) .Build(); showAni.AnimateFloat(scale => Scale = new Vector3(scale, scale, 1f)) .AddTime(0f, 1f) .AddTime(1.5f, 2f, EaseType.QuadEaseOut) .AddTime(1.75f, 1f) .Build(); hideAni = new Anime(); hideAni.AddEvent(0f, () => showAni.Stop()); hideAni.AnimateFloat(a => this.Alpha = a) .AddTime(0f, 1f, EaseType.QuadEaseOut) .AddTime(0.5f, 0f) .Build(); Rotate = true; }
private void Init() { holdSprite = CreateChild <UguiSprite>("hold", 4); { holdSprite.Anchor = AnchorType.Fill; holdSprite.Offset = Offset.Zero; holdSprite.SpriteName = "circle-320"; holdSprite.Alpha = 0f; } holdAni = new Anime(); holdAni.AnimateFloat(a => holdSprite.Alpha = a) .AddTime(0f, () => holdSprite.Alpha) .AddTime(0.35f, 0.25f) .Build(); holdAni.AnimateVector3(s => holdSprite.Scale = s) .AddTime(0f, () => holdSprite.Scale) .AddTime(0.35f, new Vector3(2f, 2f, 2f)) .Build(); releaseAni = new Anime(); releaseAni.AnimateFloat(a => holdSprite.Alpha = a) .AddTime(0f, () => holdSprite.Alpha) .AddTime(0.35f, 0f) .Build(); releaseAni.AnimateVector3(s => holdSprite.Scale = s) .AddTime(0f, () => holdSprite.Scale) .AddTime(0.35f, Vector3.one) .Build(); hitAni.AddEvent(hitAni.Duration, () => { if (draggerView != null) { draggerView.Active = false; } }); }
public static string CalculateWithYear(IAnime anime, DateTime today) { if (anime.Year == today.Year) { return null; } return anime.Year > today.Year ? NotAired : Aired; }
public AnimeViewModel(IAnime anime) { _anime = anime; }
private void ParseTd(HtmlNode node, IAnime anime) { switch (node.ChildNodes[0].InnerText.Replace(":", "")) { case "Adaptation": anime.MangaAdaptation.AddRange(MapRelated(node)); break; case "Prequel": anime.Prequels.AddRange(MapRelated(node)); break; case "Sequel": anime.Sequels.AddRange(MapRelated(node)); break; case "Side Story": anime.SideStories.AddRange(MapRelated(node)); break; case "Parent Story": anime.ParentStory = MapRelated(node).FirstOrDefault(); break; case "Character Anime": anime.CharacterAnime.AddRange(MapRelated(node)); break; case "Spin Off": anime.SpinOffs.AddRange(MapRelated(node)); break; case "Summary": anime.Summaries.AddRange(MapRelated(node)); break; case "Alternative Versions": anime.AlternativeVersion.AddRange(MapRelated(node)); break; case "Alternative setting": anime.AlternativeSetting.AddRange(MapRelated(node)); break; case "Full story": anime.FullStories.AddRange(MapRelated(node)); break; default: anime.Others.AddRange(MapRelated(node)); break; } if (node.ChildNodes.Count == 3) { var nextNode = node.ChildNodes[2]; if (nextNode != null) ParseTd(nextNode, anime); } }
private async Task GetCharacterAndSeiyuuInformation(IAnime anime, string username, string password) { try { //Our first task is to retrieve the MAL anime - for now we cheat and grab it from our example data var doc = new HtmlDocument(); var url = anime.AdditionalInfoUrls.CharactersAndStaff; HttpClient webClient; if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password)) { var handler = new HttpClientHandler {Credentials = new NetworkCredential(username, password)}; webClient = new HttpClient(handler); } else { webClient = new HttpClient(); } var data = await webClient.GetStreamAsync(new Uri(url)); doc.Load(data); var tableNodes = doc.DocumentNode.SelectNodes("//table"); foreach (var table in tableNodes) { var rows = table.ChildNodes.Where(t => t.Name == "tr"); //var rows = table.SelectNodes("//tr"); if (rows != null) { foreach (var row in rows) { var columns = row.ChildNodes.Where(t => t.Name == "td").ToList(); if (columns.Count == 3) { var tmpChar = _characterFactory.CreateCharacter(); var charPic = columns[0].ChildNodes["div"].ChildNodes["a"].ChildNodes["img"].Attributes["data-src"]?.Value; if (string.IsNullOrEmpty(charPic)) { charPic = columns[0].ChildNodes["div"].ChildNodes["a"].ChildNodes["img"].Attributes["src"]?.Value; } tmpChar.CharacterPicture = charPic; tmpChar.CharacterName = columns[1].ChildNodes["a"].InnerText; tmpChar.CharacterUrl = columns[1].ChildNodes["a"].Attributes["href"].Value; tmpChar.CharacterType = columns[1].ChildNodes["div"].InnerText; var vaDetail = columns[2].ChildNodes["table"]?.ChildNodes.Where(t => t.Name == "tr").ToList(); if(vaDetail == null) continue; foreach (var detail in vaDetail) { var tmpSeiyuu = _characterFactory.CreateSeiyuu(); tmpSeiyuu.Language = detail.ChildNodes["td"].ChildNodes["small"].InnerText; tmpSeiyuu.Name = detail.ChildNodes["td"].ChildNodes["a"].InnerText; tmpSeiyuu.Url = detail.ChildNodes["td"].ChildNodes["a"].Attributes["href"].Value; var tmpImage = detail.ChildNodes[3].ChildNodes["div"].ChildNodes["a"].ChildNodes["img"].Attributes["data-src"]?.Value; if (string.IsNullOrEmpty(tmpImage)) { tmpImage = detail.ChildNodes[3].ChildNodes["div"].ChildNodes["a"].ChildNodes["img"].Attributes["src"].Value; } tmpSeiyuu.PictureUrl = tmpImage; tmpChar.Seiyuu.Add(tmpSeiyuu); } if(anime.CharacterInformation.Count(t => t.CharacterUrl == tmpChar.CharacterUrl) == 0) anime.CharacterInformation.Add(tmpChar); } } } } } catch (Exception ex) { Log.Error(ex, "Error occured while trying to retrieve character and staff data"); } }
public NewTorrentsEvent(List<ITorrent> torrents, IAnime anime) { _torrents = torrents; _anime = anime; AnimeID = anime.ID; }
public SerializeFailedException(IAnime data, Exception inner) : base(inner) { SerializationData = data; }