Пример #1
0
        public static string GetFolderPathByMPCtitle()
        {
            foreach (var d in Directory.GetDirectories(downloadPath))
            {
                var dirName        = new DirectoryInfo(d).Name;
                var dirNameCleaned = SeriesHelper.GetTitle(dirName);

                var showName = SeriesHelper.GetTitle(new MPC().FindProcessByName().MainWindowTitle);


                if (dirNameCleaned != null && dirNameCleaned.ToLower() == showName
                    ) //TODO sorozat elnevezések ami nem (Title.SeasonEpisode.Coding-Releaser) alakuak nemjók ugye
                {
                    return("egyezik");
                }
            }

            return("");
        }
Пример #2
0
        public static void MoveSubtitleUp(string folderPath, string subFolderName, string filename, int season,
                                          int episode)
        {
            if (Directory.Exists(folderPath + "\\" + subFolderName))
            {
                var           directories = Directory.GetDirectories(folderPath + "\\" + subFolderName);
                DirectoryInfo d;
                FileInfo[]    Subtitles;
                if (directories.Length != 0)
                {
                    d         = new DirectoryInfo(directories[0]);
                    Subtitles = d.GetFiles("*.srt");

                    foreach (var subtitle in Subtitles)
                    {
                        var subtitleSeason  = SeriesHelper.GetSeasonNumber(subtitle.ToString());
                        var subtitleEpisode = SeriesHelper.GetEpisodeNumber(subtitle.ToString());
                        if (subtitleSeason == season && episode == subtitleEpisode)
                        {
                            var subname = SubtitleFetcher.TrimFileName(filename);
                            File.Move(subtitle.FullName, folderPath + "\\" + filename + ".srt");
                        }
                    }
                }
                else
                {
                    d         = new DirectoryInfo(folderPath + "\\" + subFolderName);
                    Subtitles = d.GetFiles("*.srt");

                    foreach (var subtitle in Subtitles)
                    {
                        var subtitleSeason  = SeriesHelper.GetSeasonNumber(subtitle.ToString());
                        var subtitleEpisode = SeriesHelper.GetEpisodeNumber(subtitle.ToString());
                        if (subtitleSeason == season && episode == subtitleEpisode)
                        {
                            var subname = SubtitleFetcher.TrimFileName(filename);
                            File.Move(subtitle.FullName, folderPath + "\\" + filename + ".srt");
                        }
                    }
                }
            }
        }
Пример #3
0
        public static bool IsThereSubtitles(string folderPath, string showName, int episodeNum, int seasonNum)
        {
            showName = SubtitleFetcher.TrimFileName(showName).ToLower();
            var fileArray = Directory.GetFiles(folderPath, "*.srt");

            foreach (var file1 in fileArray)
            {
                var file = SubtitleFetcher.TrimFileName(file1).ToLower();
                var downloadedSubSeason  = SeriesHelper.GetSeasonNumber(file);
                var downloadedSubEpisode = SeriesHelper.GetEpisodeNumber(file);
                var downloadedSubName    = SeriesHelper.GetTitle(file);
                if (downloadedSubSeason == seasonNum && downloadedSubEpisode == episodeNum &&
                    downloadedSubName == showName)
                {
                    return(true);
                }
            }

            return(false);
        }
Пример #4
0
        private async void MniTvdbSearch_Click(object sender, EventArgs e)
        {
            var folder     = tvwFolder.SelectedNode.Tag.ToString();
            var seriesName = new DirectoryInfo(folder).Name;

            using (var search = new SearchForm(_tvdb, seriesName))
            {
                if (search.ShowDialog() == DialogResult.OK)
                {
                    //create files
                    await SeriesHelper.GetSeriesInfo(_tvdb, folder, search.TvdbId, false);

                    //override selected poster
                    var posterFile = Path.Combine(folder, "folder.jpg");
                    var image      = ImageHelper.ReduceImageSize(search.Poster);
                    File.WriteAllBytes(posterFile, image);
                    LoadAllFiles(folder);

                    tvwFolder.SelectedNode.ImageKey         = HAS_ID_KEY;
                    tvwFolder.SelectedNode.SelectedImageKey = HAS_ID_KEY;
                }
            }
        }
Пример #5
0
        public async Task <bool> RecognizeMedia(Process playerProcess)
        {
            var name = SeriesHelper.GetTitle(playerProcess.MainWindowTitle);
            var MediaExistInMongo = await SeriesHelper.Parse(name);

            switch (MediaExistInMongo)
            {
            case -1:
                return(false);    //EKKOR NINCS ILYEN SOROZAT

            case 1:
                //var s = await SeriesHelper.GetShow(name);

                var imr = new InternalMarkRequest
                {
                    ShowName      = name,
                    SeasonNumber  = SeriesHelper.GetSeasonNumber(playerProcess.MainWindowTitle),
                    EpisodeNumber = SeriesHelper.GetEpisodeNumber(playerProcess.MainWindowTitle)
                };
                await SeriesHelper.MarkRequest(imr);

                break;

            case 2:
            case 3:
                await SeriesHelper.ImportRequest(name);

                break;

            case -2:
                return(false);    //EKKOR REQUEST HIBA VOLT

            default: return(false);
            }
            return(false);
        }
Пример #6
0
        public async void Initial()
        {
            string playUrl = await SeriesHelper.GetPlayURL(url, num, PlayType.m3u8);

            mediaHnaju.Source = new Uri(playUrl);
        }
Пример #7
0
        public static bool FindForExactMatch(List <HtmlNode> subtitlesHtmlList, SubtitleModel subtitleModel, string url,
                                             string folderPath, string filename)
        {
            //S01-02 nélkül keresünk

            if (Directory.Exists(folderPath + "\\" + subFolderName))
            {
                MoveSubtitleUp(folderPath, subFolderName, filename, subtitleModel.SeasonNumber,
                               subtitleModel.EpisodeNumber);
                return(true);
            }

            CheckIfSingleSubAlreadyDownloaded(folderPath, filename);

            var magyarXPath   = "//div[@class=\'magyar\']";
            var originalXPath = "//div[@class=\'eredeti\']";
            var downloadXPath = "//td[@align=\'center\']/a[@href]";
            var htmlDocument  = new HtmlDocument();

            foreach (var subtitleHtml in subtitlesHtmlList)
            {
                htmlDocument.LoadHtml(subtitleHtml.InnerHtml);

                var magyarNode   = htmlDocument.DocumentNode.SelectSingleNode(magyarXPath);
                var originalNode = htmlDocument.DocumentNode.SelectSingleNode(originalXPath);

                var EpisodeFromFeliratokInfo = string.Empty;
                var SeasonFromFeliratokInfo  = string.Empty;

                //A felsőben csak egy kötőjel, megnézi a SOROZATxEPIZÓD stílust, és a leírásos (Season X) stílust is
                if (magyarNode.InnerText == "-")
                {
                    EpisodeFromFeliratokInfo = SeriesHelper.GetEpisodeFromFeliratokInfo1x2(originalNode.InnerText);
                    SeasonFromFeliratokInfo  = SeriesHelper.GetSeasonFromFeliratokInfo1x2(originalNode.InnerText);

                    if (EpisodeFromFeliratokInfo.Length != 0 && SeasonFromFeliratokInfo.Length != 0 &&
                        CheckMatching(subtitleModel, SeasonFromFeliratokInfo, EpisodeFromFeliratokInfo, originalNode))
                    {
                        return(Download(htmlDocument, downloadXPath, url, folderPath, filename, subtitleModel, true));
                    }
                    if (SeasonFromFeliratokInfo.Length == 0)
                    {
                        EpisodeFromFeliratokInfo =
                            subtitleModel.EpisodeNumber.ToString(); //beállítom, hogy a check ne dobjon hibát
                        SeasonFromFeliratokInfo =
                            SeriesHelper.GetSeasonFromFeliratokInfoThird(originalNode.InnerText).ToString();
                        if (SeasonFromFeliratokInfo.Length != 0 && CheckMatching(subtitleModel, SeasonFromFeliratokInfo,
                                                                                 EpisodeFromFeliratokInfo, originalNode))
                        {
                            return(Download(htmlDocument, downloadXPath, url, folderPath, filename, subtitleModel,
                                            false));
                        }
                    }
                }

                //Évadpakk
                //Ekkor van sima neve(felsőben), ezért ráapplikálom a (8. évad) stílust a felsőre,
                //az alsóra meg a (Season 8) félét ha nincs a felsőben találat

                SeasonFromFeliratokInfo = SeriesHelper.GetSeasonFromFeliratokInfoEvad(magyarNode.InnerText).ToString();

                if (int.Parse(SeasonFromFeliratokInfo) != -1)
                {
                    EpisodeFromFeliratokInfo =
                        subtitleModel.EpisodeNumber.ToString(); //beállítom, hogy a check ne dobjon hibát
                    var seasonOnSite = SeriesHelper.GetSeasonFromFeliratokInfoThird(originalNode.InnerText);
                    if (seasonOnSite == subtitleModel.SeasonNumber && CheckMatching(subtitleModel,
                                                                                    SeasonFromFeliratokInfo, EpisodeFromFeliratokInfo, originalNode))
                    {
                        return(Download(htmlDocument, downloadXPath, url, folderPath, filename, subtitleModel, false));
                    }
                }
                else
                {
                    SeasonFromFeliratokInfo = SeriesHelper.GetSeasonFromFeliratokInfoThird(originalNode.InnerText)
                                              .ToString();

                    if (int.Parse(SeasonFromFeliratokInfo) != -1)
                    {
                        EpisodeFromFeliratokInfo =
                            subtitleModel.EpisodeNumber.ToString(); //beállítom, hogy a check ne dobjon hibát
                        if (CheckMatching(subtitleModel, SeasonFromFeliratokInfo, EpisodeFromFeliratokInfo,
                                          originalNode))
                        {
                            return(Download(htmlDocument, downloadXPath, url, folderPath, filename, subtitleModel,
                                            false));
                        }
                    }
                }

                //PONTOS EGYEZÉS
                if (EpisodeFromFeliratokInfo.Length == 0 || SeasonFromFeliratokInfo.Length == 0 ||
                    SeasonFromFeliratokInfo.Length == -1)
                {
                    EpisodeFromFeliratokInfo = SeriesHelper.GetEpisodeFromFeliratokInfo1x2(originalNode.InnerText);
                    SeasonFromFeliratokInfo  = SeriesHelper.GetSeasonFromFeliratokInfo1x2(originalNode.InnerText);

                    if (SeasonFromFeliratokInfo.Length == 0)
                    {
                        EpisodeFromFeliratokInfo = subtitleModel.EpisodeNumber.ToString();
                        SeasonFromFeliratokInfo  = SeriesHelper.GetSeasonFromFeliratokInfoThird(originalNode.InnerText)
                                                   .ToString();
                    }

                    if (CheckMatching(subtitleModel, SeasonFromFeliratokInfo, EpisodeFromFeliratokInfo, originalNode))
                    {
                        return(Download(htmlDocument, downloadXPath, url, folderPath, filename, subtitleModel, true));
                    }
                }
            }

            return(false);
        }
Пример #8
0
        //- #OnLoad -//
        protected override void OnLoad(EventArgs e)
        {
            List <BlogEntry> blogEntryList = this.DataSource;

            if (this.AccessType != AccessType.Index)
            {
                //+ were there any entries at all?
                if (blogEntryList == null || blogEntryList.Count < 1)
                {
                    rptPosts.Visible         = false;
                    phNoEntries.Visible      = true;
                    litNoEntriesMessage.Text = BlogSection.GetConfigSection().Display.BlankMessage;
                }
                else
                {
                    rptPosts.DataSource = blogEntryList.Select(p => new
                    {
                        Url                  = Themelia.Web.WebDomain.GetUrl() + Themelia.Web.UrlCleaner.FixWebPathHead(p.MappingNameList.First()), // BlogEntryHelper.BuildBlogEntryLink(p.PostDateTime, p.MappingNameList.First(), Themelia.Web.WebDomain.Current),
                        Content              = this.CodeParserSeries.ParseCode(p.Content),
                        Title                = p.Title,
                        AuthorList           = p.AuthorList,
                        AllowCommentStatus   = p.AllowCommentStatus,
                        CommentList          = p.CommentList,
                        Guid                 = p.Guid,
                        LabelList            = p.LabelList,
                        AuthorSeries         = SeriesHelper.GetBlogEntryAuthorSeries(p),
                        LabelSeries          = SeriesHelper.GetBlogEntryLabelSeries(p),
                        ViewableCommentCount = p.CommentList != null ? p.CommentList.Count : 0,
                        DateTimeString       = String.Format("{0}, {1} {2}, {3}", p.PostDateTime.DayOfWeek, p.PostDateTime.ToString("MMMM"), p.PostDateTime.Day, p.PostDateTime.Year),
                        DateTimeDisplay      = String.Format("{0}/{1}/{2} {3}", p.PostDateTime.Month, p.PostDateTime.Day, p.PostDateTime.Year, p.PostDateTime.ToShortTimeString())
                    });
                    rptPosts.DataBind();
                    //+
                    if (this.AccessType == AccessType.Link && this.SupportCommenting)
                    {
                        BlogEntry blogEntry = blogEntryList[0];
                        if (blogEntry.AllowCommentStatus == AllowCommentStatus.Disabled)
                        {
                            mvCommentContent.SetActiveView(vCommentsDisabled);
                        }
                        else
                        {
                            mvCommentContent.SetActiveView(vShowComments);
                            List <Comment> commentList = CommentAgent.GetCommentList(this.BlogEntryGuid, false);
                            if (commentList.Count > 0)
                            {
                                htmlCommentListHeader.Visible = true;
                                litCommentCount.Text          = commentList.Count.ToString();
                            }
                            rptComments.DataSource = commentList;
                            rptComments.DataBind();
                            //+
                            CommentInputBase commentInput = vCommentForm.FindControl("CommentInput") as CommentInputBase;
                            if (commentInput != null)
                            {
                                HiddenField hfBlogEntryGuid = commentInput.FindControl("hfBlogEntryGuid") as HiddenField;
                                if (hfBlogEntryGuid != null)
                                {
                                    hfBlogEntryGuid.Value = this.BlogEntryGuid;
                                }
                            }
                            //+
                            if (blogEntry.AllowCommentStatus == AllowCommentStatus.Closed)
                            {
                                mvCommentInput.SetActiveView(vCommentClosed);
                            }
                            else
                            {
                                mvCommentInput.SetActiveView(vCommentForm);
                            }
                        }
                    }
                }
            }
            //+
            SetPageTitle();
            //+
            base.OnLoad(e);
        }
Пример #9
0
 //+
 //- #OnPreRender -//
 protected override void OnPreRender(EventArgs e)
 {
     Minima.Service.BlogEntry blogEntry = null;
     if (!String.IsNullOrEmpty(this.BlogEntryGuid))
     {
         blogEntry = BlogAgent.GetSingleBlogEntry(this.BlogEntryGuid, this.IgnoreBlogEntryFooter);
     }
     else
     {
         String blogGuid = this.BlogGuid;
         if (String.IsNullOrEmpty(blogGuid))
         {
             blogGuid = Themelia.Web.HttpData.GetScopedItem <String>(Info.Scope, Info.BlogGuid);
         }
         //+
         if (!String.IsNullOrEmpty(this.Link))
         {
             blogEntry = BlogAgent.GetSingleBlogEntryByLink(blogGuid, this.Link, this.IgnoreBlogEntryFooter);
         }
     }
     if (blogEntry != null)
     {
         String   labelSeries = SeriesHelper.GetBlogEntryLabelSeries(blogEntry);
         Template template    = DataTemplateTemplateFactory.CreatePostTemplate(false, this.HidePostDateTime, this.ShowAuthorSeries, this.ShowLabelSeries, labelSeries, true, false, Minima.Service.AllowCommentStatus.Disabled, false, String.Empty);
         String   output      = template.Interpolate(new Map(
                                                         new MapEntry("$Title$", blogEntry.Title),
                                                         new MapEntry("$DateTimeString$", String.Format("{0}, {1} {2}, {3}", blogEntry.PostDateTime.DayOfWeek, blogEntry.PostDateTime.ToString("MMMM"), blogEntry.PostDateTime.Day, blogEntry.PostDateTime.Year)),
                                                         new MapEntry("$Content$", blogEntry.Content),
                                                         new MapEntry("$AuthorSeries$", SeriesHelper.GetBlogEntryAuthorSeries(blogEntry)),
                                                         new MapEntry("$DateTimeDisplay$", String.Format("{0}/{1}/{2} {3}", blogEntry.PostDateTime.Month, blogEntry.PostDateTime.Day, blogEntry.PostDateTime.Year, blogEntry.PostDateTime.ToShortTimeString())),
                                                         new MapEntry("$LabelSeries$", labelSeries)
                                                         )
                                                     );
         output = this.CodeParserSeries.ParseCode(output);
         //+
         this.Controls.Add(new System.Web.UI.WebControls.Literal
         {
             Text = output
         });
         //+
         HttpData.SetScopedItem("MinimaBlogEntry", "Title", blogEntry.Title);
     }
     //+
     base.OnPreRender(e);
 }
Пример #10
0
 public void Series()
 {
     var trans = SeriesHelper.GetSeries("18");
 }
Пример #11
0
 public bool IsItASeries(string title)
 {
     return(SeriesHelper.DoesItContainSeasonAndEpisode(title));
 }