public void LoadFromTitleId() { if (_chapterRoutine != null) { StopCoroutine(_chapterRoutine); } _mangaRequest?.Abort(); var url = _titleId.text.Trim(); if (string.IsNullOrEmpty(url) || !Uri.TryCreate(url, UriKind.Absolute, out var uri) || !uri.Host.Contains("mangadex") || uri.Segments.Length < 3) { return; } var title = uri.Segments[2].Trim('/'); if (string.IsNullOrEmpty(title)) { return; } _currentManga = null; _chapters.Clear(); _chapter.ClearOptions(); foreach (Transform child in _list) { Destroy(child.gameObject); } var titleId = long.Parse(title); _mangaRequest = UnityWebRequest.Get(API_MANGA + titleId); _mangaRequest.SendWebRequest().completed += _ => { if (_mangaRequest.isHttpError || _mangaRequest.isNetworkError) { Debug.LogError($"Error while trying to get Manga info ERROR: {_mangaRequest.error}"); return; } var options = new List <string>(); var response = MangaResponse.FromJson(_mangaRequest.downloadHandler.text); foreach (var chapter in response.Chapters) { if (chapter.Value.LangCode == "gb") { var chapterName = $"Vol. {chapter.Value.Volume} Ch. {chapter.Value.ChapterNo}"; if (string.IsNullOrEmpty(chapter.Value.ChapterNo)) { chapterName = "Oneshot"; } else if (!string.IsNullOrEmpty(chapter.Value.Title)) { chapterName += $" - {chapter.Value.Title}"; } _chapters[chapterName] = chapter.Key; options.Add(chapterName); } } _chapter.AddOptions(options.Select(x => { var split = x.Split(' '); return(new { str = x, split = split.Length >= 4 ? split : new string[4] }); }) .OrderBy(x => float.Parse("0" + x.split[3])) .Select(x => x.str) .ToList()); _currentManga = response; SetChapterNo(PlayerPrefs.GetInt(_currentManga.Manga.Title, 0)); // Load the chapters _chapterRoutine = StartCoroutine(LoadMangaChapter()); }; }