Account for unrevealed exchange/challenge fics, change some wording

master
trémeur 2 years ago
parent 48534c366f
commit 6b0112dc26

@ -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")

@ -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"])

@ -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("<item>\n<title>")
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)

@ -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! Its 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>Ive 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>Ive recently implemented comments read about that <a href=\"")
if local:
filewrite.write("comments/index.html")
else:

@ -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()

@ -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, youll find basically everything Ive 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, theyre 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, youll find basically everything Ive 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 theyre on AO3, theyre available behind the login wall.</p>",False,local)
# write fic divs
ficcount = 500
while ficcount > 0:

@ -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

@ -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")

@ -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}

Loading…
Cancel
Save