Class: OpengraphTransporter::Scraper

Inherits:
Object
  • Object
show all
Defined in:
lib/opengraph_transporter/scraper.rb

Constant Summary collapse

MAX_FB_LOGIN_ATTEMPTS =
3
MAX_TRANSLATION_PAGE_LIMIT =
30
DEFAULT_PRIMARY_LOCALE =
"en_US"

Class Method Summary collapse

Class Method Details

.ingest_app_translations(app_id, locale, primary_locale) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/opengraph_transporter/scraper.rb', line 10

def ingest_app_translations(app_id, locale, primary_locale)
  if primary_locale.nil?
    primary_locale = DEFAULT_PRIMARY_LOCALE
  end
  @agent = Mechanize.new
  # Defaulting to en_US native locale
  source_app_uri = "https://www.facebook.com/translations/admin/browse.php?search&sloc=#{primary_locale}&aloc=#{locale}&app=#{app_id}"
  
  @agent.get(source_app_uri)
   = 1
  () do |continue|
    if continue
      puts @agent.page.uri.to_s
      translations_page_index = 0
      translations_arr = Array.new 
      GracefulQuit.enable
      recurse_translations(translations_page_index, translations_arr) do |complete_translation_arr, idx|
        logout
        return complete_translation_arr
      end
    else
      return []
    end
  end
end

.update_display_names!(translations_arr, src_display_name, dst_display_name) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/opengraph_transporter/scraper.rb', line 36

def update_display_names!(translations_arr, src_display_name, dst_display_name)
  say(".....swapping app translation tokens")
  translation_src_name =  "{" << src_display_name << "}"
  translation_dst_name =  "{" << dst_display_name << "}"
  translations_arr.each_with_index do |el, index|
    
    if el['native'] =~ /(#{Regexp.escape(translation_src_name)})/i 
      app_name = "#{$1}".strip
      unless app_name.eql?("application")
        el['native'].gsub!(/(#{Regexp.escape(translation_src_name)})/i , "#{translation_dst_name}")
        el['translation'].gsub!(/(#{Regexp.escape(translation_src_name)})/i, "#{translation_dst_name}")
      end
    end
  end
  
  return translations_arr
end