require'mediawiki_api'require'HTTParty'require'timeout'require'../helper'require'uri'require'colorize'require_relative'./page'URL="https://petscan.wmflabs.org/?psid=5950450&format=json"Helper.read_env_vars(file='../vars.csv')@content=HTTParty.get(URL)client=MediawikiApi::Client.new'https://en.wikipedia.org/w/api.php'client.log_inENV['USERNAME'],ENV['PASSWORD']pages=@content["*"].first['a']['*'].mapdo|i|i["title"].gsub('_',' ')endputs"Total to do: #{pages.size}"pages.eachdo|title|putstitlefull_text=client.get_wikitext(title).bodyifPage.parse_page(full_text,title)talk_title="Talk:#{title}"begintalk_page_text=client.get_wikitext(talk_title).bodynew_text=Page.parse_talk_page(talk_page_text)client.edit(title:talk_title,text:new_text,summary:"removing 'needs-infobox' as the page has an infobox")puts"- success".colorize(:green)sleep5rescuePage::NeedsInfoboxNotFound=>eHelper.print_message('Raised: "NeedsInfoboxNotFound"')Helper.print_link(talk_title)nextendendendputs"DONE!"modulePageclassNeedsInfoboxNotFound<StandardError;enddefself.parse_page(full_text,title)ifhas_infobox?(full_text)Helper.print_message('HAS INFOBOX')Helper.print_link(title)return"Has Infobox"elsereturnnilendendNEEDS_INFOBOX=/\|\s*needs-infobox\s*=\s*y(?:es){0,1}\s*/defself.parse_talk_page(talk_page_text)raiseNeedsInfoboxNotFoundunlesstalk_page_text.match?(NEEDS_INFOBOX)talk_page_text.gsub(NEEDS_INFOBOX,'')endINFOBOX=/infobox/idefself.has_infobox?(text)text.match?(INFOBOX)endend