module Pry::SendTweet::ReadTweets::TranslateActions
Constants
- LANGUAGE_STRINGS
- YANDEX_ENDPOINT
Public Instance Methods
translate_text(text, source_language)
click to toggle source
# File lib/pry/send_tweet/commands/read_tweets/translate_actions.rb, line 39 def translate_text(text, source_language) uri_endpoint = __build_yandex_endpoint(text, source_language) res = Net::HTTP.get_response(uri_endpoint) case res when Net::HTTPOK _pry_.output.puts "#{__translation_map(res)}: \n" \ "#{__translated_text_from(res)}" else raise Pry::CommandError, "Bad response from Yandex (#{res.class})" end end
translate_tweet(tweet_url, source_language)
click to toggle source
# File lib/pry/send_tweet/commands/read_tweets/translate_actions.rb, line 26 def translate_tweet(tweet_url, source_language) tweet = twitter.status(tweet_url) uri_endpoint = __build_yandex_endpoint(tweet, source_language) res = Net::HTTP.get_response(uri_endpoint) case res when Net::HTTPOK tweet.attrs[:full_text] = __translated_text_from(res) render_tweets [tweet], title: "#{__translation_map(res)}: " else raise Pry::CommandError, "Bad response from Yandex (#{res.class})" end end
Private Instance Methods
__build_yandex_endpoint(tweet, source_language)
click to toggle source
@api private
# File lib/pry/send_tweet/commands/read_tweets/translate_actions.rb, line 68 def __build_yandex_endpoint(tweet, source_language) URI.parse format(YANDEX_ENDPOINT, lang: URI.encode_www_form_component(__yandex_lang_param(source_language)), key: URI.encode_www_form_component(__yandex_key), text: URI.encode_www_form_component( Twitter::Tweet === tweet ? __read_tweet_body(tweet) : tweet ) ) end
__translated_text_from(res)
click to toggle source
@api private
# File lib/pry/send_tweet/commands/read_tweets/translate_actions.rb, line 63 def __translated_text_from(res) JSON.parse(res.body)["text"][0] end
__translation_map(res)
click to toggle source
@api private
# File lib/pry/send_tweet/commands/read_tweets/translate_actions.rb, line 54 def __translation_map(res) b = JSON.parse(res.body) from, to = b['lang'].split('-') from = LANGUAGE_STRINGS[from] || from to = LANGUAGE_STRINGS[to] || to "#{from} => #{to}" end
__yandex_key()
click to toggle source
@api private
# File lib/pry/send_tweet/commands/read_tweets/translate_actions.rb, line 86 def __yandex_key k = _pry_.config.twitter.yandex_key if !k || k.strip.empty? raise Pry::CommandError, "fatal: _pry_.config.twitter.yandex_key is nil, false or empty" end k end
__yandex_lang_param(source_language)
click to toggle source
@api private
# File lib/pry/send_tweet/commands/read_tweets/translate_actions.rb, line 79 def __yandex_lang_param(source_language) from = source_language ? "#{source_language}-" : "" to = _pry_.config.twitter.yandex_lang || "en" from + to end