!m pls added, thanks to Keskitariv for the suggestion
This commit is contained in:
		| @@ -158,9 +158,35 @@ namespace NadekoBot.Classes | ||||
|                 return conn.Table<T>().Where(p).ToList().OrderBy(x => r.Next()).FirstOrDefault(); | ||||
|             } | ||||
|         } | ||||
|         /// <summary> | ||||
|         ///  | ||||
|         /// </summary> | ||||
|         /// <param name="num">Page number (0+)</param> | ||||
|         /// <returns></returns> | ||||
|         internal List<PlaylistData> GetPlaylistData(int num) | ||||
|         { | ||||
|             using (var conn = new SQLiteConnection(FilePath)) | ||||
|             { | ||||
|                 return conn.Query<PlaylistData>( | ||||
| @"SELECT mp.Name as 'Name',mp.Id as 'Id', mp.CreatorName as 'Creator', Count(*) as 'SongCnt' FROM MusicPlaylist as mp | ||||
| INNER JOIN PlaylistSongInfo as psi | ||||
| ON mp.Id = psi.PlaylistId | ||||
| Group BY mp.Name | ||||
| Order By mp.DateAdded desc | ||||
| Limit 20 OFFSET ?", num * 20); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| public class PlaylistData | ||||
| { | ||||
|     public string Name { get; set; } | ||||
|     public int Id { get; set; } | ||||
|     public string Creator { get; set; } | ||||
|     public int SongCnt { get; set; } | ||||
| } | ||||
|  | ||||
| public static class Queries | ||||
| { | ||||
|     public static string TransactionTriggerQuery = @" | ||||
|   | ||||
| @@ -219,9 +219,10 @@ namespace NadekoBot | ||||
|                         DateAdded = DateTime.Now | ||||
|                     }); | ||||
|                 } | ||||
|                 catch | ||||
|                 catch (Exception ex) | ||||
|                 { | ||||
|                     Console.WriteLine("Error in ran command DB write."); | ||||
|                     Console.WriteLine("Probably unimportant error in ran command DB write."); | ||||
|                     Console.WriteLine(ex); | ||||
|                 } | ||||
|             }).ConfigureAwait(false); | ||||
|         } | ||||
|   | ||||
| @@ -488,16 +488,6 @@ namespace NadekoBot.Modules.Music | ||||
|  | ||||
|                     }); | ||||
|  | ||||
|                 //cgb.CreateCommand("info") | ||||
|                 //    .Description("Prints music info (queued/finished/playing) only to this channel") | ||||
|                 //    .Do(async e => | ||||
|                 //    { | ||||
|                 //        MusicPlayer musicPlayer; | ||||
|                 //        if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer)) | ||||
|                 //            return; | ||||
|                 //        musicPlayer | ||||
|                 //    }); | ||||
|  | ||||
|                 cgb.CreateCommand("load") | ||||
|                     .Description("Loads a playlist under a certain name. \n**Usage**: `!m load classical-1`") | ||||
|                     .Parameter("name", ParameterType.Unparsed) | ||||
| @@ -553,6 +543,23 @@ namespace NadekoBot.Modules.Music | ||||
|                         } | ||||
|                     }); | ||||
|  | ||||
|                 cgb.CreateCommand("playlists") | ||||
|                     .Alias("pls") | ||||
|                     .Description("Lists all playlists. Paginated. 20 per page. Default page is 0.\n**Usage**:`!m pls 1`") | ||||
|                     .Parameter("num", ParameterType.Optional) | ||||
|                     .Do(e => | ||||
|                     { | ||||
|                         int num = 0; | ||||
|                         int.TryParse(e.GetArg("num"), out num); | ||||
|                         if (num < 0) | ||||
|                             return; | ||||
|                         var result = DbHandler.Instance.GetPlaylistData(num); | ||||
|                         if (result.Count == 0) | ||||
|                             e.Channel.SendMessage($"`No saved playlists found on page {num}`"); | ||||
|                         else | ||||
|                             e.Channel.SendMessage($"```js\n--- List of saved playlists ---\n\n" + string.Join("\n", result.Select(r => $"'{r.Name}-{r.Id}' by {r.Creator} ({r.SongCnt} songs)")) + $"\n\n        --- Page {num} ---```"); | ||||
|                     }); | ||||
|  | ||||
|                 cgb.CreateCommand("goto") | ||||
|                     .Description("Goes to a specific time in seconds in a song.") | ||||
|                     .Parameter("time") | ||||
|   | ||||
		Reference in New Issue
	
	Block a user