Ejemplo n.º 1
0
        static PluginMaimaiSong()
        {
            AddCustomFunc(nameof(ChartRating), (song, input) =>
            {
                if (input is string inputStr)
                {
                    return(inputStr.EqualsAny(song.ChartBasicRating, song.ChartAdvancedRating,
                                              song.ChartExpertRating, song.ChartMasterRating, song.ChartRemasterRating));
                }
                return(false);
            });
            AddCustomFunc(nameof(ChartConstant), (song, input) =>
            {
                if (input is IntervalDoublePair pair)
                {
                    return(SystemExpand.SatisfyAny(pair.IsInInterval, song.ChartBasicConstant,
                                                   song.ChartAdvancedConstant, song.ChartExpertConstant, song.ChartMasterConstant,
                                                   song.ChartRemasterConstant));
                }

                return(false);
            });
            AddCustomComparison(nameof(ChartConstant), isDesc =>
            {
                return((song, maimaiSong) => (song.ChartRemasterConstant ?? song.ChartMasterConstant).CompareToObj(
                           maimaiSong.ChartRemasterConstant ?? maimaiSong.ChartMasterConstant, isDesc));
            });
        }
Ejemplo n.º 2
0
        public override object Default(string name = null)
        {
            if (_kouContext.Set <PluginArcaeaSong>().IsNullOrEmptySet())
            {
                return("曲库为空");                                                       //BUG 更新后无法进行判断是否为空
            }
            if (SystemExpand.All(string.IsNullOrWhiteSpace, name, ChartConstant,
                                 SongName, SongArtist, ChartDesigner, RatingClass, Rating, NotesCount, JacketDesigner, SongLength,
                                 SongBPM))
            {
                return("嗯?");
            }
            if (SongName.IsNullOrWhiteSpace())
            {
                SongName = name;
            }

            List <PluginArcaeaSong> satisfiedSongs = GetSatisfiedSong();

            if (satisfiedSongs.IsNullOrEmptySet())
            {
                return("找不到符合条件的歌曲");
            }

            return(satisfiedSongs.ToAutoPageSetString());
            //else if (satisfiedSongs.Count == 1)
            //{
            //    return satisfiedSongs.First().ToString(FormatType.Detail);
            //}
            //else
            //{
            //    if (Count == -1) Count = 10;
            //    Count = Count.LimitInRange(1, 20);
            //    string result = "";
            //    if (All)
            //    {
            //        Count = Count.LimitInRange(7);
            //        for (int i = 0; i < Count && i < satisfiedSongs.Count; i++)
            //        {
            //            result += $"-------{AutoFormatSong(satisfiedSongs[i])}\n";
            //        }
            //    }
            //    else
            //    {
            //        for (int i = 0; i < Count && i < satisfiedSongs.Count; i++)
            //        {
            //            result += $"{satisfiedSongs[i].ToString(FormatType.Brief)}\n";
            //        }
            //    }
            //    result += satisfiedSongs.Count - Count > 0 ? $"还有{satisfiedSongs.Count - Count}个结果..." : null;
            //    return result.Trim();
            //}
        }