Clarified .feedadd errors

This commit is contained in:
Kwoth
2022-10-11 19:14:04 +02:00
parent dc568fe0e2
commit 0469705037
3 changed files with 47 additions and 26 deletions

View File

@@ -32,33 +32,43 @@ public partial class Searches
[UserPerm(GuildPerm.ManageMessages)]
public async Task Feed(string url, [Leftover] ITextChannel channel = null)
{
var success = Uri.TryCreate(url, UriKind.Absolute, out var uri)
&& (uri.Scheme == Uri.UriSchemeHttp || uri.Scheme == Uri.UriSchemeHttps);
if (success)
if (Uri.TryCreate(url, UriKind.Absolute, out var uri)
&& (uri.Scheme == Uri.UriSchemeHttp || uri.Scheme == Uri.UriSchemeHttps))
{
channel ??= (ITextChannel)ctx.Channel;
try
{
await FeedReader.ReadAsync(url);
}
catch (Exception ex)
{
Log.Information(ex, "Unable to get feeds from that url");
success = false;
}
await ReplyErrorLocalizedAsync(strs.feed_invalid_url);
return;
}
if (success)
channel ??= (ITextChannel)ctx.Channel;
try
{
success = _service.AddFeed(ctx.Guild.Id, channel.Id, url);
if (success)
{
await ReplyConfirmLocalizedAsync(strs.feed_added);
return;
}
await FeedReader.ReadAsync(url);
}
catch (Exception ex)
{
Log.Information(ex, "Unable to get feeds from that url");
await ReplyErrorLocalizedAsync(strs.feed_cant_parse);
return;
}
await ReplyConfirmLocalizedAsync(strs.feed_not_valid);
var result = _service.AddFeed(ctx.Guild.Id, channel.Id, url);
if (result == FeedAddResult.Success)
{
await ReplyConfirmLocalizedAsync(strs.feed_added);
return;
}
if (result == FeedAddResult.Duplicate)
{
await ReplyErrorLocalizedAsync(strs.feed_duplicate);
return;
}
if (result == FeedAddResult.LimitReached)
{
await ReplyErrorLocalizedAsync(strs.feed_limit_reached);
return;
}
}
[Cmd]