[BrowserTest] Move the screenshot uploading to a gem

* The methods from upload.rb are moved to a newly created gem:
  https://rubygems.org/gems/commons_upload
* upload.rb is changed to simply call the method from the Gem.
* Gemfile is updated accordingly.

Bug: T89718
Change-Id: I229fbcd1b8c3cb03885947509aef27f0ae583a1c
This commit is contained in:
Amir E. Aharoni 2015-02-19 12:24:28 +02:00
parent 7c838d839c
commit 710da1547b
3 changed files with 6 additions and 41 deletions

View file

@ -3,6 +3,7 @@
source 'https://rubygems.org'
gem 'commons_upload', '~> 0.0.1'
gem 'mediawiki_api'
gem 'mediawiki_selenium', '~> 0.4.1'
gem 'rubocop', require: false

View file

@ -8,6 +8,8 @@ GEM
childprocess (0.5.5)
ffi (~> 1.0, >= 1.0.11)
chunky_png (1.3.4)
commons_upload (0.0.1)
mediawiki_api (~> 0.3.0)
cucumber (1.3.19)
builder (>= 2.1.2)
diff-lcs (>= 1.1.3)
@ -95,6 +97,7 @@ PLATFORMS
ruby
DEPENDENCIES
commons_upload (~> 0.0.1)
mediawiki_api
mediawiki_selenium (~> 0.4.1)
rubocop

View file

@ -1,42 +1,3 @@
def license(language_code, file_name)
require 'date'
date = Date.today.to_s
"=={{int:filedesc}}==
{{Information
|description={{en|1=#{file_name}}}
|date=#{date}
|source=[[User:LanguageScreenshotBot|Automatically created by LanguageScreenshotBot]]
|author=[[User:LanguageScreenshotBot|Automatically created by LanguageScreenshotBot]]
|permission=
|other_versions=
|other_fields=
}}
require 'commons_upload'
=={{int:license-header}}==
{{Wikipedia-screenshot}}
[[Category:VisualEditor automatic screenshots/#{language_code}]]"
end
def upload_image(file_path, client)
language_code = ENV['LANGUAGE_SCREENSHOT_CODE']
file_name = File.basename(file_path, '')
file_license = license(language_code, file_name)
client.upload_image(file_name, file_path, file_license, true)
sleep 5 # Restriction in bot speed: https://commons.wikimedia.org/wiki/Commons:Bots#Bot_speed
end
def upload_images
screenshot_directory = ENV['LANGUAGE_SCREENSHOT_PATH'] || './screenshots'
require 'mediawiki_api'
client = MediawikiApi::Client.new ENV['MEDIAWIKI_API_UPLOAD_URL']
client.log_in ENV['MEDIAWIKI_USER'], ENV['MEDIAWIKI_PASSWORD']
Dir["#{screenshot_directory}/*.png"].each do |file_path|
puts "Uploading #{file_path}"
upload_image file_path, client
end
end
ENV['MEDIAWIKI_PASSWORD'] = ENV[ENV['MEDIAWIKI_PASSWORD_VARIABLE']] if ENV['MEDIAWIKI_PASSWORD_VARIABLE']
upload_images
CommonsUpload.images