Пример #1
0
        protected void rptSeason_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                EpisodeTitle i   = (EpisodeTitle)e.Item.DataItem;
                HyperLink    hlk = e.Item.FindControl("hlk") as HyperLink;

                hlk.Text        = i.Title;
                hlk.NavigateUrl = "/Caps/" + i.UrlLabel;
                hlk.Enabled     = i.CDNPath != "";
            }
        }
Пример #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.RawUrl.EndsWith("/"))
            {
                Response.RedirectPermanent("/" + Request.RawUrl.Trim('/'));
                return;
            }
            if (!IsPostBack)
            {
                if (Page.RouteData.Values["Episode"] == null)
                {
                    pnlEpList.Visible     = true;
                    pnlThumbs.Visible     = false;
                    rptSeason1.DataSource = EpCapsList.S1List;
                    rptSeason1.DataBind();
                    rptSeason2.DataSource = EpCapsList.S2List;
                    rptSeason2.DataBind();
                    rptSeason3.DataSource = EpCapsList.S3List;
                    rptSeason3.DataBind();
                    rptSeason4.DataSource = EpCapsList.S4List;
                    rptSeason4.DataBind();
                    rptMovies.DataSource = EpCapsList.MovieList;
                    rptMovies.DataBind();
                    rptMisc.DataSource = EpCapsList.MiscList;
                    rptMisc.DataBind();

                    int capCount = 0;
                    foreach (var l in EpCapsList.S1List)
                    {
                        capCount += l.Count;
                    }
                    foreach (var l in EpCapsList.S2List)
                    {
                        capCount += l.Count;
                    }
                    foreach (var l in EpCapsList.S3List)
                    {
                        capCount += l.Count;
                    }
                    foreach (var l in EpCapsList.S4List)
                    {
                        capCount += l.Count;
                    }
                    foreach (var l in EpCapsList.MovieList)
                    {
                        capCount += l.Count;
                    }
                    foreach (var l in EpCapsList.MiscList)
                    {
                        capCount += l.Count;
                    }

                    ltlCapCount.Text = capCount.ToString("N0");
                    MetaDescription  = $"We have {capCount:N0} Kim Possible screen shots, caps, memes, etc";
                }
                else
                {
                    pnlEpList.Visible     = false;
                    pnlThumbs.Visible     = true;
                    plhCapsScript.Visible = true;
                    bool   isValid    = false;
                    string episodeUrl = Page.RouteData.Values["Episode"].ToString();
                    string epUrl      = episodeUrl;
                    if (episodeUrl.ToLower().Contains("_") && !episodeUrl.ToLower().Contains("veiwpic"))
                    {
                        episodeUrl = episodeUrl.ToLower().Replace(".php", "").Replace("_", "-");
                    }
                    EpisodeTitle ep = EpCapsList.S1List.Where(p => p.UrlLabel == episodeUrl).SingleOrDefault();
                    if (ep != null && !String.IsNullOrWhiteSpace(ep.Title))
                    {
                        isValid = true;
                    }
                    if (ep == null)
                    {
                        ep = EpCapsList.S2List.Where(p => p.UrlLabel == episodeUrl).SingleOrDefault();
                        if (!String.IsNullOrWhiteSpace(ep?.Title))
                        {
                            isValid = true;
                        }
                    }
                    if (ep == null)
                    {
                        ep = EpCapsList.S3List.Where(p => p.UrlLabel == episodeUrl).SingleOrDefault();
                        if (!String.IsNullOrWhiteSpace(ep?.Title))
                        {
                            isValid = true;
                        }
                    }
                    if (ep == null)
                    {
                        ep = EpCapsList.S4List.Where(p => p.UrlLabel == episodeUrl).SingleOrDefault();
                        if (!String.IsNullOrWhiteSpace(ep?.Title))
                        {
                            isValid = true;
                        }
                    }
                    if (ep == null)
                    {
                        ep = EpCapsList.MovieList.Where(p => p.UrlLabel == episodeUrl).SingleOrDefault();
                        if (!String.IsNullOrWhiteSpace(ep?.Title))
                        {
                            isValid = true;
                        }
                    }
                    if (ep == null)
                    {
                        ep = EpCapsList.MiscList.Where(p => p.UrlLabel == episodeUrl).SingleOrDefault();
                        if (!String.IsNullOrWhiteSpace(ep?.Title))
                        {
                            isValid = true;
                        }
                    }
                    if (RedirectTable.CapsList.ContainsKey(epUrl))
                    {
                        if (RedirectTable.CapsList[epUrl].StartsWith("/"))
                        {
                            Response.RedirectPermanent(RedirectTable.CapsList[epUrl]);
                        }
                        else
                        {
                            Response.RedirectPermanent($"/Caps/{RedirectTable.CapsList[epUrl]}");
                        }
                        return;
                    }
                    if (!isValid)
                    {
                        using (FileStream fs = new FileStream(Server.MapPath("~/App_Data/Urls.txt"), FileMode.Append))
                        {
                            byte[] url = System.Text.Encoding.UTF8.GetBytes(Request.RawUrl + "\r\n");
                            fs.Write(url, 0, url.Length);
                        }
                        Response.Redirect("/Caps");
                        return;
                    }
                    if (isValid && epUrl.ToLower().Contains("_"))
                    {
                        Response.RedirectPermanent("/Caps/" + episodeUrl);
                        return;
                    }
                    ltlEpTitle.Text = ep.Title;
                    EpTitle         = ep.Title;
                    Title           = $"{ep.Title} Screen Captures | Kim Possible Fan World";
                    Episode epDetails = Episode.GetByUrl(ep.UrlLabel);
                    MetaDescription        = epDetails?.Description;
                    pDescription.InnerText = epDetails?.Description;
                    if (epDetails != null)
                    {
                        pDescription.InnerHtml += " <a href=\"/Contact\">Contact Us</a> to suggest edits and corrections!";
                    }
                    List <string>          MenuItems = new List <string>();
                    IEnumerable <S3Object> caps      = new List <S3Object>();
                    if (ep.Count == -1)
                    {
                        BasicAWSCredentials cred = new BasicAWSCredentials("", "");
                        AmazonS3Client      c    = new AmazonS3Client(cred, Amazon.RegionEndpoint.USWest2);
                        List <S3Object>     objs = new List <S3Object>();
                        var items = c.ListObjectsV2(new ListObjectsV2Request()
                        {
                            BucketName = "kpfw", Prefix = $"caps/{ep.CDNPath}/thumbs/"
                        });
                        //var items = c.ListObjectsV2(new ListObjectsV2Request() { BucketName = "kpfw", Prefix = "caps/", Delimiter = "/" });
                        //List<string> folders = items.CommonPrefixes;
                        //bltItems.DataSource = folders;
                        //bltItems.DataBind();
                        string contToken = items.NextContinuationToken;
                        foreach (var s3 in items.S3Objects)
                        {
                            if (s3.Key == items.Prefix)
                            {
                                continue;
                            }
                            objs.Add(s3);
                        }

                        while (items.S3Objects.Count > 0 && contToken != null)
                        {
                            items = c.ListObjectsV2(new ListObjectsV2Request()
                            {
                                BucketName = "kpfw", Prefix = $"caps/{ep.CDNPath}/thumbs/", ContinuationToken = contToken
                            });
                            contToken = items.NextContinuationToken;
                            if (items.S3Objects.Count == 0)
                            {
                                break;
                            }

                            foreach (var s3 in items.S3Objects)
                            {
                                objs.Add(s3);
                            }
                        }
                        caps = objs.OrderBy(s => s.Key);
                        try
                        {
                            caps = objs.OrderBy(s => Convert.ToInt32(s.Key.Replace($"caps/{ep.CDNPath}/thumbs/Image", "").Replace("_thumb.jpg", ""))).ToList();
                        }
                        catch { }
                        MenuItems.Add($"/Caps/{ep.UrlLabel}");
                        int item = 100;
                        ViewState["maxNum"] = caps.Count();
                        while (item < caps.Count())
                        {
                            MenuItems.Add($"/Caps/{ep.UrlLabel}/{item}");
                            item += 100;
                        }
                    }
                    else
                    {
                        int    ic  = 0;
                        string fmt = "D4";
                        if (d3.Contains(ep.UrlLabel))
                        {
                            fmt = "D3";
                        }
                        if (ep.UrlLabel == "so-the-drama")
                        {
                            fmt = "D";
                        }
                        while (ic < ep.Count)
                        {
                            ((List <S3Object>)caps).Add(new S3Object {
                                BucketName = "kpfw", Key = $"caps/{ep.CDNPath}/thumbs/Image" + String.Format("{0:" + fmt + "}", ic + 1) + "_thumb.jpg"
                            });
                            ic++;
                        }
                        MenuItems.Add($"/Caps/{ep.UrlLabel}");
                        int item = 100;
                        ViewState["maxNum"] = ep.Count;
                        while (item < ep.Count)
                        {
                            MenuItems.Add($"/Caps/{ep.UrlLabel}/{item}");
                            item += 100;
                        }
                    }
                    rptMenu.DataSource = MenuItems;
                    rptMenu.DataBind();
                    int startNum = 0;
                    if (Page.RouteData.Values["StartNum"] != null)
                    {
                        startNum = Convert.ToInt32(Page.RouteData.Values["StartNum"]);
                        int diff = startNum % 100;
                        if (diff != 0)
                        {
                            startNum -= diff;
                            Response.Redirect($"/Caps/{ep.UrlLabel}/{startNum}");
                            return;
                        }
                    }
                    caps = caps.Skip(startNum);
                    if (caps.Count() > 100)
                    {
                        caps = caps.Take(100);
                    }

                    rptThumbnails.DataSource = caps;
                    rptThumbnails.DataBind();
                    //bltItems.DataSource = caps;
                    //bltItems.DataTextField = "key";
                    //bltItems.DataBind();
                }
            }
        }
Пример #3
0
 private void LoadCapsLink(Episode ep, HyperLink hlk, PlaceHolder plh)
 {
     if (ep.Season == 1)
     {
         var caps = EpCapsList.S1List.Where(e => e.UrlLabel == ep.UrlLabel);
         if (caps.Count() > 0)
         {
             EpisodeTitle cap = caps.Single();
             if (!String.IsNullOrWhiteSpace(cap.CDNPath))
             {
                 if (plh != null)
                 {
                     plh.Visible = true;
                 }
                 hlk.NavigateUrl = $"/Caps/{ep.UrlLabel}";
                 hlk.Text        = $"{ep.Title} Screencaps";
             }
         }
     }
     if (ep.Season == 2)
     {
         var caps = EpCapsList.S2List.Where(e => e.UrlLabel == ep.UrlLabel);
         if (caps.Count() > 0)
         {
             EpisodeTitle cap = caps.Single();
             if (!String.IsNullOrWhiteSpace(cap.CDNPath))
             {
                 if (plh != null)
                 {
                     plh.Visible = true;
                 }
                 hlk.NavigateUrl = $"/Caps/{ep.UrlLabel}";
                 hlk.Text        = $"{ep.Title} Screencaps";
             }
         }
     }
     if (ep.Season == 3)
     {
         var caps = EpCapsList.S3List.Where(e => e.UrlLabel == ep.UrlLabel);
         if (caps.Count() > 0)
         {
             EpisodeTitle cap = caps.Single();
             if (!String.IsNullOrWhiteSpace(cap.CDNPath))
             {
                 if (plh != null)
                 {
                     plh.Visible = true;
                 }
                 hlk.NavigateUrl = $"/Caps/{ep.UrlLabel}";
                 hlk.Text        = $"{ep.Title} Screencaps";
             }
         }
     }
     if (ep.Season == 4)
     {
         var caps = EpCapsList.S4List.Where(e => e.UrlLabel == ep.UrlLabel);
         if (caps.Count() > 0)
         {
             EpisodeTitle cap = caps.Single();
             if (!String.IsNullOrWhiteSpace(cap.CDNPath))
             {
                 if (plh != null)
                 {
                     plh.Visible = true;
                 }
                 hlk.NavigateUrl = $"/Caps/{ep.UrlLabel}";
                 hlk.Text        = $"{ep.Title} Screencaps";
             }
         }
     }
 }