コード例 #1
0
        /// <summary>
        /// Обрабатывает json ответ с запроса поиска
        /// </summary>
        /// <param name="Html"></param>
        /// <param name="searchNewElemEvent"></param>
        private void HtmlGetResulSearch(string Html, bool GetMoreInfo, SearchNewElemEvent searchNewElemEvent = null)
        {
            List <InfoFideoOrSerial> dataFilms = new List <InfoFideoOrSerial>(0);

            string Page     = ParsJson(Html, "current_page");
            uint   PageUint = 0;

            if (Page != null)
            {
                PageUint = Convert.ToUInt32(Page) - 1;
            }

            // Очистка начала
            Html = Html.Remove(0, Html.IndexOf("\"items\""));
            Html = Html.Remove(0, Html.IndexOf('[') + 1);
            // Очистка конца
            Html = Html.Substring(0, Html.IndexOf(']'));
            // Разбиваем данные на части
            string[] Elements = Html.Split('}');
            Html = null;

            foreach (var elem in Elements)
            {
                string elemN = elem + "}";
                if (ParsJson(elemN, "name_rus") != null)
                {
                    List <InfoFideoOrSerial.DataVideo[]> Series = new List <InfoFideoOrSerial.DataVideo[]>(0);
                    string id = ParsJson(elemN, "mobi_link_id");
                    if (id == null)
                    {
                        id = GetID(ParsJson(elemN, "name_id"));
                    }
                    dataFilms.Add(
                        new InfoFideoOrSerial(new InfoFideoOrSerial.DataVideo[][] { new InfoFideoOrSerial.DataVideo[] { new InfoFideoOrSerial.DataVideo(id) } }, ParsJson(elemN, "year"),
                                              Convert.ToDouble(ParsJson(elemN, "rating_kinopoisk")?.Replace('.', ',')),
                                              ParsJson(elemN, "name_rus"),
                                              Convert.ToBoolean(ParsJson(elemN, "serial")),
                                              ParsJson(elemN, "name_id"),
                                              ParsJson(elemN, "cover")?.Replace("\\/", "/")
                                              ));
                    if (GetMoreInfo)
                    {
                        dataFilms[dataFilms.Count - 1].GetMoreInfo();
                    }
                    if (searchNewElemEvent != null)
                    {
                        try
                        {
                            searchNewElemEvent.Invoke(dataFilms[dataFilms.Count - 1]);
                        }
                        catch { }
                    }
                }
            }
            FilmsAndSerials[PageUint] = dataFilms.ToArray();
        }
コード例 #2
0
        /// <summary>
        /// Подгрузить страницу
        /// </summary>
        /// <param name="Pages">Номер страницы (отсчёт с 0)</param>
        /// <param name="searchNewElemEvent">Вызывается при каждом новом найденном фильме или сериале</param>
        public void LoadPages(uint Pages, bool GetMoreInfo = false, SearchNewElemEvent searchNewElemEvent = null)
        {
            if (Pages > CountPages)
            {
                Pages = CountPages;
            }
            if (FilmsAndSerials[Pages] != null)
            {
                return;
            }
            string JsonReqest = webClientSearch.DownloadString(SearchUrl + "?page=" + (Pages + 1));

            HtmlGetResulSearch(JsonReqest, GetMoreInfo, searchNewElemEvent);
        }
コード例 #3
0
        public GetFilmsAndSerialZona(Filters Search, bool GetMoreInfo = false, bool AllPages = false, SearchNewElemEvent searchNewElemEvent = null)
        {
            Start();
            // Производим запрос на сервер
            string JsonReqest;

            SearchUrl = "https://w84.zona.plus/" +
                        (Search.IsSerial ? "tvseries" : "movies") +
                        (Search.GenreSelected != "0" ? "/" + Search.GenreSelected : null) +
                        (Search.YearSelected != "0" ? "/" + Search.YearSelected : null) +
                        (Search.CountrySelected != "0" ? "/" + Search.CountrySelected : null) +
                        (Search.RatingSelected != "0" ? "/" + Search.RatingSelected : null) +
                        (Search.SortSelected != "0" ? "/" + Search.SortSelected : null)
            ;
            JsonReqest = webClientSearch.DownloadString(SearchUrl);
            GetInfoHtml(JsonReqest);
            HtmlGetResulSearch(JsonReqest, GetMoreInfo, searchNewElemEvent);
            if (AllPages)
            {
                for (uint i = 1; i < CountPages; i++)
                {
                    LoadPages(i, GetMoreInfo, searchNewElemEvent);
                }
            }
        }
コード例 #4
0
        /// <summary>
        /// Поиск фильма или сериала по названию
        /// </summary>
        /// <param name="Search"></param>
        /// <param name="GetMoreInfo"></param>
        /// <param name="AllPages"></param>
        /// <param name="searchNewElemEvent"></param>
        public GetFilmsAndSerialZona(string Search, bool GetMoreInfo = false, bool AllPages = false, SearchNewElemEvent searchNewElemEvent = null)
        {
            Start();
            // Производим запрос на сервер
            string JsonReqest;

            SearchUrl  = "https://w84.zona.plus/search/" + Search;
            JsonReqest = webClientSearch.DownloadString(SearchUrl);
            GetInfoHtml(JsonReqest);
            HtmlGetResulSearch(JsonReqest, GetMoreInfo, searchNewElemEvent);
            if (AllPages)
            {
                for (uint i = 1; i < CountPages; i++)
                {
                    LoadPages(i, GetMoreInfo, searchNewElemEvent);
                }
            }
        }