private void MainForm_Load(object sender, EventArgs e) { var list = Words.Words.GetWords(); wordListBox.BeginUpdate(); foreach (var item in list) { wordListBox.Items.Add(item); } wordListBox.EndUpdate(); _translate = new TranslateApi(); wordListBox.SelectedIndex = 0; }
public static void ProcessQueueMessage([QueueTrigger("line-bot-workitems")] string message, TextWriter log) { log.WriteLine(message); var data = JsonConvert.DeserializeObject<LineMessageObject>(message); if (data?.Results != null) { Task.WhenAll(data.Results.Select(lineMessage => { if (lineMessage.Content != null) { log.WriteLine("Content: " + string.Join(Environment.NewLine, lineMessage.Content.Select(x => $"{x.Key}={x.Value}"))); } log.WriteLine("ContentType: " + lineMessage.ContentType); switch (lineMessage.ContentType) { case ContentType.Text: if (lineMessage.TextContent != null) { log.WriteLine("text: " + lineMessage.TextContent.Text); var sendingMessage = new SendingMessage(); sendingMessage.AddTo(lineMessage.TextContent.From); var translateApi = new TranslateApi(); var translated = translateApi.Translate(lineMessage.TextContent.Text); if (string.IsNullOrEmpty(translated)) { throw new ApplicationException("reply message is empty"); } sendingMessage.SetSingleContent(new SendingTextContent(translated)); return new SendMessageApi(log).Post(sendingMessage); } break; default: log.WriteLine("Not implemented contentType: " + lineMessage.ContentType); break; } return Task.FromResult((SendingMessageResponse)null); })).Wait(); } }
public static void ProcessQueueMessage([QueueTrigger("line-bot-workitems")] string message, TextWriter log) { log.WriteLine(message); var data = JsonConvert.DeserializeObject <LineMessageObject>(message); if (data?.Results != null) { Task.WhenAll(data.Results.Select(lineMessage => { if (lineMessage.Content != null) { log.WriteLine("Content: " + string.Join(Environment.NewLine, lineMessage.Content.Select(x => $"{x.Key}={x.Value}"))); } log.WriteLine("ContentType: " + lineMessage.ContentType); switch (lineMessage.ContentType) { case ContentType.Text: if (lineMessage.TextContent != null) { log.WriteLine("text: " + lineMessage.TextContent.Text); var sendingMessage = new SendingMessage(); sendingMessage.AddTo(lineMessage.TextContent.From); var translateApi = new TranslateApi(); var translated = translateApi.Translate(lineMessage.TextContent.Text); if (string.IsNullOrEmpty(translated)) { throw new ApplicationException("reply message is empty"); } sendingMessage.SetSingleContent(new SendingTextContent(translated)); return(new SendMessageApi(log).Post(sendingMessage)); } break; default: log.WriteLine("Not implemented contentType: " + lineMessage.ContentType); break; } return(Task.FromResult((SendingMessageResponse)null)); })).Wait(); } }
public static async Task ProcessQueueMessage([QueueTrigger("line-bot-workitems")] string message, TextWriter log) { log.WriteLine(message); var data = JsonConvert.DeserializeObject <LineWebhookContent>(message); if (data?.Events != null) { foreach (var webhookEvent in data.Events) { log.WriteLine("event type: " + webhookEvent.Type); switch (webhookEvent.Type) { case WebhookRequestEventType.Message: if (webhookEvent.Message.Type == MessageType.Text) { log.WriteLine("text: " + webhookEvent.Message.Text); if (tokenResponse == null || tokenResponse.ExpiresIn < DateTime.Now.AddDays(-1)) { tokenResponse = await oAuthClient.GetAccessToken(); } var client = new LineMessagingClient(tokenResponse.AccessToken); var translateApi = new TranslateApi(); var translated = translateApi.Translate(webhookEvent.Message.Text); if (string.IsNullOrEmpty(translated)) { throw new ApplicationException("reply message is empty"); } await client.PushMessage(webhookEvent.Source.UserId, translated); } break; default: log.WriteLine("Not implemented event type: " + webhookEvent.Type); break; } } } }
private static async Task <string> Translate(string text, TranslationSetting activeSetting) { var authTokenSource = new AzureAuthToken(activeSetting.SubscriptionKey.Trim()); string authToken; try { authToken = await authTokenSource.GetAccessTokenAsync(); } catch (HttpRequestException) { if (authTokenSource.RequestStatusCode == HttpStatusCode.Unauthorized) { throw new ApplicationException("Request to token service is not authorized (401). Check that the Azure subscription key is valid."); } if (authTokenSource.RequestStatusCode == HttpStatusCode.Forbidden) { throw new ApplicationException("Request to token service is not authorized (403). For accounts in the free-tier, check that the account quota is not exceeded."); } throw; } return(TranslateApi.Translate(authToken, text, activeSetting.From, activeSetting.To, activeSetting.Category)); }
public void Init() { instance = new TranslateApi(); }
private string TranslateWithGoogle(string text, LanguageInfo from, LanguageInfo to, TranslateApi api) { //if (!_googleTranslatorEnabled) // return null; //if (api != TranslateApi.Google && api != TranslateApi.All) // return null; //string result; //try //{ // if (_googleTranslator == null) // _googleTranslator = new GoogleTranslator(); // _googleTranslator.SourceLanguage = @from.GoogleTranslatorCode; // _googleTranslator.TargetLanguage = to.GoogleTranslatorCode; // _googleTranslator.SourceText = text; // _googleTranslator.Timeout = (int)_googleTimeout; // _googleTranslator.Translate(); // result = _googleTranslator.Translation; //} //catch (Exception ex) //{ // Log.LogException(ex); // result = Resources.Res.TranslationError; //} //return Resources.Res.Google + result; return(null); }
public async Task <string> Translate(string text, LanguageInfo from, LanguageInfo to, TranslateApi api) { if (String.IsNullOrWhiteSpace(text)) { return(null); } string bingResult = null; string googleResult = null; await Task.Factory.StartNew(() => bingResult = TranslateWithBing(text, @from, to, api)); await Task.Factory.StartNew(() => googleResult = TranslateWithGoogle(text, @from, to, api)); if (bingResult == null) { return(googleResult); } if (googleResult == null) { return(bingResult); } return(bingResult + Environment.NewLine + googleResult); }
private string TranslateWithBing(string text, LanguageInfo from, LanguageInfo to, TranslateApi api) { if (!_bingTranslatorEnabled) { return(null); } if (api != TranslateApi.Bing && api != TranslateApi.All) { return(null); } string result; try { if (_bingTranslator == null) { _bingTranslator = new TranslatorContainer(new Uri(ConfigurationManager.AppSettings["TranslatorAddress"])) { Credentials = new NetworkCredential( ConfigurationManager.AppSettings["TranslatorAccount"], ConfigurationManager.AppSettings["TranslatorAccountKey"]) }; _bingTranslator.Timeout = (int)_bingTimeout; } var translationResult = _bingTranslator.Translate(text, to.BingTranslatorCode, @from.BingTranslatorCode).ToList(); result = translationResult.Select(t => t.Text).Aggregate((current, next) => current + ", " + next); } catch (Exception ex) { Log.LogException(ex); result = Resources.Res.TranslationError; } return(Resources.Res.Bing + result); }