User:PastLovingBot/waylaidbywireless.py

From Wikisource
Jump to navigation Jump to search
import re
import time
print("Importing pywikibot...")
import pywikibot
print("Imported!")

pagename = "User:PseudoSkull/T"
site = pywikibot.Site()

page = pywikibot.Page(site, pagename)
text = page.text

chapters = {
    "THE SUSPICION": 1,
    "THE CIRCUIT OF CRIME": 16,
    "THE GIRL TO THE RESCUE": 36,
    "THE FOREBODING BRITON": 45,
    "THE WARNING AND A DARE": 61,
    "ROBBERY AGAIN": 85,
    "CHALLENGED!": 102,
    "A PREFERENCE FOR BLIND BELIEF": 129,
    "A LIBEL ON THE THIEF": 146,
    "\"WIRELESS\"—A WOUNDED WRIST": 164,
    "UNDER THE WING OF THE WIRELESS": 204,
    "MANLING ON BOARD": 223,
    "THE SPORTING PROPOSITION": 240,
    "THE \"PROTECTOR\" ATTACKED": 262,
    "STOLEN GOODS!": 281,
    "\"ANNIE LAURIE\"": 298,
    "A MESSAGE FROM MANLING": 318,
}

jobs = ["added/fixed headers and footers", "converted en dashes to em dashes", "templatized quote-apostrophe combinations", "converting double em dash to [[Template:bar]]"]

num = 177
chapter_num = 9
extra = 4

while 1:
    num += 1
    if num > 378:
        break
    jobs_done = []
    pagename = f"Page:Waylaid by Wireless - Balmer - 1909.djvu/{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...
    # ----
    #endash to emdash
    if "[[File:" in page.text or "pagequality level=\"0\"" in page.text:
        print("Not a page. Skipping...")
        print("----")
        extra +=1
        continue
    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])
    #logic for headers/footers
    page_num = num - 18 - 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)]
    footer = f"{{{{center|{page_num}}}}}"
    if page_num == chapter_begin:
        header = ""
    else:
        if page_num % 2 == 0:
            header = f"{{{{rh||WAYLAID BY WIRELESS|}}}}"
        else:
            header = f"{{{{rh||{chapter_name}|}}}}"
    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)
    jobs_done.insert(0, jobs[0])
    jobs_done = ", ".join(jobs_done)
    print(header)
    print(footer)
    print(f"Chapter: {chapter_num}")
    print(f"Page number: {page_num}")
    print(f"Extra: {extra}")
    edit_summary = f"Fixed something on the Internet that's from before the Internet existed: {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