mediawiki-extensions-Visual.../modules/ve-mw/test/browser/upload.rb
vikassy c41b631348 [BrowserTest] Added support for uploading the language screenshots
To use this script:

*Create an environment variable MEDIAWIKI_API_UPLOAD_URL having API URL
of the site where the images are to be uploaded. (Eg: http://commons.wikimedia.beta.wmflabs.org/wiki/api.php)

*LANGUAGE_SCREENSHOT_CODE environment variable should be set.

Run the upload script by: bundle exec ruby upload.rb

Bug: 62737
Change-Id: I1937aa5f02e3bf587ac65d8d11c3ebbb8b1d0528
2014-07-09 14:22:11 +05:30

57 lines
1.4 KiB
Ruby

def language_string language_code
language_hash = {
en: "English",
de: "German",
he: "Hebrew",
cs: "Czech",
it: "Italian",
mk: "Macedonian",
ru: "Russian",
fa: "Persian",
fr: "French",
ia: "Interlingua",
}
language_hash.fetch(language_code.to_sym)
end
def license(language, language_code, file_name)
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=
}}
=={{int:license-header}}==
{{Wikipedia-screenshot}}
[[Category:VisualEditor]]
[[Category:#{language}]]"
end
def upload_image file_path
language_code = ENV['LANGUAGE_SCREENSHOT_CODE']
file_name = File.basename(file_path, "")
language = language_string language_code
file_license = license(language, language_code, file_name)
require 'mediawiki_api'
client = MediawikiApi::Client.new ENV["MEDIAWIKI_API_UPLOAD_URL"]
client.log_in ENV["MEDIAWIKI_USER"], ENV["MEDIAWIKI_PASSWORD"]
client.upload_image(file_name, file_path, file_license, true)
end
def upload_images
screenshot_directory = ENV["LANGUAGE_SCREENSHOT_PATH"] || "./screenshots"
Dir["./#{screenshot_directory}/*.png"].each do |file_path|
puts "Uploading #{file_path}"
upload_image file_path
end
end
upload_images