add subtitles with [[Wikipedia:Wikipedia Signpost/Technical/Silly bespoke scripts#Subtitler|Silly Bespoke Subtitler]]The long list ofretrieve_diff calls has to be filled in manually with issue dates and permalink URLs ofWikipedia:Wikipedia Signpostrevisions that reflect what the issue was on that date. Why manually? Mostly, because it's impossible to tell without looking which is the canonical set of blurbs for an issue -- the first revision on that date might have typoes in it that later get fixed, et cetera. Hard to tell what the deal is. And the "new issue" edit summaries aren't consistent enough to use regex to figure it out algorithmically. So it is better to just do by hand.
The following script will give you an appropriate hunk of crap to slap into the individual issue page that addssub= params to the articles in the issue, and even print an edit link.
Python script to fix old subtitles |
|---|
importrequests# 2023 Dec 2defretrieve_and_split_content(api_url):print(api_url)# Send a GET request to the Wikipedia APIresponse=requests.get(api_url)# Check if the request was successful (status code 200)ifresponse.status_code==200:# Parse the JSON responseresult=response.json()# Extract the content from the JSON responsecontent=result["query"]["pages"][0]["revisions"][0]["slots"]["main"]["content"]# Split the content into lineslines=content.split('\n')returnlineselse:# Print an error message if the request was not successfulprint(f"Error: Unable to retrieve data. Status code:{response.status_code}")defretrieve_parsed(api_url):print(api_url)# Send a GET request to the Wikipedia APIresponse=requests.get(api_url)# Check if the request was successful (status code 200)ifresponse.status_code==200:# Parse the JSON responseresult=response.json()# Extract the content from the JSON responsecontent=result["parse"]["text"]["*"]returncontentelse:# Print an error message if the request was not successfulprint(f"Error: Unable to retrieve data. Status code:{response.status_code}")defretrieve_diff(revid,date):wikitext_api_url="https://en.wikipedia.org/w/api.php?action=query&format=json&prop=revisions&revids="+revid+"&formatversion=2&rvprop=content&rvslots=*"# Retrieve and split the contentlines=retrieve_and_split_content(wikitext_api_url)relevant_lines=[]# Print the linesforlineinlines:# print(line)if"signpost-snippet"inline.lower():relevant_lines.append(line)print(str(len(relevant_lines))+" lines found")#parsed_api_url = "https://en.wikipedia.org/w/api.php?action=parse&oldid=" + revid + "&format=json"#print(parsed_api_url)#content = retrieve_parsed(parsed_api_url)# This won't work because it just uses the issue template to set the date, which won't be constant to what it was then. Uguu.thatdate_api_url="https://en.wikipedia.org/w/api.php?action=query&format=json&prop=revisions&titles=Wikipedia:Wikipedia_Signpost/"+date+"&formatversion=2&rvprop=content&rvslots=*"#print(thatdate_api_url)issuepage=retrieve_and_split_content(thatdate_api_url)#print(issuepage)incrementor=0forlineinissuepage:#print(line)if"{{{1}}}|0|"inline.lower():incrementor=-1# Incrementor should start at 0, not 1, if the page does:# this is what does the speshul formatting for the centered "from the editor" etc columnsoutput=""replace="{{Wikipedia:Signpost/Template:Signpost-snippet|{{Wikipedia:Wikipedia Signpost/Issue|1}}|"replacewith="{{Signpost/item|{{{1}}}|"forlineinrelevant_lines:# print(line)# {{Wikipedia:Signpost/Template:Signpost-snippet|{{Wikipedia:Wikipedia Signpost/Issue|1}}|Gallery|Love is in the air|Lovey-dovey stuff for Valentine's.|1.3 MB}}incrementor+=1;line=line.replace(replace,replacewith+str(incrementor)+"|"+date+"|")# print(line)l=line.split("|")iflen(l)!=7:# {{Signpost/item|{{{1}}}|7|2023-02-20|Gallery|Love is in the air|Lovey-dovey stuff for Valentine's.|1.3 MB}}# 0 1 2 3 4 5 6 7# {{Signpost/item|{{{1}}}|7|2023-02-20|Gallery|Love is in the air|1.3 MB|sub=Lovey-dovey stuff for Valentine's.}}# 0 1 2 3 4 5 7 6line=l[0]+"|"+l[1]+"|"+l[2]+"|"+l[3]+"|"+l[4]+"|"+l[5]+"|"+l[7].replace("}}","")+"|sub="+l[6]+"}}"else:line=l[0]+"|"+l[1]+"|"+l[2]+"|"+l[3]+"|"+l[4]+"|"+l[5]+"|sub="+l[6]print(line.replace("<!-- ","").replace(" -->","").replace("<!--","").replace("-->",""))print("https://en.wikipedia.org/w/index.php?title=Wikipedia:Wikipedia_Signpost/"+date+"&action=edit")print("----------")if__name__=="__main__":diffs=[]# diffs.append(["820777324", "2018-01-16"])# diffs.append(["824078731", "2018-02-05"])# diffs.append(["826735918", "2018-02-20"])# diffs.append(["833127031", "2018-03-29"])# diffs.append(["838283983", "2018-04-26"])# diffs.append(["847193050", "2018-05-24"])# diffs.append(["848153543", "2018-06-29"])# diffs.append(["852964542", "2018-07-31"])# diffs.append(["857225081", "2018-08-30"])# diffs.append(["861926973", "2018-10-01"])# diffs.append(["866950939", "2018-10-28"])# diffs.append(["871451630", "2018-12-01"])# diffs.append(["875468955", "2018-12-24"])# diffs.append(["881499572", "2019-01-31"])# diffs.append(["886108487", "2019-02-28"])# diffs.append(["893675237", "2019-03-31"])# diffs.append(["894891613", "2019-04-30"])# diffs.append(["903814437", "2019-05-31"])# diffs.append(["904518301", "2019-06-30"])# diffs.append(["909048253", "2019-07-31"])# diffs.append(["914531563", "2019-08-30"])# diffs.append(["918801796", "2019-09-30"])# diffs.append(["923914090", "2019-10-31"])# diffs.append(["928760315", "2019-11-29"])# diffs.append(["933233310", "2019-12-27"])# diffs.append(["937756327", "2020-01-27"])# diffs.append(["946235363", "2020-03-01"])# diffs.append(["948036758", "2020-03-29"])# diffs.append(["953745575", "2020-04-26"])# diffs.append(["960157059", "2020-05-31"])# diffs.append(["965346020", "2020-06-28"])# diffs.append(["970837100", "2020-08-02"])# diffs.append(["975834550", "2020-08-30"])# diffs.append(["980699882", "2020-09-27"])# diffs.append(["980699882", "2020-11-01"])# diffs.append(["993043901", "2020-11-29"])# diffs.append(["996700532", "2020-12-28"])# diffs.append(["1005138548", "2021-01-31"])# diffs.append(["1009489391", "2021-02-28"])# diffs.append(["1014739821", "2021-03-28"])# diffs.append(["1020706834", "2021-04-25"])# diffs.append(["1033465399", "2021-06-27"])# diffs.append(["1035479760", "2021-07-25"])# diffs.append(["1041465735", "2021-08-29"])# diffs.append(["1046662909", "2021-09-26"])# diffs.append(["1054289016", "2021-10-31"])# diffs.append(["1057675523", "2021-11-29"])# diffs.append(["1062510735", "2021-12-28"])# diffs.append(["1068924896", "2022-01-30"])# diffs.append(["1074357607", "2022-02-27"])# diffs.append(["1083987625", "2022-03-27"])# diffs.append(["1084492205", "2022-04-24"])# diffs.append(["1090505125", "2022-05-29"])# diffs.append(["1095184567", "2022-06-26"])# diffs.append(["1101624049", "2022-08-01"])# diffs.append(["1107799905", "2022-08-31"])# diffs.append(["1113334346", "2022-09-30"])# diffs.append(["1119178263", "2022-10-31"])# diffs.append(["1124368652", "2022-11-28"])# diffs.append(["1130821218", "2023-01-01"])# diffs.append(["1133904318", "2023-01-16"])# diffs.append(["1137481351", "2023-02-04"])# diffs.append(["1140568603", "2023-02-20"])# diffs.append(["1143689119", "2023-03-09"])# diffs.append(["1145675251", "2023-03-20"])# diffs.append(["1148036183", "2023-04-03"])# diffs.append(["1151821801", "2023-04-26"])# diffs.append(["1153755153", "2023-05-08"])# diffs.append(["1156321293", "2023-05-22"])# diffs.append(["1158590270", "2023-06-05"])# diffs.append(["1160887554", "2023-06-19"])# diffs.append(["1163158814", "2023-07-03"])# diffs.append(["1165769449", "2023-07-17"])# diffs.append(["1168153610", "2023-08-01"])# diffs.append(["1170514187", "2023-08-15"])# diffs.append(["1173056112", "2023-08-31"])# diffs.append(["1175599041", "2023-09-16"])# diffs.append(["1178460319", "2023-10-03"])# diffs.append(["1181468695", "2023-10-23"])# diffs.append(["1183727590", "2023-11-06"])# diffs.append(["1186005807", "2023-11-20"])fordiffindiffs:stwing="https://en.wikipedia.org/w/index.php?title=Wikipedia:Wikipedia_Signpost/"stwing+=diff[1]stwing+="&action=edit&summary=add%20subtitles%20with%20%5B%5BWikipedia%3AWikipedia%20Signpost%2FTechnical%2FSilly%20bespoke%20scripts%23Subtitler%7CSilly%20Bespoke%20Subtitler%5D%5D"print(stwing)fordiffindiffs:retrieve_diff(diff[0],diff[1]) |