#!/usr/bin/env ruby# encoding: utf-8require'mediawiki_api'require'HTTParty'require'csv'require'open-uri'require'./helper'require'fileutils'INFOBOX_REGEX=/(?=\{\{(?:Single)?\s*[Ii]nfobox\s*(?:Single[s]*)?)(\{\{(?>[^{}]++|\g<1>)*}})/CERT_REGEX=/\|\s*Certification\s*= ([^{}\|]*)\n\s*(\|)/QUERY_URL="https://petscan.wmflabs.org/?psid=632339&format=json"Helper.read_env_varsclient=MediawikiApi::Client.new'https://en.wikipedia.org/w/api.php'client.log_inENV['USERNAME'],ENV['PASSWORD']json=JSON.load(open(QUERY_URL))titles=json["*"].first["a"]["*"].map{|page|page["title"].gsub("_"," ")}putstitles.sizetitles.eachdo|title|title.strip!putstitlefull_text=client.get_wikitext(title).bodyoriginal=full_text.dupnextifHelper.no_bots?(full_text)nextunless(Helper.at_least_once(full_text,"Infobox Single",INFOBOX_REGEX))full_text.scan(INFOBOX_REGEX).eachdo|match|orinal_text=match.firstupdated_text=orinal_text.dupupdated_text.gsub!(CERT_REGEX,'\2')full_text.sub!(orinal_text,updated_text)endiforiginal.eql?full_textputs"- NO CHANGES"nextendclient.edit(title:title,text:full_text,summary:"Fixing infobox not to use [[:Category:Pages using Infobox single with deprecated certification parameter|deprecated certification parameter]]")puts"- SUCCESS"endputs"DONE"