diff --git a/new.py b/new.py index 4731bce..20a0104 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 @@ -168,9 +201,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 +215,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,6 +238,9 @@ for exchange in exchanges: for promptmeme in promptmemes: output.write("\n form:has([value=\"" + classgen(promptmeme) + "\"]:checked) ~ div.fic:not(.event-" + classgen(promptmeme) + "),") +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
\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 ") for fic in ficlist: output.write("\n