fix: all .feed overloads should now work, closes #433

This commit is contained in:
Kwoth
2024-06-13 19:03:14 +00:00
parent 7f64d2661f
commit ef4b1c8868

View File

@@ -1,5 +1,4 @@
#nullable disable using CodeHollow.FeedReader;
using CodeHollow.FeedReader;
using NadekoBot.Modules.Searches.Services; using NadekoBot.Modules.Searches.Services;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
@@ -17,19 +16,21 @@ public partial class Searches
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[UserPerm(GuildPerm.ManageMessages)] [UserPerm(GuildPerm.ManageMessages)]
[Priority(1)] [Priority(1)]
public Task YtUploadNotif(string url, [Leftover] string message = null) public Task YtUploadNotif(string url, [Leftover] string? message = null)
=> YtUploadNotif(url, null, message); => YtUploadNotif(url, null, message);
[Cmd] [Cmd]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[UserPerm(GuildPerm.ManageMessages)] [UserPerm(GuildPerm.ManageMessages)]
[Priority(2)] [Priority(2)]
public Task YtUploadNotif(string url, ITextChannel channel = null, [Leftover] string message = null) public Task YtUploadNotif(string url, ITextChannel? channel = null, [Leftover] string? message = null)
{ {
var m = _ytChannelRegex.Match(url); var m = _ytChannelRegex.Match(url);
if (!m.Success) if (!m.Success)
return Response().Error(strs.invalid_input).SendAsync(); return Response().Error(strs.invalid_input).SendAsync();
channel ??= ctx.Channel as ITextChannel;
if (!((IGuildUser)ctx.User).GetPermissions(channel).MentionEveryone) if (!((IGuildUser)ctx.User).GetPermissions(channel).MentionEveryone)
message = message?.SanitizeAllMentions(); message = message?.SanitizeAllMentions();
@@ -42,7 +43,7 @@ public partial class Searches
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[UserPerm(GuildPerm.ManageMessages)] [UserPerm(GuildPerm.ManageMessages)]
[Priority(0)] [Priority(0)]
public Task Feed(string url, [Leftover] string message = null) public Task Feed(string url, [Leftover] string? message = null)
=> Feed(url, null, message); => Feed(url, null, message);
@@ -50,7 +51,7 @@ public partial class Searches
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[UserPerm(GuildPerm.ManageMessages)] [UserPerm(GuildPerm.ManageMessages)]
[Priority(1)] [Priority(1)]
public async Task Feed(string url, ITextChannel channel = null, [Leftover] string message = null) public async Task Feed(string url, ITextChannel? channel = null, [Leftover] string? message = null)
{ {
if (!Uri.TryCreate(url, UriKind.Absolute, out var uri) if (!Uri.TryCreate(url, UriKind.Absolute, out var uri)
|| (uri.Scheme != Uri.UriSchemeHttp && uri.Scheme != Uri.UriSchemeHttps)) || (uri.Scheme != Uri.UriSchemeHttp && uri.Scheme != Uri.UriSchemeHttps))
@@ -59,10 +60,11 @@ public partial class Searches
return; return;
} }
channel ??= (ITextChannel)ctx.Channel;
if (!((IGuildUser)ctx.User).GetPermissions(channel).MentionEveryone) if (!((IGuildUser)ctx.User).GetPermissions(channel).MentionEveryone)
message = message?.SanitizeAllMentions(); message = message?.SanitizeAllMentions();
channel ??= (ITextChannel)ctx.Channel;
try try
{ {
await FeedReader.ReadAsync(url); await FeedReader.ReadAsync(url);