mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-11 01:38:27 -04:00
Added full list of supported languages for .trans command, improved .translangs output
This commit is contained in:
@@ -77,6 +77,19 @@ public partial class Searches
|
|||||||
[Cmd]
|
[Cmd]
|
||||||
[RequireContext(ContextType.Guild)]
|
[RequireContext(ContextType.Guild)]
|
||||||
public async Task Translangs()
|
public async Task Translangs()
|
||||||
=> await ctx.Channel.SendTableAsync(_service.GetLanguages(), str => $"{str,-15}");
|
{
|
||||||
|
var langs = _service.GetLanguages().ToList();
|
||||||
|
|
||||||
|
var eb = _eb.Create()
|
||||||
|
.WithTitle($"Supported {prefix}translate Languages")
|
||||||
|
.WithOkColor();
|
||||||
|
|
||||||
|
foreach (var chunk in langs.Chunk(15))
|
||||||
|
{
|
||||||
|
eb.AddField("", chunk.Join("\n"), isInline: true);
|
||||||
|
}
|
||||||
|
|
||||||
|
await ctx.Channel.EmbedAsync(eb);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -10,142 +10,11 @@ using System.Xml;
|
|||||||
|
|
||||||
namespace NadekoBot.Services;
|
namespace NadekoBot.Services;
|
||||||
|
|
||||||
public class GoogleApiService : IGoogleApiService, INService
|
public sealed partial class GoogleApiService : IGoogleApiService, INService
|
||||||
{
|
{
|
||||||
private static readonly Regex
|
private static readonly Regex
|
||||||
_plRegex = new("(?:youtu\\.be\\/|list=)(?<id>[\\da-zA-Z\\-_]*)", RegexOptions.Compiled);
|
_plRegex = new("(?:youtu\\.be\\/|list=)(?<id>[\\da-zA-Z\\-_]*)", RegexOptions.Compiled);
|
||||||
|
|
||||||
public IReadOnlyDictionary<string, string> Languages { get; } = new Dictionary<string, string>
|
|
||||||
{
|
|
||||||
{ "afrikaans", "af" },
|
|
||||||
{ "albanian", "sq" },
|
|
||||||
{ "arabic", "ar" },
|
|
||||||
{ "armenian", "hy" },
|
|
||||||
{ "azerbaijani", "az" },
|
|
||||||
{ "basque", "eu" },
|
|
||||||
{ "belarusian", "be" },
|
|
||||||
{ "bengali", "bn" },
|
|
||||||
{ "bulgarian", "bg" },
|
|
||||||
{ "catalan", "ca" },
|
|
||||||
{ "chinese", "zh-CN" },
|
|
||||||
{ "chinese-trad", "zh-TW" },
|
|
||||||
{ "croatian", "hr" },
|
|
||||||
{ "czech", "cs" },
|
|
||||||
{ "danish", "da" },
|
|
||||||
{ "dutch", "nl" },
|
|
||||||
{ "english", "en" },
|
|
||||||
{ "esperanto", "eo" },
|
|
||||||
{ "estonian", "et" },
|
|
||||||
{ "filipino", "tl" },
|
|
||||||
{ "finnish", "fi" },
|
|
||||||
{ "french", "fr" },
|
|
||||||
{ "galician", "gl" },
|
|
||||||
{ "german", "de" },
|
|
||||||
{ "georgian", "ka" },
|
|
||||||
{ "greek", "el" },
|
|
||||||
{ "haitian Creole", "ht" },
|
|
||||||
{ "hebrew", "iw" },
|
|
||||||
{ "hindi", "hi" },
|
|
||||||
{ "hungarian", "hu" },
|
|
||||||
{ "icelandic", "is" },
|
|
||||||
{ "indonesian", "id" },
|
|
||||||
{ "irish", "ga" },
|
|
||||||
{ "italian", "it" },
|
|
||||||
{ "japanese", "ja" },
|
|
||||||
{ "korean", "ko" },
|
|
||||||
{ "lao", "lo" },
|
|
||||||
{ "latin", "la" },
|
|
||||||
{ "latvian", "lv" },
|
|
||||||
{ "lithuanian", "lt" },
|
|
||||||
{ "macedonian", "mk" },
|
|
||||||
{ "malay", "ms" },
|
|
||||||
{ "maltese", "mt" },
|
|
||||||
{ "norwegian", "no" },
|
|
||||||
{ "persian", "fa" },
|
|
||||||
{ "polish", "pl" },
|
|
||||||
{ "portuguese", "pt" },
|
|
||||||
{ "romanian", "ro" },
|
|
||||||
{ "russian", "ru" },
|
|
||||||
{ "serbian", "sr" },
|
|
||||||
{ "slovak", "sk" },
|
|
||||||
{ "slovenian", "sl" },
|
|
||||||
{ "spanish", "es" },
|
|
||||||
{ "swahili", "sw" },
|
|
||||||
{ "swedish", "sv" },
|
|
||||||
{ "tamil", "ta" },
|
|
||||||
{ "telugu", "te" },
|
|
||||||
{ "thai", "th" },
|
|
||||||
{ "turkish", "tr" },
|
|
||||||
{ "ukrainian", "uk" },
|
|
||||||
{ "urdu", "ur" },
|
|
||||||
{ "vietnamese", "vi" },
|
|
||||||
{ "welsh", "cy" },
|
|
||||||
{ "yiddish", "yi" },
|
|
||||||
{ "af", "af" },
|
|
||||||
{ "sq", "sq" },
|
|
||||||
{ "ar", "ar" },
|
|
||||||
{ "hy", "hy" },
|
|
||||||
{ "az", "az" },
|
|
||||||
{ "eu", "eu" },
|
|
||||||
{ "be", "be" },
|
|
||||||
{ "bn", "bn" },
|
|
||||||
{ "bg", "bg" },
|
|
||||||
{ "ca", "ca" },
|
|
||||||
{ "zh-tw", "zh-TW" },
|
|
||||||
{ "zh-cn", "zh-CN" },
|
|
||||||
{ "hr", "hr" },
|
|
||||||
{ "cs", "cs" },
|
|
||||||
{ "da", "da" },
|
|
||||||
{ "nl", "nl" },
|
|
||||||
{ "en", "en" },
|
|
||||||
{ "eo", "eo" },
|
|
||||||
{ "et", "et" },
|
|
||||||
{ "tl", "tl" },
|
|
||||||
{ "fi", "fi" },
|
|
||||||
{ "fr", "fr" },
|
|
||||||
{ "gl", "gl" },
|
|
||||||
{ "de", "de" },
|
|
||||||
{ "ka", "ka" },
|
|
||||||
{ "el", "el" },
|
|
||||||
{ "ht", "ht" },
|
|
||||||
{ "iw", "iw" },
|
|
||||||
{ "hi", "hi" },
|
|
||||||
{ "hu", "hu" },
|
|
||||||
{ "is", "is" },
|
|
||||||
{ "id", "id" },
|
|
||||||
{ "ga", "ga" },
|
|
||||||
{ "it", "it" },
|
|
||||||
{ "ja", "ja" },
|
|
||||||
{ "ko", "ko" },
|
|
||||||
{ "lo", "lo" },
|
|
||||||
{ "la", "la" },
|
|
||||||
{ "lv", "lv" },
|
|
||||||
{ "lt", "lt" },
|
|
||||||
{ "mk", "mk" },
|
|
||||||
{ "ms", "ms" },
|
|
||||||
{ "mt", "mt" },
|
|
||||||
{ "no", "no" },
|
|
||||||
{ "fa", "fa" },
|
|
||||||
{ "pl", "pl" },
|
|
||||||
{ "pt", "pt" },
|
|
||||||
{ "ro", "ro" },
|
|
||||||
{ "ru", "ru" },
|
|
||||||
{ "sr", "sr" },
|
|
||||||
{ "sk", "sk" },
|
|
||||||
{ "sl", "sl" },
|
|
||||||
{ "es", "es" },
|
|
||||||
{ "sw", "sw" },
|
|
||||||
{ "sv", "sv" },
|
|
||||||
{ "ta", "ta" },
|
|
||||||
{ "te", "te" },
|
|
||||||
{ "th", "th" },
|
|
||||||
{ "tr", "tr" },
|
|
||||||
{ "uk", "uk" },
|
|
||||||
{ "ur", "ur" },
|
|
||||||
{ "vi", "vi" },
|
|
||||||
{ "cy", "cy" },
|
|
||||||
{ "yi", "yi" }
|
|
||||||
};
|
|
||||||
|
|
||||||
private readonly YouTubeService _yt;
|
private readonly YouTubeService _yt;
|
||||||
private readonly UrlshortenerService _sh;
|
private readonly UrlshortenerService _sh;
|
||||||
@@ -154,7 +23,7 @@ public class GoogleApiService : IGoogleApiService, INService
|
|||||||
private readonly IBotCredsProvider _creds;
|
private readonly IBotCredsProvider _creds;
|
||||||
private readonly IHttpClientFactory _httpFactory;
|
private readonly IHttpClientFactory _httpFactory;
|
||||||
|
|
||||||
public GoogleApiService(IBotCredsProvider creds, IHttpClientFactory factory)
|
public GoogleApiService(IBotCredsProvider creds, IHttpClientFactory factory) : this()
|
||||||
{
|
{
|
||||||
_creds = creds;
|
_creds = creds;
|
||||||
_httpFactory = factory;
|
_httpFactory = factory;
|
||||||
|
@@ -0,0 +1,158 @@
|
|||||||
|
namespace NadekoBot.Services;
|
||||||
|
|
||||||
|
public sealed partial class GoogleApiService
|
||||||
|
{
|
||||||
|
private const string SUPPORTED = @"afrikaans af
|
||||||
|
albanian sq
|
||||||
|
amharic am
|
||||||
|
arabic ar
|
||||||
|
armenian hy
|
||||||
|
assamese as
|
||||||
|
aymara ay
|
||||||
|
azerbaijani az
|
||||||
|
bambara bm
|
||||||
|
basque eu
|
||||||
|
belarusian be
|
||||||
|
bengali bn
|
||||||
|
bhojpuri bho
|
||||||
|
bosnian bs
|
||||||
|
bulgarian bg
|
||||||
|
catalan ca
|
||||||
|
cebuano ceb
|
||||||
|
chinese zh-CN
|
||||||
|
chinese-trad zh-TW
|
||||||
|
corsican co
|
||||||
|
croatian hr
|
||||||
|
czech cs
|
||||||
|
danish da
|
||||||
|
dhivehi dv
|
||||||
|
dogri doi
|
||||||
|
dutch nl
|
||||||
|
english en
|
||||||
|
esperanto eo
|
||||||
|
estonian et
|
||||||
|
ewe ee
|
||||||
|
filipino fil
|
||||||
|
finnish fi
|
||||||
|
french fr
|
||||||
|
frisian fy
|
||||||
|
galician gl
|
||||||
|
georgian ka
|
||||||
|
german de
|
||||||
|
greek el
|
||||||
|
guarani gn
|
||||||
|
gujarati gu
|
||||||
|
haitian ht
|
||||||
|
hausa ha
|
||||||
|
hawaiian haw
|
||||||
|
hebrew he
|
||||||
|
hindi hi
|
||||||
|
hmong hmn
|
||||||
|
hungarian hu
|
||||||
|
icelandic is
|
||||||
|
igbo ig
|
||||||
|
ilocano ilo
|
||||||
|
indonesian id
|
||||||
|
irish ga
|
||||||
|
italian it
|
||||||
|
japanese ja
|
||||||
|
javanese jv
|
||||||
|
kannada kn
|
||||||
|
kazakh kk
|
||||||
|
khmer km
|
||||||
|
kinyarwanda rw
|
||||||
|
konkani gom
|
||||||
|
korean ko
|
||||||
|
krio kri
|
||||||
|
kurdish ku
|
||||||
|
kurdish-sor ckb
|
||||||
|
kyrgyz ky
|
||||||
|
lao lo
|
||||||
|
latin la
|
||||||
|
latvian lv
|
||||||
|
lingala ln
|
||||||
|
lithuanian lt
|
||||||
|
luganda lg
|
||||||
|
luxembourgish lb
|
||||||
|
macedonian mk
|
||||||
|
maithili mai
|
||||||
|
malagasy mg
|
||||||
|
malay ms
|
||||||
|
malayalam ml
|
||||||
|
maltese mt
|
||||||
|
maori mi
|
||||||
|
marathi mr
|
||||||
|
meiteilon mni-Mtei
|
||||||
|
mizo lus
|
||||||
|
mongolian mn
|
||||||
|
myanmar my
|
||||||
|
nepali ne
|
||||||
|
norwegian no
|
||||||
|
nyanja ny
|
||||||
|
odia or
|
||||||
|
oromo om
|
||||||
|
pashto ps
|
||||||
|
persian fa
|
||||||
|
polish pl
|
||||||
|
portuguese pt
|
||||||
|
punjabi pa
|
||||||
|
quechua qu
|
||||||
|
romanian ro
|
||||||
|
russian ru
|
||||||
|
samoan sm
|
||||||
|
sanskrit sa
|
||||||
|
scots gd
|
||||||
|
sepedi nso
|
||||||
|
serbian sr
|
||||||
|
sesotho st
|
||||||
|
shona sn
|
||||||
|
sindhi sd
|
||||||
|
sinhala si
|
||||||
|
slovak sk
|
||||||
|
slovenian sl
|
||||||
|
somali so
|
||||||
|
spanish es
|
||||||
|
sundanese su
|
||||||
|
swahili sw
|
||||||
|
swedish sv
|
||||||
|
tagalog tl
|
||||||
|
tajik tg
|
||||||
|
tamil ta
|
||||||
|
tatar tt
|
||||||
|
telugu te
|
||||||
|
thai th
|
||||||
|
tigrinya ti
|
||||||
|
tsonga ts
|
||||||
|
turkish tr
|
||||||
|
turkmen tk
|
||||||
|
twi ak
|
||||||
|
ukrainian uk
|
||||||
|
urdu ur
|
||||||
|
uyghur ug
|
||||||
|
uzbek uz
|
||||||
|
vietnamese vi
|
||||||
|
welsh cy
|
||||||
|
xhosa xh
|
||||||
|
yiddish yi
|
||||||
|
yoruba yo
|
||||||
|
zulu zu";
|
||||||
|
|
||||||
|
|
||||||
|
public IReadOnlyDictionary<string, string> Languages { get; }
|
||||||
|
|
||||||
|
private GoogleApiService()
|
||||||
|
{
|
||||||
|
var langs = SUPPORTED.Split("\n")
|
||||||
|
.Select(x => x.Split(' '))
|
||||||
|
.ToDictionary(x => x[0].Trim(), x => x[1].Trim());
|
||||||
|
|
||||||
|
foreach (var (_, v) in langs.ToArray())
|
||||||
|
{
|
||||||
|
langs.Add(v, v);
|
||||||
|
}
|
||||||
|
|
||||||
|
Languages = langs;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -151,27 +151,6 @@ public static class MessageChannelExtensions
|
|||||||
string? footer = null)
|
string? footer = null)
|
||||||
=> ch.SendAsync(eb, MessageType.Error, title, text, url, footer);
|
=> ch.SendAsync(eb, MessageType.Error, title, text, url, footer);
|
||||||
|
|
||||||
// weird stuff
|
|
||||||
|
|
||||||
public static Task<IUserMessage> SendTableAsync<T>(
|
|
||||||
this IMessageChannel ch,
|
|
||||||
string seed,
|
|
||||||
IEnumerable<T> items,
|
|
||||||
Func<T, string> howToPrint,
|
|
||||||
int columns = 3)
|
|
||||||
=> ch.SendMessageAsync($@"{seed}```xl
|
|
||||||
{items.Chunk(columns)
|
|
||||||
.Select(ig => string.Concat(ig.Select(howToPrint)))
|
|
||||||
.Join("\n")}
|
|
||||||
```");
|
|
||||||
|
|
||||||
public static Task<IUserMessage> SendTableAsync<T>(
|
|
||||||
this IMessageChannel ch,
|
|
||||||
IEnumerable<T> items,
|
|
||||||
Func<T, string> howToPrint,
|
|
||||||
int columns = 3)
|
|
||||||
=> ch.SendTableAsync("", items, howToPrint, columns);
|
|
||||||
|
|
||||||
public static Task SendPaginatedConfirmAsync(
|
public static Task SendPaginatedConfirmAsync(
|
||||||
this ICommandContext ctx,
|
this ICommandContext ctx,
|
||||||
int currentPage,
|
int currentPage,
|
||||||
|
Reference in New Issue
Block a user