protected override async Task Handle(SearchGlosbeRequest request, CancellationToken cancellationToken)
            {
                var ctx             = request.Ctx;
                var query           = request.Query;
                var orignalLanguage = request.OriginalLanguage;
                var targetLanguage  = request.TargetLanguage;

                var translationResult = await _glosbeClient.GetTranslation(orignalLanguage, targetLanguage, query);

                var model = _glosbeModelMapper.MapTranslationResult(translationResult);

                var textTemplateSource = await _templateLoader.LoadTemplate("GlosbeArticle", ScribanTemplateType.Text);

                var textTemplate       = Template.Parse(textTemplateSource);
                var textTemplateResult = textTemplate.Render(new { model.Article });

                var trimmedResult    = textTemplateResult.Trim();
                var truncatedContent = trimmedResult.Substring(0, Math.Min(trimmedResult.Length, DiscordConstants.MaxEmbedContentLength));

                var eb = new DiscordEmbedBuilder()
                         .WithTitle("Glosbe")
                         .WithUrl(model.QueryUrl)
                         .WithDescription(truncatedContent)
                         .WithFooter("Glosbe.com")
                         .WithColor(DiscordConstants.EmbedColor);

                await ctx.RespondAsync(eb.Build());
            }
Esempio n. 2
0
        public async Task TestGlosbe()
        {
            try
            {
                var puppeteerFactory = new PuppeteerFactory();

                var glosbeClient = new GlosbeClient(puppeteerFactory);

                var translationResult = await glosbeClient.GetTranslation("nn", "en", "hus");

                var glosbeModelMapper = new GlosbeModelMapper();

                var model = glosbeModelMapper.MapTranslationResult(translationResult);

                var textTemplateSource = await File.ReadAllTextAsync($"TestFiles/TestGlosbeArticle.sbntxt");

                var textTemplate       = Template.Parse(textTemplateSource);
                var textTemplateResult = textTemplate.Render(new { model.Article, model.QueryUrl });

                var trimmedResult = textTemplateResult.Trim();
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.ToString());
            }
        }