From d374cf96901f57c6ce216266e76f1e25fbb863e8 Mon Sep 17 00:00:00 2001 From: Mez Date: Thu, 17 Jul 2025 22:38:30 +0100 Subject: [PATCH] Add warning symbols --- new.py | 109 +++++++++++++++++++++++++++++++++++++++++- originals-template.py | 1 + 2 files changed, 108 insertions(+), 2 deletions(-) diff --git a/new.py b/new.py index 20a0104..99c2f28 100644 --- a/new.py +++ b/new.py @@ -175,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"): @@ -241,7 +308,7 @@ for promptmeme in promptmemes: for year in years: output.write("\n form:has([value=\"" + str(year) + "\"]:checked) ~ div.fic:not(.date-" + str(year) + "),") -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 for year in years: output.write("\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 ") +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 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
🍋") + 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 = ""