Ejemplo n.º 1
0
            public WebPageData[] ExtractData(HtmlDocument doc)
            {
                AlbumImages.Clear();
                Dictionary <string, string> att = new Dictionary <string, string>();

                att.Add("width", "100%");
                att.Add("style", "background-color: white;");

                var container = Helper.AnyChild(doc.DocumentNode, "table", att, true);

                if (container == null)
                {
                    return(null);
                }

                //TODO : add support for http://www.idlebrain.com/movie/photogallery/madhusharma1.html

                var imgNodes = Helper.AllChild(container, "img");

                if (imgNodes == null)
                {
                    return(null);
                }

                int index = 0;
                List <WebPageData> data = new List <WebPageData>();

                foreach (var imgNode in imgNodes)
                {
                    string thSrc = (webDir.EndsWith("/") ? webDir : webDir + "/") + imgNode.GetAttributeValue("src", "");

                    var singleData = WebPageData.GetTextOnly($"{index++}", "");
                    singleData.IsFinal = true;
                    singleData.UID     = UidGenerator();

                    singleData.ImageUrl = thSrc;    //image link

                    var imgDefi = new ImageDefinition()
                    {
                        thumbnil = thSrc,
                        original = (webDir.EndsWith("/") ? webDir : webDir + "/") + imgNode.GetAttributeValue("src", "").Replace("th_", "")
                    };

                    AlbumImages.Add(imgDefi);

                    data.Add(singleData);
                }
                return(data.ToArray());
            }
Ejemplo n.º 2
0
        public IWebPageReader OnClickCallback(WebPageData item)
        {
            switch (currentState)
            {
            case CurrentStateInfo.Unknow:
                break;

            case CurrentStateInfo.ListOfPerson:
                AlbumImages.Clear();
                if (architecture.ListOfAlbumReader == null)     //one level skipped
                {
                    currentState = CurrentStateInfo.ListOfAlbum;
                    return(OnClickCallback(item));
                }
                architecture.ListOfAlbumReader.Url = architecture.ListOfAlbumReader.GetUrl((Person)item.Tag);
                LoadConfig(architecture.ListOfAlbumReader);
                informationForLevel = item.Tag;
                return(this);

            case CurrentStateInfo.ListOfAlbum:
                AlbumImages.Clear();
                if (architecture.ListOfAlbumReader == null)
                {
                    try
                    {
                        item.Tag = Changer.ToAlbum((Person)item.Tag);
                    }
                    catch (Exception) { }
                }

                architecture.ListOfImagesReader.Url = architecture.ListOfImagesReader.GetUrl((Album)item.Tag);
                LoadConfig(architecture.ListOfImagesReader);
                informationForLevel = item.Tag;
                return(this);

            case CurrentStateInfo.ListOfImage:
                break;

            case CurrentStateInfo.ShowImage:
                break;

            default:
                break;
            }
            return(null);
        }
Ejemplo n.º 3
0
        public WebPageData[] ExtractData(HtmlDocument doc)
        {
            arrangeCurrentState();

            List <WebPageData> data = new List <WebPageData>();

            switch (currentState)
            {
            case CurrentStateInfo.Unknow:
                break;

            case CurrentStateInfo.ListOfPerson:
                AlbumImages.Clear();
                var persons = architecture.ListOfPersonReader.GetListOfPerson(doc);
                foreach (var person in persons)
                {
                    WebPageData singleData = new WebPageData();
                    singleData.IsFinal           = true;
                    singleData.ImageUrl          = person.ImageUrl;
                    singleData.mainText          = person.Name;
                    singleData.subText           = (person.Description == string.Empty ? "" : person.Description);
                    singleData.NoOfItemsIncluded = person.NoOfAlbums;
                    singleData.UID = MyGlobal.UidGenerator();
                    singleData.Tag = person;

                    data.Add(singleData);
                }
                break;

            case CurrentStateInfo.ListOfAlbum:

                if (architecture.ListOfAlbumReader == null)
                {
                    currentState = CurrentStateInfo.ListOfPerson;
                    return(ExtractData(doc));
                }

                AlbumImages.Clear();
                var albums = architecture.ListOfAlbumReader.GetAlbumList((Person)informationForLevel, doc);
                foreach (var album in albums)
                {
                    WebPageData singleData = new WebPageData();
                    singleData.IsFinal  = true;
                    singleData.ImageUrl = album.ImageUrl;
                    singleData.mainText = album.Name;

                    singleData.subText           = (album.Description == string.Empty ? "" : album.Description);
                    singleData.NoOfItemsIncluded = album.NoOfImages;
                    singleData.UID = MyGlobal.UidGenerator();
                    singleData.Tag = album;

                    data.Add(singleData);
                }
                break;

            case CurrentStateInfo.ListOfImage:
                var images = architecture.ListOfImagesReader.GetImageList((Album)informationForLevel, doc);
                foreach (var img in images)
                {
                    WebPageData singleData = new WebPageData();
                    singleData.IsFinal  = true;
                    singleData.ImageUrl = img.Image.thumbnil;
                    singleData.mainText = img.Name;
                    singleData.UID      = MyGlobal.UidGenerator();

                    data.Add(singleData);
                    AlbumImages.Add(img.Image);     //get the data for the next level and cached it
                }
                break;

            case CurrentStateInfo.ShowImage:
                break;

            default:
                break;
            }
            return(data.Count == 0 ? null : data.ToArray());
        }