Exemplo n.º 1
0
        private static void FetchTopResources(HtmlNode classC, NewsPreviewModel model)
        {
            var classC1 = classC.SelectSingleNode("div[@class='c1']");

            if (classC1 != null)
            {
                try {
                    var classC1_Li = classC1
                                     .SelectSingleNode("div[@class='c1_r']")
                                     .SelectSingleNode("ol[@class='o']")
                                     .SelectNodes("li");
                    model.TopImageList = new List <SimpleImgModel>();
                    foreach (var item in classC1_Li)
                    {
                        try {
                            var aRoute = item.SelectSingleNode("a[@class='o_l_80']");
                            model.TopImageList.Add(new SimpleImgModel {
                                Title    = aRoute.Attributes["title"].Value,
                                PathUri  = new Uri(aRoute.Attributes["href"].Value),
                                ImageUri = new Uri(aRoute.SelectSingleNode("img").Attributes["src"].Value),
                            });
                        } catch (NullReferenceException ex) {
                            Debug.WriteLine(ex.StackTrace);
                        } catch (ArgumentNullException ex) {
                            Debug.WriteLine(ex.StackTrace);
                        } catch (UriFormatException ex) {
                            Debug.WriteLine(ex.StackTrace);
                        } catch (Exception ex) {
                            Debug.WriteLine(ex.StackTrace);
                        }
                    }
                } catch { ReportError("Top5 source fetch error."); }
            }
        }
Exemplo n.º 2
0
        public static NewsPreviewModel FetchImagesIndexFromHtml(string htmlResources)
        {
            var pageResources = new HtmlDocument();

            pageResources.LoadHtml(htmlResources);
            HtmlNode rootnode    = pageResources.DocumentNode;
            string   XPathString = "//div[@class='c']";
            var      classC      = rootnode.SelectSingleNode(XPathString);

            if (classC == null) // Pictures page mode failed
            {
                return(null);
            }
            var model = new NewsPreviewModel();

            FetchSlideResources(classC, model);
            FetchTopResources(classC, model);
            FetchRecommendResources(classC, model);
            FetchSelectResources(classC, model);
            for (int i = 0; i < 4; i++)
            {
                FetchCollectionResources(classC, model, i);
            }
            return(model);
        }
Exemplo n.º 3
0
 private void SetIndexRangeResources(NewsPreviewModel source)
 {
     FlipResouces.Source      = source.SlideImageList;
     TopResouces.Source       = source.TopImageList;
     RecommendResouces.Source = source.RecommendImageList;
     SelectResouces.Source    = source.SelectImageList;
     GirlResouces.Source      = source.GirlImageList;
     FashionResouces.Source   = source.FashionImageList;
     PlaythingResouces.Source = source.PlaythingImageList;
     EntResouces.Source       = source.EntImageList;
     NavigateState            = PageState.Navigated;
     flipSourceCount          = source.SlideImageList.Count;
 }
Exemplo n.º 4
0
        private static void FetchRecommendResources(HtmlNode classC, NewsPreviewModel model)
        {
            var classC2 = classC.SelectSingleNode("div[@class='c2']");

            if (classC2 != null)
            {
                try {
                    var classC1_Ul = classC2
                                     .SelectSingleNode("div[@class='c2_left']")
                                     .SelectSingleNode("div[@class='c2_slide']")
                                     .SelectSingleNode("div[@class='c2_slide_c']")
                                     .SelectNodes("ul[@class='c2_lc']");
                    model.RecommendImageList = new List <SimpleImgModel>();
                    foreach (var ul in classC1_Ul)
                    {
                        var classC1_Li = ul.SelectNodes("li");
                        foreach (var item in classC1_Li)
                        {
                            try {
                                var aRoute = item.SelectSingleNode("a");
                                model.RecommendImageList.Add(new SimpleImgModel {
                                    Title    = aRoute.Attributes["title"].Value,
                                    PathUri  = new Uri(aRoute.Attributes["href"].Value),
                                    ImageUri = new Uri(aRoute.SelectSingleNode("img").Attributes["src"].Value),
                                });
                            } catch (NullReferenceException ex) {
                                Debug.WriteLine(ex.StackTrace);
                            } catch (ArgumentNullException ex) {
                                Debug.WriteLine(ex.StackTrace);
                            } catch (UriFormatException ex) {
                                Debug.WriteLine(ex.StackTrace);
                            } catch (Exception ex) {
                                Debug.WriteLine(ex.StackTrace);
                            }
                        }
                    }
                } catch { ReportError("Recommend source fetch error."); }
            }
        }
Exemplo n.º 5
0
        private async void OnItemSelected(object sender, SelectedItemChangedEventArgs args)
        {
            var item = args.SelectedItem as ListItem;

            if (item == null)
            {
                return;
            }

            var    news      = await $"{APIService._apiUrl}/News/{item.Id}".GetJsonAsync <News>();
            string submitter = await $"{APIService._apiUrl}/Submitters/news/{news.Id}".GetStringAsync();
            //$"{APIService._apiUrl}/news/image/{item.Id}"

            NewsPreviewModel model = new NewsPreviewModel
            {
                Image       = $"{APIService._apiUrl}/news/image/{news.Id}",
                Name        = news.Title,
                DateAdded   = news.DateAdded,
                Description = news.Content,
                Submitter   = submitter
            };

            await Navigation.PushModalAsync(new NavigationPage(new NewsDetailsPage(model)));
        }
Exemplo n.º 6
0
        private static void FetchCollectionResources(HtmlNode classC, NewsPreviewModel model, int index)
        {
            var classC3    = classC.SelectNodes("div[@class='c3']").ElementAt(index);
            var targetList = new List <SimpleImgModel>();

            if (classC3 != null)
            {
                try {
                    var classC1_Left = classC3.SelectNodes("div[@class='c3_l']");
                    foreach (var item in classC1_Left)
                    {
                        try {
                            var aRoute = item.SelectSingleNode("a");
                            targetList.Add(new SimpleImgModel {
                                Title    = aRoute.Attributes["title"].Value,
                                PathUri  = new Uri(aRoute.Attributes["href"].Value),
                                ImageUri = new Uri(aRoute.SelectSingleNode("img").Attributes["src"].Value),
                            });
                        } catch (NullReferenceException ex) {
                            Debug.WriteLine(ex.StackTrace);
                        } catch (ArgumentNullException ex) {
                            Debug.WriteLine(ex.StackTrace);
                        } catch (UriFormatException ex) {
                            Debug.WriteLine(ex.StackTrace);
                        } catch (Exception ex) {
                            Debug.WriteLine(ex.StackTrace);
                        }
                    }
                    var classC1_Li = classC3
                                     .SelectSingleNode("div[@class='c3_r']")
                                     .SelectSingleNode("ul")
                                     .SelectNodes("li");
                    foreach (var item in classC1_Li)
                    {
                        try {
                            var aRoute = item.SelectSingleNode("a");
                            targetList.Add(new SimpleImgModel {
                                Title    = aRoute.Attributes["title"].Value,
                                PathUri  = new Uri(aRoute.Attributes["href"].Value),
                                ImageUri = new Uri(aRoute.SelectSingleNode("img").Attributes["src"].Value),
                            });
                        } catch (NullReferenceException ex) {
                            Debug.WriteLine(ex.StackTrace);
                        } catch (ArgumentNullException ex) {
                            Debug.WriteLine(ex.StackTrace);
                        } catch (UriFormatException ex) {
                            Debug.WriteLine(ex.StackTrace);
                        } catch (Exception ex) {
                            Debug.WriteLine(ex.StackTrace);
                        }
                    }
                } catch { ReportError("Collection source fetch error."); }
                if (index == 1)
                {
                    var classC3B = classC.SelectSingleNode("div[@class='c3_b']");
                    if (classC3B != null)
                    {
                        try {
                            var classSpecial = classC3B
                                               .SelectNodes("div");
                            foreach (var item in classSpecial)
                            {
                                try {
                                    var aRoute = item.SelectSingleNode("a");
                                    targetList.Add(new SimpleImgModel {
                                        Title    = aRoute.Attributes["title"].Value,
                                        PathUri  = new Uri(aRoute.Attributes["href"].Value),
                                        ImageUri = new Uri(aRoute.SelectSingleNode("img").Attributes["src"].Value),
                                    });
                                } catch (NullReferenceException ex) {
                                    Debug.WriteLine(ex.StackTrace);
                                } catch (ArgumentNullException ex) {
                                    Debug.WriteLine(ex.StackTrace);
                                } catch (UriFormatException ex) {
                                    Debug.WriteLine(ex.StackTrace);
                                } catch (Exception ex) {
                                    Debug.WriteLine(ex.StackTrace);
                                }
                            }
                        } catch { ReportError("Special source fetch error."); }
                    }
                }
                switch (index)
                {
                case 0: model.GirlImageList = targetList; break;

                case 1: model.FashionImageList = targetList; break;

                case 2: model.PlaythingImageList = targetList; break;

                case 3: model.EntImageList = targetList; break;

                default: break;
                }
            }
        }
Exemplo n.º 7
0
        public NewsDetailsPage(NewsPreviewModel viewModel)
        {
            InitializeComponent();

            BindingContext = model = viewModel;
        }