예제 #1
0
        private void tbx_AnidbID_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
        {
            AnidbResult ar = GroupHandler.SearchAniDBByID(anititles, tbx_AnidbID.Text.Trim());

            if (ar != null)
            {
                RichTextBoxHepler.SetText(rtb_GroupMembers, ar.keywords);
                RichTextBoxHepler.SetText(rtb_Presenter, ar.presenter);
            }
            else
            {
                RichTextBoxHepler.SetText(rtb_Presenter, "");
            }
        }
예제 #2
0
        private void lView_TargetList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (lView_TargetList.SelectedItems.Count > 0)
            {
                btn_Remove_Item.IsEnabled = true;
                if (lView_TargetList.SelectedItems.Count == 1)
                {
                    tbx_TitleKeyword.Text = string.IsNullOrEmpty(((ItemToRename)lView_TargetList.SelectedItems[0]).AlterKey) ?
                                            GroupHandler.GetTitleKeyword(Path.GetFileNameWithoutExtension(((ItemToRename)lView_TargetList.SelectedItems[0]).Before)) : ((ItemToRename)lView_TargetList.SelectedItems[0]).AlterKey;

                    OriginalSearchWord = string.IsNullOrEmpty(tbx_TitleKeyword.Text) ? ((ItemToRename)lView_TargetList.SelectedItems[0]).Before : tbx_TitleKeyword.Text;
                    if (string.IsNullOrEmpty(tbx_TitleKeyword.Text))
                    {
                        tbx_TitleKeyword.Text = OriginalSearchWord;
                    }
                    AnidbResult ar = SearchMatchFromBothSources(OriginalSearchWord);
                    if (ar != null)
                    {
                        if (ar.aid == "xxx")
                        {
                            Group presetgroup = groups.Where(x => x.Presenter == ar.presenter).FirstOrDefault();
                            if (presetgroup != null)
                            {
                                lbl_GroupsMatch.Visibility = Visibility.Visible;
                                lView_Groups.SelectedItem  = presetgroup;
                                lView_Groups.Items.Refresh();
                                lView_Groups.ScrollIntoView(presetgroup);
                            }
                        }
                        else
                        {
                            lbl_GroupsMatch.Visibility = Visibility.Hidden;
                            tbx_AnidbID.Text           = ar.aid;
                        }
                        tbx_Presenter.Text    = ar.presenter;
                        tbx_GroupMembers.Text = ar.keywords;
                    }
                    else
                    {
                        tbx_Presenter.Text    = "";
                        tbx_GroupMembers.Text = "";
                    }
                }
            }
            else
            {
                btn_Remove_Item.IsEnabled = false;
            }
        }
예제 #3
0
        private void tbx_AnidbID_KeyUp(object sender, KeyEventArgs e)
        {
            AnidbResult ar = GroupHandler.SearchAniDBByID(anititles, tbx_AnidbID.Text.Trim());

            if (ar != null)
            {
                tbx_GroupMembers.Text       = ar.keywords;
                tbx_Presenter.Text          = ar.presenter;
                btn_SetKeywordKey.IsEnabled = true;
            }
            else
            {
                tbx_Presenter.Text          = "";
                btn_SetKeywordKey.IsEnabled = false;
            }
        }
예제 #4
0
        private void tbx_TitleKeyword_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
        {
            AnidbResult ar = GroupHandler.SearchAniDB(anititles, tbx_TitleKeyword.Text.Trim());

            if (ar != null)
            {
                tbx_AnidbID.Text = ar.aid;
                RichTextBoxHepler.SetText(rtb_GroupMembers, ar.keywords);
                //if (string.IsNullOrEmpty(RichTextBoxHepler.GetText(rtb_Presenter)))
                //{
                RichTextBoxHepler.SetText(rtb_Presenter, ar.presenter);
                //}
            }
            else
            {
                RichTextBoxHepler.SetText(rtb_Presenter, "");
            }
        }
예제 #5
0
 public static AnidbResult SearchGroups(ObservableCollection <Objects.Group> groups, string keyword, bool idsearch)
 {
     Objects.Group gr = new Objects.Group();
     if (!string.IsNullOrEmpty(keyword))
     {
         keyword = keyword.ToLowerInvariant();
         if (idsearch)
         {
             gr = groups.Where(x => x.Enable && x.AnidbId == keyword.Replace("anidb-", "")).FirstOrDefault();
         }
         else
         {
             string prepped_keyword = Utilities.Prepare_Keyword(keyword);
             // Presenter full match
             gr = groups.Where(x => x.Enable && x.Presenter.ToLowerInvariant().Contains(prepped_keyword)).FirstOrDefault();
             // Presenter StartWith
             if (gr == null)
             {
                 gr = groups.Where(x => x.Enable && x.Presenter.ToLowerInvariant().StartsWith(prepped_keyword.Replace("]", ""))).FirstOrDefault();
             }
             // Presenter partial match
             if (gr == null)
             {
                 gr = groups.Where(x => x.Enable && x.Presenter.ToLowerInvariant().Contains(keyword)).FirstOrDefault();
             }
             // Members partial match
             if (gr == null)
             {
                 gr = groups.Where(x => x.Enable && x.Members.ToLowerInvariant().Contains(keyword)).FirstOrDefault();
             }
         }
         if (gr != null)
         {
             AnidbResult ar = new AnidbResult
             {
                 aid       = "xxx",
                 presenter = gr.Presenter,
                 keywords  = gr.Members
             };
             return(ar);
         }
     }
     return(null);
 }
예제 #6
0
        public static AnidbResult SearchAniDB(ObservableCollection <AnimeTitle> anititles, string keyword, bool idsearch)
        {
            int aid = 0;

            if (idsearch)
            {
                aid = anititles.Where(x => x.aid == Convert.ToInt32(keyword.Replace("anidb-", ""))).Select(x => x.aid).FirstOrDefault();
            }
            else
            {
                aid = anititles.Where(x => x.title.ToLowerInvariant() == keyword.ToLowerInvariant()).Select(x => x.aid).FirstOrDefault();
                if (aid < 1)
                {
                    aid = anititles.Where(x => x.title.ToLowerInvariant().StartsWith(keyword.ToLowerInvariant())).Select(x => x.aid).FirstOrDefault();
                    if (aid < 1)
                    {
                        aid = anititles.Where(x => x.title.ToLowerInvariant().Contains(keyword.ToLowerInvariant())).Select(x => x.aid).FirstOrDefault();
                    }
                }
            }
            string keywords  = "";
            string presenter = "";

            if (aid > 0)
            {
                string[] candidates = anititles.Where(x => x.aid == aid).Select(x => x.title).Distinct(StringComparer.CurrentCultureIgnoreCase).ToArray();
                keywords = string.Join(",", candidates);
                string[] Pcandidates = anititles.Where(x => x.aid == aid && x.type != "short").Select(x => x.title).Distinct(StringComparer.CurrentCultureIgnoreCase).ToArray();
                //Array.Sort(Pcandidates, (x, y) => x.Length.CompareTo(y.Length));
                Array.Sort(Pcandidates, (x, y) => String.Compare(x, y));
                presenter = string.Join(",", Pcandidates);
                if (!string.IsNullOrEmpty(keyword))
                {
                    AnidbResult ar = new AnidbResult
                    {
                        aid       = aid.ToString(),
                        presenter = presenter,
                        keywords  = keywords
                    };
                    return(ar);
                }
            }
            return(null);
        }
예제 #7
0
        private void lView_TargetList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (lView_TargetList.SelectedItems.Count > 0)
            {
                btn_Remove_Item.IsEnabled = true;
                if (lView_TargetList.SelectedItems.Count == 1)
                {
                    tbx_TitleKeyword.Text = string.IsNullOrEmpty(((ItemToRename)lView_TargetList.SelectedItems[0]).AlterKey) ?
                                            GroupHandler.GetTitleKeyword(((ItemToRename)lView_TargetList.SelectedItems[0]).Before) : ((ItemToRename)lView_TargetList.SelectedItems[0]).AlterKey;

                    OriginalSearchWord = tbx_TitleKeyword.Text;
                    AnidbResult ar = GroupHandler.SearchAniDB(anititles, tbx_TitleKeyword.Text);
                    if (ar != null)
                    {
                        tbx_AnidbID.Text = ar.aid;
                        RichTextBoxHepler.SetText(rtb_Presenter, ar.presenter);
                        RichTextBoxHepler.SetText(rtb_GroupMembers, ar.keywords);
                    }
                    else
                    {
                        Group presetgroup = groups.Where(x => x.Members.ToLowerInvariant().Contains(tbx_TitleKeyword.Text.ToLowerInvariant())).FirstOrDefault();
                        if (presetgroup != null)
                        {
                            RichTextBoxHepler.SetText(rtb_Presenter, presetgroup.Presenter);
                            RichTextBoxHepler.SetText(rtb_GroupMembers, presetgroup.Members);
                            lView_Groups.SelectedItem = presetgroup;
                            lView_Groups.Items.Refresh();
                            lView_Groups.ScrollIntoView(presetgroup);
                        }
                        else
                        {
                            RichTextBoxHepler.SetText(rtb_Presenter, "");
                            RichTextBoxHepler.SetText(rtb_GroupMembers, "");
                        }
                    }
                    //lView_Groups.SelectedItem = null;
                }
            }
            else
            {
                btn_Remove_Item.IsEnabled = false;
            }
        }
예제 #8
0
        public static AnidbResult SearchAniDBByID(ObservableCollection <AnimeTitle> anititles, string aid)
        {
            AnidbResult ar        = new AnidbResult();
            string      keywords  = "";
            string      presenter = "";

            if (!string.IsNullOrEmpty(aid))
            {
                string[] candidates = anititles.Where(x => x.aid == Convert.ToInt32(aid)).Select(x => x.title).Distinct(StringComparer.CurrentCultureIgnoreCase).ToArray();
                keywords = string.Join(",", candidates);
                string[] Pcandidates = anititles.Where(x => x.aid == Convert.ToInt32(aid) && x.type != "short").Select(x => x.title).Distinct(StringComparer.CurrentCultureIgnoreCase).ToArray();
                presenter    = string.Join(",", Pcandidates);
                ar.aid       = aid;
                ar.presenter = presenter;
                ar.keywords  = keywords;
                return(ar);
            }
            return(null);
        }
예제 #9
0
        private void tbx_TitleKeyword_KeyUp(object sender, KeyEventArgs e)
        {
            if (e != null)
            {
                if (e.Key == Key.Escape)
                {
                    tbx_TitleKeyword.Text = string.Empty;
                    return;
                }
            }

            AnidbResult ar = SearchMatchFromBothSources(tbx_TitleKeyword.Text);

            if (ar != null)
            {
                if (ar.aid == "xxx")
                {
                    Group presetgroup = groups.Where(x => x.Presenter == ar.presenter).FirstOrDefault();
                    if (presetgroup != null)
                    {
                        lbl_GroupsMatch.Visibility = Visibility.Visible;
                        lView_Groups.SelectedItem  = presetgroup;
                        lView_Groups.Items.Refresh();
                        lView_Groups.ScrollIntoView(presetgroup);
                    }
                }
                else
                {
                    lbl_GroupsMatch.Visibility = Visibility.Hidden;
                    tbx_AnidbID.Text           = ar.aid;
                }
                tbx_GroupMembers.Text = ar.keywords;
                tbx_Presenter.Text    = ar.presenter;
            }
            else
            {
                lbl_GroupsMatch.Visibility = Visibility.Hidden;
                tbx_Presenter.Text         = "";
            }
        }
예제 #10
0
        public static AnidbResult SearchAniDB(ObservableCollection <AnimeTitle> anititles, string keyword)
        {
            AnidbResult ar        = new AnidbResult();
            int         aid       = anititles.Where(x => x.title.ToLowerInvariant().StartsWith(keyword.ToLowerInvariant())).Select(x => x.aid).FirstOrDefault();
            string      keywords  = "";
            string      presenter = "";

            if (aid > 0)
            {
                string[] candidates = anititles.Where(x => x.aid == aid).Select(x => x.title).Distinct(StringComparer.CurrentCultureIgnoreCase).ToArray();
                keywords = string.Join(",", candidates);
                string[] Pcandidates = anititles.Where(x => x.aid == aid && x.type != "short").Select(x => x.title).Distinct(StringComparer.CurrentCultureIgnoreCase).ToArray();
                presenter = string.Join(",", Pcandidates);
                if (!string.IsNullOrEmpty(keyword))
                {
                    ar.aid       = aid.ToString();
                    ar.presenter = presenter;
                    ar.keywords  = keywords;
                    return(ar);
                }
            }
            return(null);
        }
예제 #11
0
        private AnidbResult SearchMatchFromBothSources(string keyword)
        {
            AnidbResult ar = new AnidbResult();

            if (!string.IsNullOrEmpty(keyword))
            {
                if (keyword.Trim().ToLowerInvariant().StartsWith("anidb-") && keyword.Trim().Length > 6)
                {
                    ar = GroupHandler.SearchGroups(groups, keyword.Trim(), true);
                }
                else
                {
                    ar = GroupHandler.SearchGroups(groups, keyword.Trim(), false);
                }
                if (ar != null)
                {
                    return(ar);
                }
                else
                {
                    if (keyword.Trim().ToLowerInvariant().StartsWith("anidb-") && keyword.Trim().Length > 6)
                    {
                        ar = GroupHandler.SearchAniDB(anititles, keyword.Trim(), true);
                    }
                    else
                    {
                        ar = GroupHandler.SearchAniDB(anititles, keyword.Trim(), false);
                    }
                    if (ar != null)
                    {
                        return(ar);
                    }
                }
            }
            return(null);
        }