User:GemmaBot/southernantiques.py
Jump to navigation
Jump to search
import re
import time
print("Importing pywikibot...")
import pywikibot
print("Imported!")
pagename = "Page:The Star in the Window.pdf/347"
site = pywikibot.Site()
page = pywikibot.Page(site, pagename)
text = page.text
book_name = "SOUTHERN ANTIQUES"
pageroot = "Southern Antiques - Burroughs - 1931.djvu"
jobs = ["add/fix headers and footers", "convert en dashes to em dashes", "templatize quote-apostrophe combinations", "convert double em dash to [[Template:bar]]", "convert two returns to [[Template:dhr]]", "take out spaces before returns", "shrink plate image size to 500px, since that seems more accurate throughout"]
chapters = {
"THE FIVE COLONIES": 1,
"SOUTHERN CABINETMAKERS": 5,
"WOODS USED IN SOUTHERN FURNITURE": 13,
"FURNITURE OF THE PIONEERS": 15,
"STYLE DEVELOPMENT IN FURNITURE": 19,
"CHIPPENDALE AND REVOLUTION": 22,
"CLASSICISM AND THE REPUBLIC": 26,
"SEEKING SOUTHERN ANTIQUES": 31,
"SIDEBOARDS": 35,
"GATE-LEGGED AND DINING TABLES": 50,
"HUNTING BOARDS": 61,
"CELLARETS": 68,
"TABLES": 76,
"DESKS AND SECRETARIES": 105,
"CUPBOARDS": 127,
"CHESTS": 144,
"CHAIRS": 159,
"BEDS": 182,
"MISCELLANEOUS PIECES": 190,
}
# IF "{{c|PLATE " in
start_num = 24
# CHANGE THIS BACK NEXT TIME
num = 62
chapter_num = 9
extra = 0
while 1:
num += 1
if num > 221:
break
jobs_done = []
pagename = f"Page:{pageroot}/{num}"
site = pywikibot.Site()
page = pywikibot.Page(site, pagename)
print(f"Checking {pagename}...")
#functions just didn't work for this, for some STUPID reason, so here we do this uglier thing...
# ----
#finding extra pages and subtracting them from page_num
nextpagename = f"Page:{pageroot}/{num+1}"
nextpage = pywikibot.Page(site, nextpagename)
# if not page.text.endswith("<noinclude></noinclude>") and not page.text.endswith("<noinclude>\n<references/></noinclude>") and not page.text.endswith("<noinclude>\n<references /></noinclude>") and not page.text.endswith("<noinclude>{{smallrefs}}</noinclude>") and not page.text.endswith("{{fine block/e}}</noinclude>"):
# print(page.text)
# continueornot = input(f"Found something new in a footer. Continue running? ")
# if "[[File:" in page.text and "pagequality level=\"0\"" in nextpage.text:
# print("Not a page. Skipping...")
# print("----")
# extra +=1
# continue
if "pagequality level=\"0\"" in page.text:
print("Not a page. Skipping...")
print("----")
extra +=1
continue
#endash to emdash
if "–" in page.text:
page.text = page.text.replace("–", "—")
jobs_done.insert(0, jobs[1])
#quotes to templates
if "\"'" in page.text or "'\"" in page.text:
ogpage = page.text
page.text = page.text.replace("\"'\"", "{{\" ' \"}}")
page.text = page.text.replace("'\"'", "{{' \" '}}")
page.text = page.text.replace("\"'", "{{\" '}}")
page.text = page.text.replace("'\"", "{{' \"}}")
page.text = page.text.replace("'{{' \"}}", "''\"")
page.text = page.text.replace("{{\" '}}'", "\"''")
if ogpage != page.text:
jobs_done.insert(0, jobs[2])
if "——" in page.text:
page.text = page.text.replace("——", "{{bar|2}}")
jobs_done.insert(0, jobs[3])
if "\n\n\n" in page.text:
page.text = page.text.replace("\n\n\n", "\n{{dhr}}\n")
jobs_done.insert(0, jobs[4])
if " \n" in page.text:
page.text = page.text.replace(" \n", "\n")
jobs_done.insert(0, jobs[5])
#logic for headers/footers
page_num = num - start_num - extra
try:
chapter_end = chapters[list(chapters.keys())[chapter_num]]
if chapter_end == page_num:
chapter_num +=1
except:
pass
chapter_begin = chapters[list(chapters.keys())[chapter_num-1]]
chapter_name = list(chapters.keys())[list(chapters.values()).index(chapter_begin)]
if "{{c|PLATE " in page.text:
header = ""
footer = ""
page.text = page.text.replace("|700px|", "|500px|")
jobs_done.insert(0, jobs[6])
else:
if page_num == chapter_begin:
header = ""
if page_num % 2 == 0:
footer = f"{{{{rh|{page_num}||}}}}"
else:
footer = f"{{{{rh|||{page_num}}}}}"
jobs_done.insert(0, jobs[0])
else:
footer = ""
if page_num % 2 == 0:
header = f"{{{{rh|{{{{larger|{page_num}}}}}|{{{{larger|{book_name}}}}}|}}}} [[File:Southern Antiques line.png|700px|center]]"
else:
header = f"{{{{rh||{{{{larger|{chapter_name}}}}}|{{{{larger|{page_num}}}}}}}}} [[File:Southern Antiques line.png|700px|center]]"
jobs_done.insert(0, jobs[0])
# if {{fine block/s}} or /e in header/footer
if "{{fine block/s}}</noinclude>" in page.text:
header = header + "{{fine block/s}}"
if "{{fine block/e}}</noinclude>" in page.text:
footer = "{{fine block/e}}" + footer
if "{{smallrefs}}</noinclude>" in page.text:
footer = "{{smallrefs}}" + footer
parser = page.text.split("<")
headerplace = parser[2]
# headerplace comes out as, fx, <pagequality level="3" user="PseudoSkull" />{{rh|2|A WILD-GOOSE CHASE}}
headerparse = headerplace.split(">")
parser.pop(2)
headerparse.pop(1)
headerparse.insert(1, header)
headerparse = ">".join(headerparse)
parser.insert(2, headerparse)
# print(parser)
# footers
parser.pop(len(parser) - 1)
parser.pop(len(parser) - 1)
parser = "<".join(parser)
final_list = [parser, f"<noinclude>{footer}</noinclude>"]
page.text = "".join(final_list)
if len(jobs_done) > 0:
jobs_done = ", ".join(jobs_done)
else:
jobs_done = "absolutely nothing!"
# print(header)
# print(footer)
print(f"Chapter: {chapter_num}")
print(f"Page number: {page_num}")
print(f"Extra: {extra}")
edit_summary = f"Bot: {jobs_done}"
print(edit_summary)
print("Sleeping 50 seconds...")
time.sleep(50)
page.save(edit_summary)
print("----")
I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.
In case this is not legally possible:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.
Public domainPublic domainfalsefalse