diff --git a/new.py b/new.py index 4731bce..99c2f28 100644 --- a/new.py +++ b/new.py @@ -122,7 +122,40 @@ while ficcount > 0: except: pass try: - ficdict["event"] = fileread.eventname + if fileread.eventname == "bethefirst": + ficdict["event"] = "Be The First" + elif fileread.eventname == "challengeonthebigbridge": + ficdict["event"] = "Challenge On The Big Bridge" + elif fileread.eventname == "fffc": + ficdict["event"] = "Froday Flash Fiction Challenge" + elif fileread.eventname == "intoabar": + ficdict["event"] = "Into A Bar" + elif fileread.eventname == "candyheartsex": + ficdict["event"] = "Candy Hearts Exchange" + elif fileread.eventname == "chocolateboxcomm": + ficdict["event"] = "Chocolate Box" + elif fileread.eventname == "multifandomdrabble": + ficdict["event"] = "Multifandom Drabble" + elif fileread.eventname == "press-start-comm": + ficdict["event"] = "Press Start" + elif fileread.eventname == "raremaleslashex": + ficdict["event"] = "Rare Male Slash Exchange" + elif fileread.eventname == "seasonsofdrabbles": + ficdict["event"] = "Seasons Of Drabbles" + elif fileread.eventname == "yuletide": + ficdict["event"] = "Yuletide" + elif fileread.eventname == "ffprompts": + ficdict["event"] = "Final Fantasy Prompts" + elif fileread.eventname == "no-true-pair": + ficdict["event"] = "No True Pair" + elif fileread.eventname == "threesentenceficathon": + ficdict["event"] = "Three-Sentence Ficathon" + elif fileread.eventname == "100words": + ficdict["event"] = "100 Words" + elif fileread.eventname == "drabble-zone": + ficdict["event"] = "The Weekly Drabble Zone" + else: + ficdict["event"] = fileread.eventname ficdict["eventtype"] = fileread.event except: pass @@ -142,6 +175,73 @@ while ficcount > 0: ficdict["pdf"] = True else: ficdict["pdf"] = False + try: + if int((str(fileread.warnstring))[1]) == 3: + ficdict["sex"] = "lemon" + elif int((str(fileread.warnstring))[1]) == 2: + ficdict["sex"] = "lime" + elif int((str(fileread.warnstring))[1]) == 1: + ficdict["sex"] = "ref" + elif int((str(fileread.warnstring))[1]) == 0: + ficdict["sex"] = None + if int((str(fileread.warnstring))[2]) == 2: + ficdict["death"] = "death" + elif int((str(fileread.warnstring))[2]) == 1: + ficdict["death"] = "ref" + elif int((str(fileread.warnstring))[2]) == 0: + ficdict["death"] = None + if int((str(fileread.warnstring))[3]) == 2: + ficdict["mh"] = "mh" + elif int((str(fileread.warnstring))[3]) == 1: + ficdict["mh"] = "ref" + elif int((str(fileread.warnstring))[3]) == 0: + ficdict["mh"] = None + if int((str(fileread.warnstring))[4]) == 2: + ficdict["bigotry"] = "bigotry" + elif int((str(fileread.warnstring))[4]) == 1: + ficdict["bigotry"] = "ref" + elif int((str(fileread.warnstring))[4]) == 0: + ficdict["bigotry"] = None + if int((str(fileread.warnstring))[5]) == 2: + ficdict["vomiting"] = "vomiting" + elif int((str(fileread.warnstring))[5]) == 1: + ficdict["vomiting"] = "ref" + elif int((str(fileread.warnstring))[5]) == 0: + ficdict["vomiting"] = None + if int((str(fileread.warnstring))[6]) == 2: + ficdict["consent"] = "consent" + elif int((str(fileread.warnstring))[6]) == 1: + ficdict["consent"] = "ref" + elif int((str(fileread.warnstring))[6]) == 0: + ficdict["consent"] = None + if int((str(fileread.warnstring))[7]) == 2: + ficdict["underage"] = "underage" + elif int((str(fileread.warnstring))[7]) == 1: + ficdict["underage"] = "ref" + elif int((str(fileread.warnstring))[7]) == 0: + ficdict["underage"] = None + if int((str(fileread.warnstring))[8]) == 2: + ficdict["incest"] = "incest" + elif int((str(fileread.warnstring))[8]) == 1: + ficdict["incest"] = "ref" + elif int((str(fileread.warnstring))[8]) == 0: + ficdict["incest"] = None + if int((str(fileread.warnstring))[9]) == 2: + ficdict["amp"] = "amp" + elif int((str(fileread.warnstring))[9]) == 1: + ficdict["amp"] = "ref" + elif int((str(fileread.warnstring))[9]) == 0: + ficdict["amp"] = None + except: + ficdict["sex"] = None + ficdict["death"] = None + ficdict["mh"] = None + ficdict["bigotry"] = None + ficdict["vomiting"] = None + ficdict["consent"] = None + ficdict["underage"] = None + ficdict["incest"] = None + ficdict["amp"] = None try: transid = stringno(fileread.translation) if os.path.exists("files/translationsmeta/" + transid + ".py"): @@ -168,9 +268,11 @@ fandoms = [] challenges = [] exchanges = [] promptmemes = [] +years = [] for fic in ficlist: for fandom in fic["fandoms"]: fandoms.append(fandom) + years.append(int(datetime.datetime.strftime(fic["latestdate"],"%Y"))) try: if fic["eventtype"] == "challenge": challenges.append(fic["event"]) @@ -180,10 +282,11 @@ for fic in ficlist: promptmemes.append(fic["event"]) except: pass -fandoms = sorted(list(dict.fromkeys(fandoms))) -challenges = sorted(list(dict.fromkeys(challenges))) -exchanges = sorted(list(dict.fromkeys(exchanges))) -promptmemes = sorted(list(dict.fromkeys(promptmemes))) +fandoms = sorted(list(dict.fromkeys(fandoms)),key=str.casefold) +challenges = sorted(list(dict.fromkeys(challenges)),key=str.casefold) +exchanges = sorted(list(dict.fromkeys(exchanges)),key=str.casefold) +promptmemes = sorted(list(dict.fromkeys(promptmemes)),key=str.casefold) +years = sorted(list(dict.fromkeys(years)),reverse=True) output = open("index.html", "w") @@ -202,7 +305,10 @@ for exchange in exchanges: for promptmeme in promptmemes: output.write("\n form:has([value=\"" + classgen(promptmeme) + "\"]:checked) ~ div.fic:not(.event-" + classgen(promptmeme) + "),") -output.write("\n form:has([value=\"unprompted\"]:checked) ~ div.fic:not(.unprompted),\n form:has([value=\"crossover\"]:checked) ~ div.fic:not(.fandom-crossover),\n form:has([value=\"ow\"]:checked) ~ div.fic:not(.fandom-ow),\n form:has([value=\"nolemons\"]:checked) ~ div.fic:has(span.lemon),\n form:has([value=\"nolimes\"]:checked) ~ div.fic:has(span.lime),\n form:has([value=\"lemonlime\"]:checked) ~ div.fic:not(:has(span.lime)),\n form:has([value=\"drabble\"]:checked) ~ div.fic:not(.format-drabble),\n form:has([value=\"drabblefam\"]:checked) ~ div.fic:not(.format-drabblefam),\n form:has([value=\"three\"]:checked) ~ div.fic:not(.format-three),\n form:has([value=\"oneshot\"]:checked) ~ div.fic:not(.format-oneshot),\n form:has([value=\"chaptered\"]:checked) ~ div.fic:not(.format-chaptered),\n form:has([value=\"unusual\"]:checked) ~ div.fic:not(.format-unusual),\n form:has([value=\"unpassword\"]:checked) ~ div.fic.locked,\n form:has([value=\"gen\"]:checked) ~ div.fic:not(:has(span.ship.gen)),\n form:has([value=\"bl\"]:checked) ~ div.fic:not(:has(span.ship.bl)),\n form:has([value=\"gl\"]:checked) ~ div.fic:not(:has(span.ship.gl)),\n form:has([value=\"hetero\"]:checked) ~ div.fic:not(:has(span.ship.hetero)) {\n display: none;\n }\n span.spoiler {\n filter: blur(5px);\n }\n span.spoiler:hover {\n filter: none;\n }\n div.fic span.warning {\n cursor: help;\n }\n span.warning.lime:not(.lemon) {\n filter: hue-rotate(70deg);\n }\n span.warning.reference, span.warning.reference.lime:not(.lemon) {\n filter: grayscale(100%);\n }\n span.warning:hover {\n filter: brightness(120%);\n }\n span.warning.lime:not(.lemon):hover {\n filter: hue-rotate(70deg) brightness(120%);\n }\n span.warning.reference:hover {\n filter: grayscale(50%);\n }\n span.warning.reference.lime:not(.lemon):hover {\n filter: hue-rotate(70deg) grayscale(50%);\n }\n span.ship {\n font-weight: bold;\n }\n span.ship:not(.gen) {\n border-bottom: 2px dotted var(--highlight-colour);\n cursor: help;\n }\n span.bl {\n color: rgb(148,187,233);\n }\n span.gl {\n color: rgb(238,174,202);\n }\n span.hetero {\n color: rgb(193,181,218)\n }\n span.minor {\n font-size: 0em;\n }\n span.minor:before {\n content: \"…\";\n font-size: 1rem;\n }\n span.minor:hover {\n font-size: 0.7rem;\n }\n span.minor:hover:before {\n content: \"\";\n }\n div#ficring {\n margin: 0 auto;\n width: fit-content;\n }\n div#ficring a {\n border: none;\n }\n \n \n \n \n
\n
\n
\n

Fanfiction

\n

I’m partway through redesigning my fic archive and plan to gradually reinstate some of the features it used to have; for now, here’s a filterable masterlist. Warnings and ratings are not currently implemented, browse at your own risk. Some fics will have slight inaccuracies in metadata for the time being!

\n
\n \n
\n
\n \n \n \n \n \n
\n
\n
\n

Fanfiction

\n

I’m partway through redesigning my fic archive and plan to gradually reinstate some of the features it used to have; for now, here’s a filterable masterlist. Some fics will have slight inaccuracies in metadata for the time being, browse at your own risk!

\n
\n \n
\n \n \n \n \n
\n \n \n \n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n
\n ") +output.write("\n \n \n \n
\n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n
\n
\n Key to symbols\n
    \n
  • 🍋 – explicit sexual content
  • \n
  • 🍋 – non-explicit sexual content
  • \n
  • 💀 – death
  • \n
  • 😢 – mental health themes (may include self-injury, suicidal ideation, suicide attempts)
  • \n
  • 🚫 – in-universe bigotry
  • \n
  • 🤢 – vomiting
  • \n
  •  – consent issues
  • \n
  • 👶 – underage sexual activity according to modern UK law
  • \n
  • 🦎 – incest
  • \n
  • 🦶 – amputation
  • \n
\n

When a warning is shown in greyscale, this means there are references to the relevant theme but no on-screen portrayal.

\n
") for fic in ficlist: output.write("\n
\n

no. " + stringno(fic["id"]) + "") @@ -340,6 +452,44 @@ for fic in ficlist: output.write(", " + fic["genre"]) except: pass + if fic["sex"] == "lemon": + output.write(" 🍋") + elif fic["sex"] == "lime": + output.write(" 🍋") + elif fic["sex"] == "ref": + output.write(" 🍋") + if fic["death"] == "death": + output.write(" 💀") + elif fic["death"] == "ref": + output.write(" 💀") + if fic["mh"] == "mh": + output.write(" 😢") + elif fic["mh"] == "ref": + output.write(" 😢") + if fic["bigotry"] == "bigotry": + output.write(" 🚫") + elif fic["bigotry"] == "ref": + output.write(" 🚫") + if fic["vomiting"] == "vomiting": + output.write(" 🤢") + elif fic["vomiting"] == "ref": + output.write(" 🤢") + if fic["consent"] == "consent": + output.write(" ") + elif fic["consent"] == "ref": + output.write(" ") + if fic["underage"] == "underage": + output.write(" 👶") + elif fic["underage"] == "ref": + output.write(" 👶") + if fic["incest"] == "incest": + output.write(" 🦶") + elif fic["incest"] == "ref": + output.write(" 🦎") + if fic["amp"] == "amp": + output.write(" 🦶") + elif fic["amp"] == "ref": + output.write(" 🦎") output.write("") try: output.write("\n
  • Written for " + fic["event"] + ".") diff --git a/originals-template.py b/originals-template.py index 3f44c8d..4bede7d 100644 --- a/originals-template.py +++ b/originals-template.py @@ -19,6 +19,7 @@ fandom = [""] # ship = [""] genre = [""] # warnings = "" +warnstring = 9000000000 # 9 is a dummy; then sex (0–3), death, mental health, bigotry, vomiting, consent, underage, incest, amputation (all others being 0–2) time = "" location = [""] # locationtext = ""