diff --git a/characters.py b/characters.py index 5f5cd3d..f54141c 100644 --- a/characters.py +++ b/characters.py @@ -1,4 +1,4 @@ -import os +import datetime, os from importlib import import_module fffandoms = ["FF1","FF2","FF3","FF4","FF5","FF6","FF7","FF8","FF9","FFX","FF11","FF12","FF13","FF14","FF15"] @@ -29,24 +29,32 @@ def charlist(local=False): if os.path.exists("originalsmeta/" + ficcountstring + ".py"): ficfile = "originalsmeta." + ficcountstring fileread = import_module(ficfile) - if len(fileread.fandom) == 1: - if fandom in fileread.fandom: - try: - thecharacters.extend(fileread.charpov) - except: - pass - try: - thecharacters.extend(fileread.charmain) - except: - pass - try: - thecharacters.extend(fileread.charsecondary) - except: - pass - try: - thecharacters.extend(fileread.charmention) - except: - pass + try: + if fileread.revealdate > datetime.datetime.now(): + revealed = False + else: + revealed = True + except: + revealed = True + if revealed == True: + if len(fileread.fandom) == 1: + if fandom in fileread.fandom: + try: + thecharacters.extend(fileread.charpov) + except: + pass + try: + thecharacters.extend(fileread.charmain) + except: + pass + try: + thecharacters.extend(fileread.charsecondary) + except: + pass + try: + thecharacters.extend(fileread.charmention) + except: + pass thecharacters = sorted(list(dict.fromkeys(thecharacters))) for character in thecharacters: if character != "OCs": @@ -74,28 +82,36 @@ def charlist(local=False): if os.path.exists("originalsmeta/" + ficcountstring + ".py"): countfile = "originalsmeta." + ficcountstring fileread = import_module(countfile) - if searchfandom in fileread.fandom: - # append to lists - try: - if character in fileread.charpov: - povcount.append(ficcount) - except: - pass - try: - if character in fileread.charmain: - maincount.append(ficcount) - except: - pass - try: - if character in fileread.charsecondary: - secondarycount.append(ficcount) - except: - pass - try: - if character in fileread.charmention: - mentioncount.append(ficcount) - except: - pass + try: + if fileread.revealdate > datetime.datetime.now(): + revealed = False + else: + revealed = True + except: + revealed = True + if revealed == True: + if searchfandom in fileread.fandom: + # append to lists + try: + if character in fileread.charpov: + povcount.append(ficcount) + except: + pass + try: + if character in fileread.charmain: + maincount.append(ficcount) + except: + pass + try: + if character in fileread.charsecondary: + secondarycount.append(ficcount) + except: + pass + try: + if character in fileread.charmention: + mentioncount.append(ficcount) + except: + pass # write details element output = "build/ff/characters/index.html" filewrite = open(output, "a") diff --git a/events.py b/events.py index e079b87..00e0614 100644 --- a/events.py +++ b/events.py @@ -25,12 +25,20 @@ def eventlist(local=False): ficfile = "originalsmeta." + ficcountstring fileread = import_module(ficfile) try: - events.append({"name":fileread.eventname,"location":fileread.eventlocation,"sortname":fileread.eventname.lower()}) + if fileread.revealdate > datetime.datetime.now(): + revealed = False + else: + revealed = True except: + revealed = True + if revealed == True: try: - events.append({"name":fileread.eventname,"location":"","sortname":fileread.eventname.lower()}) + events.append({"name":fileread.eventname,"location":fileread.eventlocation,"sortname":fileread.eventname.lower()}) except: - pass + try: + events.append({"name":fileread.eventname,"location":"","sortname":fileread.eventname.lower()}) + except: + pass newlist = [] for event in events: if event not in newlist: @@ -53,10 +61,18 @@ def eventlist(local=False): countfile = "originalsmeta." + ficcountstring fileread = import_module(countfile) try: - if fileread.eventname == theevent: - evententries.append({"ficno":ficcount,"year":(fileread.datewords[0])["date"].year,"fandom":fileread.fandom}) + if fileread.revealdate > datetime.datetime.now(): + revealed = False + else: + revealed = True except: - pass + revealed = True + if revealed == True: + try: + if fileread.eventname == theevent: + evententries.append({"ficno":ficcount,"year":(fileread.datewords[0])["date"].year,"fandom":fileread.fandom}) + except: + pass eventfandoms = [] for entry in evententries: eventfandoms.extend(entry["fandom"]) diff --git a/feed.py b/feed.py index f9309b3..1cf4e26 100644 --- a/feed.py +++ b/feed.py @@ -26,8 +26,12 @@ def feedgen(local=False): if os.path.exists("originalsmeta/" + ficcountstring + ".py"): ficfile = "originalsmeta." + ficcountstring fileread = import_module(ficfile) - for instalment in fileread.datewords: - datelist.append(instalment["date"]) + try: + if fileread.revealdate <= datetime.datetime.now(): + datelist.append(fileread.revealdate) + except: + for instalment in fileread.datewords: + datelist.append(instalment["date"]) elif os.path.exists("translationsmeta/" + ficcountstring + ".py"): ficfile = "translationsmeta." + ficcountstring fileread = import_module(ficfile) @@ -52,10 +56,16 @@ def feedgen(local=False): if os.path.exists("originalsmeta/" + ficcountstring + ".py"): ficfile = "originalsmeta." + ficcountstring fileread = import_module(ficfile) - for instalment in fileread.datewords: - if instalment["date"] == date: - if targetfile == 0: - targetfile = ficfile + try: + if fileread.revealdate <= datetime.datetime.now(): + if fileread.revealdate == date: + if targetfile == 0: + targetfile = ficfile + except: + for instalment in fileread.datewords: + if instalment["date"] == date: + if targetfile == 0: + targetfile = ficfile elif os.path.exists("translationsmeta/" + ficcountstring + ".py"): transfile = "translationsmeta." + ficcountstring transread = import_module(transfile) @@ -69,8 +79,12 @@ def feedgen(local=False): thefile = import_module(targetfile) filewrite = open("build/feed.xml", "a") filewrite.write("\n") - if (thefile.datewords[0])["date"] != date: - filewrite.write("Updated: ") + try: + if thefile.revealdate == True: + pass + except: + if (thefile.datewords[0])["date"] != date: + filewrite.write("Updated: ") filewrite.write("Fic " + ficcountstring) if thefile.language == "fr": filewrite.write (" (French)") @@ -150,7 +164,7 @@ def feedgen(local=False): filewrite.write(futuredate.strftime("%a, %-d %b %Y")) filewrite.write(" 00:00:00 UT</pubDate>\n<link>") if local: - filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/masterlist") + filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/masterlist/index.html") else: filewrite.write("https://tre.praze.net/fic/masterlist") filewrite.write("#fic" + ficcountstring + "</link>\n<guid isPermaLink=\"false\">praze-fic-" + ficcountstring) diff --git a/indexgen.py b/indexgen.py index f9ed8a9..2295034 100644 --- a/indexgen.py +++ b/indexgen.py @@ -9,7 +9,7 @@ def indexgen(local=False): # write header headerfooter.headerwrite("build/index.html","Tré’s fic archive","Tré’s fic archive","",True,local) filewrite = open("build/index.html", "a") - filewrite.write("<p>Here is all my fanfiction! It’s also archived at AO3 under the name <span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://archiveofourown.org/users/ovely/profile\"><img src=\"https://p.dreamwidth.org/b164c54b26e4/-/archiveofourown.org/favicon.ico\" alt=\"[archiveofourown.org profile]\" width=\"16\" height=\"16\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\" /></a><a href=\"https://archiveofourown.org/users/ovely/pseuds/ovely\"><b>ovely</b></a></span>.</p>\n<p>I’ve recently implemented comments – read about that <a href=\"") + filewrite.write("<p>Here is all my fanfiction! Much of it is also archived at AO3 under the name <span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://archiveofourown.org/users/ovely/profile\"><img src=\"https://p.dreamwidth.org/b164c54b26e4/-/archiveofourown.org/favicon.ico\" alt=\"[archiveofourown.org profile]\" width=\"16\" height=\"16\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\" /></a><a href=\"https://archiveofourown.org/users/ovely/pseuds/ovely\"><b>ovely</b></a></span>.</p>\n<p>I’ve recently implemented comments – read about that <a href=\"") if local: filewrite.write("comments/index.html") else: diff --git a/makeheader.py b/makeheader.py index 5759dde..7b7518c 100644 --- a/makeheader.py +++ b/makeheader.py @@ -35,377 +35,379 @@ def ficgen(ficno,unique=False,output="output.html",local=False): translationfile = "translationsmeta." + translationstring transread = import_module(translationfile) except: - pass - # write to output file - filewrite = open(output, "a") - filewrite.write("<div class=\"fic\"") - # give the div an id if requested - if unique: - filewrite.write(" id=\"fic" + ficnostring + "\"") - filewrite.write(">\n<h1><span class=\"ficno\">" + ficnostring) - # write ficno including translation if there is one + pass try: - filewrite.write("/" + translationstring) + if fileread.revealdate > datetime.datetime.now(): + revealed = False + else: + revealed = True except: - pass - filewrite.write("</span>") - # write title if requested - if fileread.showtitle: - filewrite.write(" <span class=\"fictitle\">" + fileread.title) + revealed = True + if revealed == True: + # write to output file + filewrite = open(output, "a") + filewrite.write("<div class=\"fic\"") + # give the div an id if requested + if unique: + filewrite.write(" id=\"fic" + ficnostring + "\"") + filewrite.write(">\n<h1><span class=\"ficno\">" + ficnostring) + # write ficno including translation if there is one try: - if transread.showtitle: - filewrite.write("/" + transread.title) + filewrite.write("/" + translationstring) except: pass filewrite.write("</span>") - else: - try: - if transread.showtitle: - filewrite.write(" <span class=\"fictitle\">" + transread.title) - except: - pass - if fileread.status == "abandoned": - filewrite.write(" <span class=\"abandoned\"></span>") - filewrite.write("</h1>\n<ul class=\"ficmeta\">\n<li class=\"ficdate\">") - # write date, date range if ranged or translation - if fileread.status == "incomplete": - filewrite.write((fileread.datewords[0])["date"].strftime("%-d %B %Y") + "–") - else: - try: - if transread.status == "incomplete": - filewrite.write((fileread.datewords[0])["date"].strftime("%-d %B %Y") + "–") - else: - if fileread.translation: - if (transread.datewords[-1])["date"].year == (fileread.datewords[0])["date"].year: - if (transread.datewords[-1])["date"].month == (fileread.datewords[0])["date"].month: - if (transread.datewords[-1])["date"].date == (fileread.datewords[0])["date"].date: - filewrite.write((fileread.datewords[0])["date"].strftime("%-d %B %Y")) - else: - filewrite.write((fileread.datewords[0])["date"].strftime("%-d") + "–" + (transread.datewords[-1])["date"].strftime("%-d %B %Y")) - else: - filewrite.write((fileread.datewords[0])["date"].strftime("%-d %B") + "–" + (transread.datewords[-1])["date"].strftime("%-d %B %Y")) - else: - filewrite.write((fileread.datewords[0])["date"].strftime("%-d %B %Y") + "–" + (transread.datewords[-1])["date"].strftime("%-d %B %Y")) - except: - try: - filewrite.write(fileread.approxdate) - except: - if (fileread.datewords[0])["date"].year == (fileread.datewords[-1])["date"].year: - if (fileread.datewords[0])["date"].month == (fileread.datewords[-1])["date"].month: - if (fileread.datewords[0])["date"] == (fileread.datewords[-1])["date"]: - filewrite.write((fileread.datewords[-1])["date"].strftime("%-d %B %Y")) - else: - filewrite.write((fileread.datewords[0])["date"].strftime("%-d") + "–" + (fileread.datewords[-1])["date"].strftime("%-d %B %Y")) - else: - filewrite.write((fileread.datewords[0])["date"].strftime("%-d %B") + "–" + (fileread.datewords[-1])["date"].strftime("%-d %B %Y")) - else: - filewrite.write((fileread.datewords[0])["date"].strftime("%-d %B %Y") + "–" + (fileread.datewords[-1])["date"].strftime("%-d %B %Y")) - # write wordcount - sumwords = 0 - for instalment in fileread.datewords: - sumwords = sumwords + instalment["words"] - filewrite.write("</li>\n<li class=\"wordcount\">" + str(sumwords)) - transwords = 0 - try: - for instalment in transread.datewords: - transwords = transwords + instalment["words"] - filewrite.write(" + " + str(transwords)) - except: - pass - # write rating - filewrite.write("</li>\n<li class=\"rating\"><span class=\"" + fileread.rating + "\">") - # write reason for rating if there is one - try: - filewrite.write(" (" + fileread.ratingreason + ")") - except: - pass - filewrite.write("</span></li>\n<li class=\"fandom\">") - # write fandom - try: - filewrite.write(fileread.fandomtext) - except: - filewrite.write("/".join(fileread.fandom)) - filewrite.write("</li>\n") - # write characters in pov, main, secondary categories, if they exist - try: - filewrite.write("<li class=\"characters\">" + fileread.charactertext + "</li>\n") - except: - try: - filewrite.write("<li class=\"characters\">" + ", ".join(fileread.charpov)) + # write title if requested + if fileread.showtitle: + filewrite.write(" <span class=\"fictitle\">" + fileread.title) try: - filewrite.write(", " + ", ".join(fileread.charmain)) + if transread.showtitle: + filewrite.write("/" + transread.title) except: pass + filewrite.write("</span>") + else: try: - filewrite.write(", " + "<small>" + ", ".join(fileread.charsecondary) + "</small>") + if transread.showtitle: + filewrite.write(" <span class=\"fictitle\">" + transread.title) except: pass - filewrite.write("</li>\n") - except: + if fileread.status == "abandoned": + filewrite.write(" <span class=\"abandoned\"></span>") + filewrite.write("</h1>\n<ul class=\"ficmeta\">\n<li class=\"ficdate\">") + # write date, date range if ranged or translation + if fileread.status == "incomplete": + filewrite.write((fileread.datewords[0])["date"].strftime("%-d %B %Y") + "–") + else: try: - filewrite.write("<li class=\"characters\">" + ", ".join(fileread.charmain)) - try: - filewrite.write(", " + "<small>" + ", ".join(fileread.charsecondary) + "</small>") - except: - pass - filewrite.write("</li>\n") + if transread.status == "incomplete": + filewrite.write((fileread.datewords[0])["date"].strftime("%-d %B %Y") + "–") + else: + if fileread.translation: + if (transread.datewords[-1])["date"].year == (fileread.datewords[0])["date"].year: + if (transread.datewords[-1])["date"].month == (fileread.datewords[0])["date"].month: + if (transread.datewords[-1])["date"].date == (fileread.datewords[0])["date"].date: + filewrite.write((fileread.datewords[0])["date"].strftime("%-d %B %Y")) + else: + filewrite.write((fileread.datewords[0])["date"].strftime("%-d") + "–" + (transread.datewords[-1])["date"].strftime("%-d %B %Y")) + else: + filewrite.write((fileread.datewords[0])["date"].strftime("%-d %B") + "–" + (transread.datewords[-1])["date"].strftime("%-d %B %Y")) + else: + filewrite.write((fileread.datewords[0])["date"].strftime("%-d %B %Y") + "–" + (transread.datewords[-1])["date"].strftime("%-d %B %Y")) except: try: - filewrite.write("<li class=\"characters\">" + ", ".join(fileread.charsecondary) + "</li>\n") + filewrite.write(fileread.approxdate) except: - pass - # write genre - filewrite.write("<li class=\"genre\">" + ", ".join(fileread.genre) + "</li>\n") - # write warnings if they exist - try: - filewrite.write("<li class=\"warnings\">" + fileread.warnings + "</li>\n") - except: - pass - # write point in canon if there is one - try: - filewrite.write("<li class=\"time\">" + fileread.time + "</li>\n") - except: - pass - # write locations if there are any - try: - filewrite.write("<li class=\"location\">" + fileread.locationtext + "</li>\n") - except: + if (fileread.datewords[0])["date"].year == (fileread.datewords[-1])["date"].year: + if (fileread.datewords[0])["date"].month == (fileread.datewords[-1])["date"].month: + if (fileread.datewords[0])["date"] == (fileread.datewords[-1])["date"]: + filewrite.write((fileread.datewords[-1])["date"].strftime("%-d %B %Y")) + else: + filewrite.write((fileread.datewords[0])["date"].strftime("%-d") + "–" + (fileread.datewords[-1])["date"].strftime("%-d %B %Y")) + else: + filewrite.write((fileread.datewords[0])["date"].strftime("%-d %B") + "–" + (fileread.datewords[-1])["date"].strftime("%-d %B %Y")) + else: + filewrite.write((fileread.datewords[0])["date"].strftime("%-d %B %Y") + "–" + (fileread.datewords[-1])["date"].strftime("%-d %B %Y")) + # write wordcount + sumwords = 0 + for instalment in fileread.datewords: + sumwords = sumwords + instalment["words"] + filewrite.write("</li>\n<li class=\"wordcount\">" + str(sumwords)) + transwords = 0 try: - filewrite.write("<li class=\"location\">" + ", ".join(fileread.location) + "</li>\n") + for instalment in transread.datewords: + transwords = transwords + instalment["words"] + filewrite.write(" + " + str(transwords)) except: pass - filewrite.write("</ul>\n") - # write summary if there is one - try: - if transread.language == "en": + # write rating + filewrite.write("</li>\n<li class=\"rating\"><span class=\"" + fileread.rating + "\">") + # write reason for rating if there is one + try: + filewrite.write(" (" + fileread.ratingreason + ")") + except: + pass + filewrite.write("</span></li>\n<li class=\"fandom\">") + # write fandom + try: + filewrite.write(fileread.fandomtext) + except: + filewrite.write("/".join(fileread.fandom)) + filewrite.write("</li>\n") + # write characters in pov, main, secondary categories, if they exist + try: + filewrite.write("<li class=\"characters\">" + fileread.charactertext + "</li>\n") + except: try: - filewrite.write("<p class=\"summary\">" + transread.summary) - try: - filewrite.write(" " + fileread.summary + "</p>\n") - except: - filewrite.write("</p>\n") - except: + filewrite.write("<li class=\"characters\">" + ", ".join(fileread.charpov)) try: - filewrite.write("<p class=\"summary\">" + fileread.summary + "</p>\n") + filewrite.write(", " + ", ".join(fileread.charmain)) except: pass - elif transread.language == "fr": - try: - filewrite.write("<p class=\"summary\">" + fileread.summary) try: - filewrite.write(" " + transread.summary + "</p>\n") + filewrite.write(", " + "<small>" + ", ".join(fileread.charsecondary) + "</small>") except: - filewrite.write("</p>\n") + pass + filewrite.write("</li>\n") except: try: - filewrite.write("<p class=\"summary\">" + transread.summary + "</p>\n") + filewrite.write("<li class=\"characters\">" + ", ".join(fileread.charmain)) + try: + filewrite.write(", " + "<small>" + ", ".join(fileread.charsecondary) + "</small>") + except: + pass + filewrite.write("</li>\n") except: - pass - except: + try: + filewrite.write("<li class=\"characters\">" + ", ".join(fileread.charsecondary) + "</li>\n") + except: + pass + # write genre + filewrite.write("<li class=\"genre\">" + ", ".join(fileread.genre) + "</li>\n") + # write warnings if they exist try: - filewrite.write("<p class=\"summary\">" + fileread.summary + "</p>\n") + filewrite.write("<li class=\"warnings\">" + fileread.warnings + "</li>\n") except: pass - # set up notes paragraph if required - if (fileread.datewords[0])["date"].year < 2011: - juvenilia = True - else: - juvenilia = False - try: - if fileread.notes: - filewrite.write("<p class=\"note\">") - except: + # write point in canon if there is one try: - if fileread.event: - filewrite.write("<p class=\"note\">") + filewrite.write("<li class=\"time\">" + fileread.time + "</li>\n") except: - if juvenilia: - filewrite.write("<p class=\"note\">") - # if juvenilia, add age - if juvenilia: - age = relativedelta((fileread.datewords[0])["date"], datetime.datetime(1993,6,28)).years - filewrite.write("Age at time of writing: " + str(age) + ".") + pass + # write locations if there are any try: - if fileread.notes: - filewrite.write(" ") + filewrite.write("<li class=\"location\">" + fileread.locationtext + "</li>\n") except: - pass - # write event details if there are any - try: - if fileread.eventname == "fail-fandomanon": - filewrite.write("In response to prompt at <span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://fail-fandomanon.dreamwidth.org/profile\"><img src=\"https://www.dreamwidth.org/img/silk/identity/community.png\" alt=\"[community profile]\" width=\"17\" height=\"17\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://fail-fandomanon.dreamwidth.org/\"><b>fail_fandomanon</b></a></span>: <i>" + fileread.prompt + "</i>.") try: - if fileread.notes: - filewrite.write(" ") + filewrite.write("<li class=\"location\">" + ", ".join(fileread.location) + "</li>\n") except: pass - elif fileread.eventname == "robotsoup": - filewrite.write("Written for <span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://kalloway.dreamwidth.org/profile\"><img src=\"https://www.dreamwidth.org/img/silk/identity/user.png\" alt=\"[personal profile]\" width=\"17\" height=\"17\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://kalloway.dreamwidth.org/\"><b>kalloway</b></a></span>’s " + fileread.eventdeets + " fest.") + filewrite.write("</ul>\n") + # write summary if there is one + try: + if transread.language == "en": + try: + filewrite.write("<p class=\"summary\">" + transread.summary) + try: + filewrite.write(" " + fileread.summary + "</p>\n") + except: + filewrite.write("</p>\n") + except: + try: + filewrite.write("<p class=\"summary\">" + fileread.summary + "</p>\n") + except: + pass + elif transread.language == "fr": + try: + filewrite.write("<p class=\"summary\">" + fileread.summary) + try: + filewrite.write(" " + transread.summary + "</p>\n") + except: + filewrite.write("</p>\n") + except: + try: + filewrite.write("<p class=\"summary\">" + transread.summary + "</p>\n") + except: + pass + except: try: - if fileread.notes: - filewrite.write(" ") + filewrite.write("<p class=\"summary\">" + fileread.summary + "</p>\n") except: pass + # set up notes paragraph if required + if (fileread.datewords[0])["date"].year < 2011: + juvenilia = True else: - filewrite.write("Written for ") + juvenilia = False + try: + if fileread.notes: + filewrite.write("<p class=\"note\">") + except: try: - if fileread.eventlocation == "dwcomm": - filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://" + fileread.eventname.replace("_","-") + ".dreamwidth.org/profile\"><img src=\"https://www.dreamwidth.org/img/silk/identity/community.png\" alt=\"[community profile]\" width=\"17\" height=\"17\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://" + fileread.eventname.replace("_","-") + ".dreamwidth.org/\"><b>" + fileread.eventname.replace("-","_") + "</b></a></span>") - elif fileread.eventlocation == "dwjournal": - filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://" + fileread.eventname.replace("_","-") + ".dreamwidth.org/profile\"><img src=\"https://www.dreamwidth.org/img/silk/identity/user.png\" alt=\"[personal profile]\" width=\"17\" height=\"17\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://"+ fileread.eventname.replace("_","-") + ".dreamwidth.org/\"><b>" + fileread.eventname.replace("-","_")+ "</b></a></span>") - elif fileread.eventlocation == "ljjournal": - filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://" + fileread.eventname.replace("_","-") + ".livejournal.com/profile\"><img src=\"https://www.dreamwidth.org/img/external/lj-userinfo.gif\" alt=\"[personal profile]\" width=\"17\" height=\"17\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://"+ fileread.eventname.replace("_","-") + ".livejournal.com/\"><b>" + fileread.eventname.replace("-","_")+ "</b></a></span>") + if fileread.event: + filewrite.write("<p class=\"note\">") except: - if fileread.eventname == "Semaine de la fic française": - filewrite.write("<i>Semaine de la fic française</i>") - else: - filewrite.write(fileread.eventname) + if juvenilia: + filewrite.write("<p class=\"note\">") + # if juvenilia, add age + if juvenilia: + age = relativedelta((fileread.datewords[0])["date"], datetime.datetime(1993,6,28)).years + filewrite.write("Age at time of writing: " + str(age) + ".") try: - if fileread.eventfrequency == "annual": - filewrite.write(" " + str((fileread.datewords[0])["date"].year)) - else: - filewrite.write(" " + fileread.eventfrequency) + if fileread.notes: + filewrite.write(" ") except: pass - if fileread.event == "prompt": - filewrite.write(", in response to ") - try: - if fileread.recip: - try: - if fileread.recipsite == "dw": - filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://" + fileread.recip.replace("_","-") + ".dreamwidth.org/profile\"><img src=\"https://www.dreamwidth.org/img/silk/identity/user.png\" alt=\"[personal profile]\" width=\"17\" height=\"17\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://"+ fileread.recip.replace("_","-") + ".dreamwidth.org/\"><b>" + fileread.recip.replace("-","_") + "</b></a></span>") - elif fileread.recipsite == "ao3": - try: - if fileread.recippseud: - filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://archiveofourown.org/users/" + fileread.recip + "/profile\"><img src=\"https://p.dreamwidth.org/b164c54b26e4/-/archiveofourown.org/favicon.ico\" alt=\"[archiveofourown.org profile]\" width=\"16\" height=\"16\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://archiveofourown.org/users/"+ fileread.recip + "/pseuds/" + fileread.recippseud.replace(" ","%20") + "\"><b>" + fileread.recippseud + " (" + fileread.recip + ")</b></a></span>") - except: - filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://archiveofourown.org/users/" + fileread.recip + "/profile\"><img src=\"https://p.dreamwidth.org/b164c54b26e4/-/archiveofourown.org/favicon.ico\" alt=\"[archiveofourown.org profile]\" width=\"16\" height=\"16\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://archiveofourown.org/users/"+ fileread.recip + "\"><b>" + fileread.recip + "</b></a></span>") - elif fileread.recipsite == "tumblr": - filewrite.write("<span style=\"white-space: nowrap;\"><a href=\"https://" + fileread.recip + ".tumblr.com\"><img src=\"https://www.tumblr.com/favicon.ico\" alt=\"[tumblr.com profile]\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\" width=\"16\" height=\"16\"></a><a href=\"https://" + fileread.recip + ".tumblr.com\"><b>" + fileread.recip + "</b></a></span>") - except: - filewrite.write(fileread.recip) - filewrite.write("’s ") - except: - pass - filewrite.write("prompt, <i>" + fileread.prompt + "</i>.") + # write event details if there are any + try: + if fileread.eventname == "fail-fandomanon": + filewrite.write("In response to prompt at <span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://fail-fandomanon.dreamwidth.org/profile\"><img src=\"https://www.dreamwidth.org/img/silk/identity/community.png\" alt=\"[community profile]\" width=\"17\" height=\"17\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://fail-fandomanon.dreamwidth.org/\"><b>fail_fandomanon</b></a></span>: <i>" + fileread.prompt + "</i>.") try: if fileread.notes: filewrite.write(" ") except: pass - elif fileread.event == "exchange" or fileread.event == "ao3exchange": - filewrite.write(", a gift for ") - try: - if fileread.recipsite == "dw": - filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://" + fileread.recip.replace("_","-") + ".dreamwidth.org/profile\"><img src=\"https://www.dreamwidth.org/img/silk/identity/user.png\" alt=\"[personal profile]\" width=\"17\" height=\"17\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://"+ fileread.recip.replace("_","-") + ".dreamwidth.org/\"><b>" + fileread.recip.replace("-","_") + "</b></a></span>") - elif fileread.recipsite == "ao3": - try: - if fileread.recippseud: - filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://archiveofourown.org/users/" + fileread.recip + "/profile\"><img src=\"https://p.dreamwidth.org/b164c54b26e4/-/archiveofourown.org/favicon.ico\" alt=\"[archiveofourown.org profile]\" width=\"16\" height=\"16\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://archiveofourown.org/users/"+ fileread.recip + "/pseuds/" + fileread.recippseud.replace(" ","%20") + "\"><b>" + fileread.recippseud + " (" + fileread.recip + ")</b></a></span>") - except: - filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://archiveofourown.org/users/" + fileread.recip + "/profile\"><img src=\"https://p.dreamwidth.org/b164c54b26e4/-/archiveofourown.org/favicon.ico\" alt=\"[archiveofourown.org profile]\" width=\"16\" height=\"16\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://archiveofourown.org/users/" + fileread.recip + "\"><b>" + fileread.recip + "</b></a></span>") - elif fileread.recipsite == "tumblr": - filewrite.write("<span style=\"white-space: nowrap;\"><a href=\"https://" + fileread.recip + ".tumblr.com\"><img src=\"https://www.tumblr.com/favicon.ico\" alt=\"[tumblr.com profile]\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\" width=\"16\" height=\"16\"></a><a href=\"https://" + fileread.recip + ".tumblr.com\"><b>" + fileread.recip + "</b></a></span>") - except: - filewrite.write(fileread.recip) - filewrite.write(".") + elif fileread.eventname == "robotsoup": + filewrite.write("Written for <span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://kalloway.dreamwidth.org/profile\"><img src=\"https://www.dreamwidth.org/img/silk/identity/user.png\" alt=\"[personal profile]\" width=\"17\" height=\"17\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://kalloway.dreamwidth.org/\"><b>kalloway</b></a></span>’s " + fileread.eventdeets + " fest.") try: if fileread.notes: filewrite.write(" ") except: pass else: - filewrite.write(".") + filewrite.write("Written for ") try: - if fileread.notes: - filewrite.write(" ") + if fileread.eventlocation == "dwcomm": + filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://" + fileread.eventname.replace("_","-") + ".dreamwidth.org/profile\"><img src=\"https://www.dreamwidth.org/img/silk/identity/community.png\" alt=\"[community profile]\" width=\"17\" height=\"17\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://" + fileread.eventname.replace("_","-") + ".dreamwidth.org/\"><b>" + fileread.eventname.replace("-","_") + "</b></a></span>") + elif fileread.eventlocation == "dwjournal": + filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://" + fileread.eventname.replace("_","-") + ".dreamwidth.org/profile\"><img src=\"https://www.dreamwidth.org/img/silk/identity/user.png\" alt=\"[personal profile]\" width=\"17\" height=\"17\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://"+ fileread.eventname.replace("_","-") + ".dreamwidth.org/\"><b>" + fileread.eventname.replace("-","_")+ "</b></a></span>") + elif fileread.eventlocation == "ljjournal": + filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://" + fileread.eventname.replace("_","-") + ".livejournal.com/profile\"><img src=\"https://www.dreamwidth.org/img/external/lj-userinfo.gif\" alt=\"[personal profile]\" width=\"17\" height=\"17\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://"+ fileread.eventname.replace("_","-") + ".livejournal.com/\"><b>" + fileread.eventname.replace("-","_")+ "</b></a></span>") + except: + if fileread.eventname == "Semaine de la fic française": + filewrite.write("<i>Semaine de la fic française</i>") + else: + filewrite.write(fileread.eventname) + try: + if fileread.eventfrequency == "annual": + filewrite.write(" " + str((fileread.datewords[0])["date"].year)) + else: + filewrite.write(" " + fileread.eventfrequency) except: pass - except: - pass - # write notes if there are any - try: - filewrite.write(fileread.notes + "</p>\n") - except: + if fileread.event == "prompt": + filewrite.write(", in response to ") + try: + if fileread.recip: + try: + if fileread.recipsite == "dw": + filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://" + fileread.recip.replace("_","-") + ".dreamwidth.org/profile\"><img src=\"https://www.dreamwidth.org/img/silk/identity/user.png\" alt=\"[personal profile]\" width=\"17\" height=\"17\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://"+ fileread.recip.replace("_","-") + ".dreamwidth.org/\"><b>" + fileread.recip.replace("-","_") + "</b></a></span>") + elif fileread.recipsite == "ao3": + try: + if fileread.recippseud: + filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://archiveofourown.org/users/" + fileread.recip + "/profile\"><img src=\"https://p.dreamwidth.org/b164c54b26e4/-/archiveofourown.org/favicon.ico\" alt=\"[archiveofourown.org profile]\" width=\"16\" height=\"16\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://archiveofourown.org/users/"+ fileread.recip + "/pseuds/" + fileread.recippseud.replace(" ","%20") + "\"><b>" + fileread.recippseud + " (" + fileread.recip + ")</b></a></span>") + except: + filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://archiveofourown.org/users/" + fileread.recip + "/profile\"><img src=\"https://p.dreamwidth.org/b164c54b26e4/-/archiveofourown.org/favicon.ico\" alt=\"[archiveofourown.org profile]\" width=\"16\" height=\"16\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://archiveofourown.org/users/"+ fileread.recip + "\"><b>" + fileread.recip + "</b></a></span>") + elif fileread.recipsite == "tumblr": + filewrite.write("<span style=\"white-space: nowrap;\"><a href=\"https://" + fileread.recip + ".tumblr.com\"><img src=\"https://www.tumblr.com/favicon.ico\" alt=\"[tumblr.com profile]\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\" width=\"16\" height=\"16\"></a><a href=\"https://" + fileread.recip + ".tumblr.com\"><b>" + fileread.recip + "</b></a></span>") + except: + filewrite.write(fileread.recip) + filewrite.write("’s ") + except: + pass + filewrite.write("prompt, <i>" + fileread.prompt + "</i>.") + try: + if fileread.notes: + filewrite.write(" ") + except: + pass + elif fileread.event == "exchange" or fileread.event == "ao3exchange": + filewrite.write(", a gift for ") + try: + if fileread.recipsite == "dw": + filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://" + fileread.recip.replace("_","-") + ".dreamwidth.org/profile\"><img src=\"https://www.dreamwidth.org/img/silk/identity/user.png\" alt=\"[personal profile]\" width=\"17\" height=\"17\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://"+ fileread.recip.replace("_","-") + ".dreamwidth.org/\"><b>" + fileread.recip.replace("-","_") + "</b></a></span>") + elif fileread.recipsite == "ao3": + try: + if fileread.recippseud: + filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://archiveofourown.org/users/" + fileread.recip + "/profile\"><img src=\"https://p.dreamwidth.org/b164c54b26e4/-/archiveofourown.org/favicon.ico\" alt=\"[archiveofourown.org profile]\" width=\"16\" height=\"16\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://archiveofourown.org/users/"+ fileread.recip + "/pseuds/" + fileread.recippseud.replace(" ","%20") + "\"><b>" + fileread.recippseud + " (" + fileread.recip + ")</b></a></span>") + except: + filewrite.write("<span style=\"white-space: nowrap;\" class=\"ljuser\"><a href=\"https://archiveofourown.org/users/" + fileread.recip + "/profile\"><img src=\"https://p.dreamwidth.org/b164c54b26e4/-/archiveofourown.org/favicon.ico\" alt=\"[archiveofourown.org profile]\" width=\"16\" height=\"16\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\"></a><a href=\"https://archiveofourown.org/users/" + fileread.recip + "\"><b>" + fileread.recip + "</b></a></span>") + elif fileread.recipsite == "tumblr": + filewrite.write("<span style=\"white-space: nowrap;\"><a href=\"https://" + fileread.recip + ".tumblr.com\"><img src=\"https://www.tumblr.com/favicon.ico\" alt=\"[tumblr.com profile]\" style=\"vertical-align: text-bottom; border: 0; padding-right: 1px;\" width=\"16\" height=\"16\"></a><a href=\"https://" + fileread.recip + ".tumblr.com\"><b>" + fileread.recip + "</b></a></span>") + except: + filewrite.write(fileread.recip) + filewrite.write(".") + try: + if fileread.notes: + filewrite.write(" ") + except: + pass + else: + filewrite.write(".") + try: + if fileread.notes: + filewrite.write(" ") + except: + pass + except: + pass + # write notes if there are any try: - if fileread.event: - filewrite.write("</p>\n") + filewrite.write(fileread.notes + "</p>\n") except: - if juvenilia: - filewrite.write("</p>\n") - filewrite.write("<ul class=\"ficlinks") - # specify language if necessary - try: - if fileread.translation: - if fileread.language == "en": - filewrite.write(" english") - elif fileread.language == "fr": - filewrite.write (" french") - except: - pass - filewrite.write("\">\n") - # write html link if there is one - if fileread.html: - filewrite.write("<li class=\"prazelink\"><a ") - if fileread.locked: - filewrite.write("class=\"locked\" href=\"") - if local: - filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/secret/") - else: - filewrite.write("/fic/secret/") - else: - if local: - filewrite.write("href=\"/home/mdd/Documents/drive/proj/fic-archive/build/files/") - else: - filewrite.write("href=\"/fic/files/") - filewrite.write(ficnostring + ".html\">HTML</a></li>\n") - # write pdf link if there is one - if fileread.pdf: - filewrite.write("<li class=\"prazelink\"><a ") - if fileread.locked: - filewrite.write("class=\"locked\" href=\"") - if local: - filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/secret/") - else: - filewrite.write("/fic/secret/") - else: - if local: - filewrite.write("href=\"/home/mdd/Documents/drive/proj/fic-archive/build/files/") + try: + if fileread.event: + filewrite.write("</p>\n") + except: + if juvenilia: + filewrite.write("</p>\n") + filewrite.write("<ul class=\"ficlinks") + # specify language if necessary + try: + if fileread.translation: + if fileread.language == "en": + filewrite.write(" english") + elif fileread.language == "fr": + filewrite.write (" french") + except: + pass + filewrite.write("\">\n") + # write html link if there is one + if fileread.html: + filewrite.write("<li class=\"prazelink\"><a ") + if fileread.locked: + filewrite.write("class=\"locked\" href=\"") + if local: + filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/secret/") + else: + filewrite.write("/fic/secret/") else: - filewrite.write("href=\"/fic/files/") - filewrite.write(ficnostring + ".pdf\">PDF</a></li>\n") - # write epub link if there is one - if fileread.epub: - filewrite.write("<li class=\"prazelink\"><a ") - if fileread.locked: - filewrite.write("class=\"locked\" href=\"") - if local: - filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/secret/") + if local: + filewrite.write("href=\"/home/mdd/Documents/drive/proj/fic-archive/build/files/") + else: + filewrite.write("href=\"/fic/files/") + filewrite.write(ficnostring + ".html\">HTML</a></li>\n") + # write pdf link if there is one + if fileread.pdf: + filewrite.write("<li class=\"prazelink\"><a ") + if fileread.locked: + filewrite.write("class=\"locked\" href=\"") + if local: + filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/secret/") + else: + filewrite.write("/fic/secret/") else: - filewrite.write("/fic/secret/") - else: - if local: - filewrite.write("href=\"/home/mdd/Documents/drive/proj/fic-archive/build/files/") + if local: + filewrite.write("href=\"/home/mdd/Documents/drive/proj/fic-archive/build/files/") + else: + filewrite.write("href=\"/fic/files/") + filewrite.write(ficnostring + ".pdf\">PDF</a></li>\n") + # write epub link if there is one + if fileread.epub: + filewrite.write("<li class=\"prazelink\"><a ") + if fileread.locked: + filewrite.write("class=\"locked\" href=\"") + if local: + filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/secret/") + else: + filewrite.write("/fic/secret/") else: - filewrite.write("href=\"/fic/files/") - filewrite.write(ficnostring + ".epub\">EPUB</a></li>\n") - # write ao3 link if there is one - if fileread.ao3slug: - filewrite.write("<li class=\"ao3link\"><a ") - if fileread.locked: - filewrite.write("class=\"locked\" ") - filewrite.write("href=\"https://archiveofourown.org/works/" + str(fileread.ao3slug) + "\">AO3</a></li>\n") - # determine if comments page - if any(item in fffandoms for item in fileread.fandom): - filewrite.write("<li class=\"prazelink\"><a href=\"") - if local: - filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/comments/" + ficnostring + "/index.html") - else: - filewrite.write("/fic/comments/" + ficnostring) - filewrite.write("\">comments</a></li>\n") - else: - timeelapsed = datetime.datetime.now() - (fileread.datewords[-1])["date"] - if timeelapsed.days < 730: + if local: + filewrite.write("href=\"/home/mdd/Documents/drive/proj/fic-archive/build/files/") + else: + filewrite.write("href=\"/fic/files/") + filewrite.write(ficnostring + ".epub\">EPUB</a></li>\n") + # write ao3 link if there is one + try: + if fileread.ao3slug: + filewrite.write("<li class=\"ao3link\"><a ") + if fileread.locked: + filewrite.write("class=\"locked\" ") + filewrite.write("href=\"https://archiveofourown.org/works/" + str(fileread.ao3slug) + "\">AO3</a></li>\n") + except: + pass + # determine if comments page + if any(item in fffandoms for item in fileread.fandom): filewrite.write("<li class=\"prazelink\"><a href=\"") if local: filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/comments/" + ficnostring + "/index.html") @@ -413,15 +415,35 @@ def ficgen(ficno,unique=False,output="output.html",local=False): filewrite.write("/fic/comments/" + ficnostring) filewrite.write("\">comments</a></li>\n") else: - try: - if fileread.event == "ao3exchange" and (fileread.datewords[0])["date"].year > 2019: - filewrite.write("<li class=\"prazelink\"><a href=\"") - if local: - filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/comments/" + ficnostring + "/index.html") - else: - filewrite.write("/fic/comments/" + ficnostring) - filewrite.write("\">comments</a></li>\n") + timeelapsed = datetime.datetime.now() - (fileread.datewords[-1])["date"] + if timeelapsed.days < 730: + filewrite.write("<li class=\"prazelink\"><a href=\"") + if local: + filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/comments/" + ficnostring + "/index.html") else: + filewrite.write("/fic/comments/" + ficnostring) + filewrite.write("\">comments</a></li>\n") + else: + try: + if fileread.event == "ao3exchange" and (fileread.datewords[0])["date"].year > 2019: + filewrite.write("<li class=\"prazelink\"><a href=\"") + if local: + filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/comments/" + ficnostring + "/index.html") + else: + filewrite.write("/fic/comments/" + ficnostring) + filewrite.write("\">comments</a></li>\n") + else: + try: + if fileread.comments: + filewrite.write("<li class=\"prazelink\"><a href=\"") + if local: + filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/comments/" + ficnostring + "/index.html") + else: + filewrite.write("/fic/comments/" + ficnostring) + filewrite.write("\">comments</a></li>\n") + except: + pass + except: try: if fileread.comments: filewrite.write("<li class=\"prazelink\"><a href=\"") @@ -432,88 +454,71 @@ def ficgen(ficno,unique=False,output="output.html",local=False): filewrite.write("\">comments</a></li>\n") except: pass - except: - try: - if fileread.comments: - filewrite.write("<li class=\"prazelink\"><a href=\"") + filewrite.write("</ul>\n") + # write links for translation if required + try: + if fileread.translation: + if transread.language == "en": + filewrite.write("<ul class=\"ficlinks english") + elif transread.language == "fr": + filewrite.write("<ul class=\"ficlinks french") + filewrite.write("\">\n") + # write html link if there is one + if fileread.html: + filewrite.write("<li class=\"prazelink\"><a ") + if fileread.locked: + filewrite.write("class=\"locked\" href=\"") if local: - filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/comments/" + ficnostring + "/index.html") + filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/secret/") else: - filewrite.write("/fic/comments/" + ficnostring) - filewrite.write("\">comments</a></li>\n") - except: - pass - filewrite.write("</ul>\n") - # write links for translation if required - try: - if fileread.translation: - if transread.language == "en": - filewrite.write("<ul class=\"ficlinks english") - elif transread.language == "fr": - filewrite.write("<ul class=\"ficlinks french") - filewrite.write("\">\n") - # write html link if there is one - if fileread.html: - filewrite.write("<li class=\"prazelink\"><a ") - if fileread.locked: - filewrite.write("class=\"locked\" href=\"") - if local: - filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/secret/") + filewrite.write("/fic/secret/") else: - filewrite.write("/fic/secret/") - else: - if local: - filewrite.write("href=\"/home/mdd/Documents/drive/proj/fic-archive/build/files/") - else: - filewrite.write("href=\"/fic/files/") - filewrite.write(translationstring + ".html\">HTML</a></li>\n") - # write pdf link if there is one - if fileread.pdf: - filewrite.write("<li class=\"prazelink\"><a ") - if fileread.locked: - filewrite.write("class=\"locked\" href=\"") - if local: - filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/secret/") - else: - filewrite.write("/fic/secret/") - else: - if local: - filewrite.write("href=\"/home/mdd/Documents/drive/proj/fic-archive/build/files/") - else: - filewrite.write("href=\"/fic/files/") - filewrite.write(translationstring + ".pdf\">PDF</a></li>\n") - # write epub link if there is one - if fileread.epub: - filewrite.write("<li class=\"prazelink\"><a ") - if fileread.locked: - filewrite.write("class=\"locked\" href=\"") - if local: - filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/secret/") + if local: + filewrite.write("href=\"/home/mdd/Documents/drive/proj/fic-archive/build/files/") + else: + filewrite.write("href=\"/fic/files/") + filewrite.write(translationstring + ".html\">HTML</a></li>\n") + # write pdf link if there is one + if fileread.pdf: + filewrite.write("<li class=\"prazelink\"><a ") + if fileread.locked: + filewrite.write("class=\"locked\" href=\"") + if local: + filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/secret/") + else: + filewrite.write("/fic/secret/") else: - filewrite.write("/fic/secret/") - else: - if local: - filewrite.write("href=\"/home/mdd/Documents/drive/proj/fic-archive/build/files/") + if local: + filewrite.write("href=\"/home/mdd/Documents/drive/proj/fic-archive/build/files/") + else: + filewrite.write("href=\"/fic/files/") + filewrite.write(translationstring + ".pdf\">PDF</a></li>\n") + # write epub link if there is one + if fileread.epub: + filewrite.write("<li class=\"prazelink\"><a ") + if fileread.locked: + filewrite.write("class=\"locked\" href=\"") + if local: + filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/secret/") + else: + filewrite.write("/fic/secret/") else: - filewrite.write("href=\"/fic/files/") - filewrite.write(translationstring + ".epub\">EPUB</a></li>\n") - # write ao3 link if there is one - if fileread.ao3slug: - filewrite.write("<li class=\"ao3link\"><a ") - if fileread.locked: - filewrite.write("class=\"locked\" ") - filewrite.write("href=\"https://archiveofourown.org/works/" + str(transread.ao3slug) + "\">AO3</a></li>\n") - # determine if comments page required - if any(item in fffandoms for item in fileread.fandom): - filewrite.write("<li class=\"prazelink\"><a href=\"") - if local: - filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/comments/" + translationstring + "/index.html") - else: - filewrite.write("/fic/comments/" + translationstring) - filewrite.write("\">comments</a></li>\n") - else: - timeelapsed = datetime.datetime.now() - (transread.datewords[-1])["date"] - if timeelapsed.days < 730: + if local: + filewrite.write("href=\"/home/mdd/Documents/drive/proj/fic-archive/build/files/") + else: + filewrite.write("href=\"/fic/files/") + filewrite.write(translationstring + ".epub\">EPUB</a></li>\n") + # write ao3 link if there is one + try: + if fileread.ao3slug: + filewrite.write("<li class=\"ao3link\"><a ") + if fileread.locked: + filewrite.write("class=\"locked\" ") + filewrite.write("href=\"https://archiveofourown.org/works/" + str(transread.ao3slug) + "\">AO3</a></li>\n") + except: + pass + # determine if comments page required + if any(item in fffandoms for item in fileread.fandom): filewrite.write("<li class=\"prazelink\"><a href=\"") if local: filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/comments/" + translationstring + "/index.html") @@ -521,18 +526,27 @@ def ficgen(ficno,unique=False,output="output.html",local=False): filewrite.write("/fic/comments/" + translationstring) filewrite.write("\">comments</a></li>\n") else: - try: - if transread.comments: - filewrite.write("<li class=\"prazelink\"><a href=\"") - if local: - filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/comments/" + translationstring + "/index.html") - else: - filewrite.write("/fic/comments/" + translationstring) - filewrite.write("\">comments</a></li>\n") - except: - pass - filewrite.write("</ul>\n") - except: - pass - filewrite.write("</div>\n") - filewrite.close() + timeelapsed = datetime.datetime.now() - (transread.datewords[-1])["date"] + if timeelapsed.days < 730: + filewrite.write("<li class=\"prazelink\"><a href=\"") + if local: + filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/comments/" + translationstring + "/index.html") + else: + filewrite.write("/fic/comments/" + translationstring) + filewrite.write("\">comments</a></li>\n") + else: + try: + if transread.comments: + filewrite.write("<li class=\"prazelink\"><a href=\"") + if local: + filewrite.write("/home/mdd/Documents/drive/proj/fic-archive/build/comments/" + translationstring + "/index.html") + else: + filewrite.write("/fic/comments/" + translationstring) + filewrite.write("\">comments</a></li>\n") + except: + pass + filewrite.write("</ul>\n") + except: + pass + filewrite.write("</div>\n") + filewrite.close() diff --git a/masterlist.py b/masterlist.py index 6c53162..b1b5431 100644 --- a/masterlist.py +++ b/masterlist.py @@ -13,7 +13,7 @@ def listgen(local=False): if os.path.exists("build/masterlist/index.html"): os.remove("build/masterlist/index.html") # write header - headerfooter.headerwrite("build/masterlist/index.html","Masterlist","Fic masterlist","<p>On this page, from newest to oldest, you’ll find basically everything I’ve ever written that is a. fanfiction and b. extant; quality may vary. RPF and things I wrote before 2020 require a username and password to access; on AO3, they’re available behind the login wall.</p>",False,local) + headerfooter.headerwrite("build/masterlist/index.html","Masterlist","Fic masterlist","<p>On this page, from newest to oldest, you’ll find basically everything I’ve ever written that is a. fanfiction and b. extant; quality may vary. RPF and things I wrote before 2020 require a username and password to access; if they’re on AO3, they’re available behind the login wall.</p>",False,local) # write fic divs ficcount = 500 while ficcount > 0: diff --git a/originalsmeta/template.py b/originalsmeta/template.py index e28100c..2b5506e 100644 --- a/originalsmeta/template.py +++ b/originalsmeta/template.py @@ -5,6 +5,7 @@ showtitle = False language = "en" # translation = datewords = [{"date":datetime.datetime(YYYY,M,D),"words":}] +# revealdate = datetime.datetime(YYYY,M,D) # approxdate = "" status = "complete" # incomplete, abandoned rating = "" # g, t, m, e diff --git a/ships.py b/ships.py index 3ee5dbb..482217a 100644 --- a/ships.py +++ b/ships.py @@ -1,4 +1,4 @@ -import os +import datetime, os from importlib import import_module fffandoms = ["FF1","FF2","FF3","FF4","FF5","FF6","FF7","FF8","FF9","FFX","FF11","FF12","FF13","FF14","FF15"] @@ -29,12 +29,20 @@ def shiplist(local=False): if os.path.exists("originalsmeta/" + ficcountstring + ".py"): ficfile = "originalsmeta." + ficcountstring fileread = import_module(ficfile) - if len(fileread.fandom) == 1: - if fandom in fileread.fandom: - try: - theships.extend(fileread.ship) - except: - pass + try: + if fileread.revealdate > datetime.datetime.now(): + revealed = False + else: + revealed = True + except: + revealed = True + if revealed == True: + if len(fileread.fandom) == 1: + if fandom in fileread.fandom: + try: + theships.extend(fileread.ship) + except: + pass for ship in theships: if ship == None: theships.remove(ship) @@ -62,15 +70,23 @@ def shiplist(local=False): if os.path.exists("originalsmeta/" + ficcountstring + ".py"): countfile = "originalsmeta." + ficcountstring fileread = import_module(countfile) - if searchfandom in fileread.fandom: - # append to lists - try: - if fileread.ship[0] == ship: - maincount.append(ficcount) - elif ship in fileread.ship: - secondarycount.append(ficcount) - except: - pass + try: + if fileread.revealdate > datetime.datetime.now(): + revealed = False + else: + revealed = True + except: + revealed = True + if revealed == True: + if searchfandom in fileread.fandom: + # append to lists + try: + if fileread.ship[0] == ship: + maincount.append(ficcount) + elif ship in fileread.ship: + secondarycount.append(ficcount) + except: + pass # write details element output = "build/ff/ships/index.html" filewrite = open(output, "a") diff --git a/statsgen.py b/statsgen.py index e994d29..d6a3906 100644 --- a/statsgen.py +++ b/statsgen.py @@ -230,9 +230,17 @@ def yeargen(local=False): else: fileread = False if fileread: - for date in fileread.datewords: - yearlist.append(date["date"].year) - yearlist = sorted(list(dict.fromkeys(yearlist))) + try: + if fileread.revealdate > datetime.datetime.now(): + revealed = False + else: + revealed = True + except: + revealed = True + if revealed == True: + for date in fileread.datewords: + yearlist.append(date["date"].year) + yearlist = sorted(list(dict.fromkeys(yearlist))) for year in yearlist: yearpath = "build/stats/" + str(year) if not os.path.isdir(yearpath): @@ -267,9 +275,17 @@ def yeargen(local=False): else: fileread = False if fileread: - for date in fileread.datewords: - if (date["date"]).year == year: - allfics.append(ficcountstring) + try: + if fileread.revealdate > datetime.datetime.now(): + revealed = False + else: + revealed = True + except: + revealed = True + if revealed == True: + for date in fileread.datewords: + if (date["date"]).year == year: + allfics.append(ficcountstring) allfics = sorted(list(dict.fromkeys(allfics))) for fic in allfics: if os.path.exists("originalsmeta/" + fic + ".py"): @@ -282,41 +298,49 @@ def yeargen(local=False): fileread = False if fileread: try: - fandom = fileread.fandom - event = fileread.event - eventname = fileread.eventname - try: - eventlocation = fileread.eventlocation - except: - eventlocation = False + if fileread.revealdate > datetime.datetime.now(): + revealed = False + else: + revealed = True except: + revealed = True + if revealed == True: try: - if fileread.original: - theorig = "originalsmeta." + str(fileread.original) - origfile = import_module(theorig) - try: - fandom = origfile.fandom - event = origfile.event - eventname = origfile.eventname + fandom = fileread.fandom + event = fileread.event + eventname = fileread.eventname + try: + eventlocation = fileread.eventlocation + except: + eventlocation = False + except: + try: + if fileread.original: + theorig = "originalsmeta." + str(fileread.original) + origfile = import_module(theorig) try: - eventlocation = fileread.eventlocation + fandom = origfile.fandom + event = origfile.event + eventname = origfile.eventname + try: + eventlocation = fileread.eventlocation + except: + eventlocation = False except: + event = False + eventname = False eventlocation = False - except: - event = False - eventname = False - eventlocation = False - except: - event = False - eventname = False - eventlocation = False - ficwords = 0 - for dateword in fileread.datewords: - if (dateword["date"]).year == year: - ficwords = (dateword["words"]) - ficdict = {"number":fic,"words":ficwords,"fandom":fandom,"event":event,"eventname":eventname,"eventlocation":eventlocation,"date":dateword["date"]} - ficdeets.append(ficdict) - datesplit.append(ficdict) + except: + event = False + eventname = False + eventlocation = False + ficwords = 0 + for dateword in fileread.datewords: + if (dateword["date"]).year == year: + ficwords = (dateword["words"]) + ficdict = {"number":fic,"words":ficwords,"fandom":fandom,"event":event,"eventname":eventname,"eventlocation":eventlocation,"date":dateword["date"]} + ficdeets.append(ficdict) + datesplit.append(ficdict) combinedeets = [] for fic in ficdeets: if combinedeets == []: @@ -514,25 +538,33 @@ def yeargen(local=False): else: fileread = False if fileread: - for datewords in fileread.datewords: - if datewords["date"] == thedate: - thewords = datewords["words"] - fic["words"] = thewords - ficlogged = False - if monthcombine == []: - if ficlogged == False: - ficlogged = True - monthcombine.append(fic) - else: + try: + if fileread.revealdate > datetime.datetime.now(): + revealed = False + else: + revealed = True + except: + revealed = True + if revealed == True: + for datewords in fileread.datewords: + if datewords["date"] == thedate: + thewords = datewords["words"] + fic["words"] = thewords ficlogged = False - for newfic in monthcombine: + if monthcombine == []: if ficlogged == False: - if fic["number"] == newfic["number"]: - if (fic["date"]).month == (newfic["date"]).month: - ficlogged = True - newfic["words"] += fic["words"] - if ficlogged == False: - monthcombine.append(fic) + ficlogged = True + monthcombine.append(fic) + else: + ficlogged = False + for newfic in monthcombine: + if ficlogged == False: + if fic["number"] == newfic["number"]: + if (fic["date"]).month == (newfic["date"]).month: + ficlogged = True + newfic["words"] += fic["words"] + if ficlogged == False: + monthcombine.append(fic) jan = {"fics":[],"words":0} feb = {"fics":[],"words":0} mar = {"fics":[],"words":0}