import datetime
from importlib import import_module
from dateutil.relativedelta import relativedelta

"""
Remove test file
"""

fffandoms = ["FF1","FF2","FF3","FF4","FF5","FF6","FF7","FF8","FF9","FFX","FF11","FF12","FF13","FF14","FF15","FF16"]    

"""
Code to generate the fic header div
"""

def ficgen(ficno,unique=False,output="output.html",local=False):
    # convert to three-digit number
    if ficno < 10:
        ficnostring = "00" + str(ficno)
    elif ficno < 100:
        ficnostring = "0" + str(ficno)
    else:
        ficnostring = str(ficno)
    # open the file
    ficfile = "originalsmeta." + ficnostring
    fileread = import_module(ficfile)
    # open translation file if there is one
    try:
        if fileread.translation:
            if fileread.translation < 10:
                translationstring = "00" + str(fileread.translation)
            elif fileread.translation < 100:
                translationstring = "0" + str(fileread.translation)
            else:
                translationstring = str(fileread.translation)
            translationfile = "translationsmeta." + translationstring
            transread = import_module(translationfile)
    except:
        pass
    try:
        if fileread.revealdate > datetime.datetime.now():
            revealed = False
        else:
            revealed = True
    except:
        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:
            filewrite.write("/" + translationstring)
        except:
            pass
        filewrite.write("</span>")
        # write title if requested
        if fileread.showtitle:
            filewrite.write(" <span class=\"fictitle\">" + fileread.title)
            try:
                if transread.showtitle:
                    filewrite.write("/" + transread.title)
            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))
                try:
                    filewrite.write(", " + ", ".join(fileread.charmain))
                except:
                    pass
                try:
                    filewrite.write(", " + "<small>" + ", ".join(fileread.charsecondary) + "</small>")
                except:
                    pass
                filewrite.write("</li>\n")
            except:
                try:
                    filewrite.write("<li class=\"characters\">" + ", ".join(fileread.charmain))
                    try:
                        filewrite.write(", " + "<small>" + ", ".join(fileread.charsecondary) + "</small>")
                    except:
                        pass
                    filewrite.write("</li>\n")
                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("<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:
            try:
                filewrite.write("<li class=\"location\">" + ", ".join(fileread.location) + "</li>\n")
            except:
                pass
        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:
                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:
            juvenilia = False
        try:
            if fileread.notes:
                filewrite.write("<p class=\"note\">")
        except:
            try:
                if fileread.event:
                    filewrite.write("<p class=\"note\">")
            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) + ".")
            try:
                if fileread.notes:
                    filewrite.write(" ")
            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(" ")
                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.")
                try:
                    if fileread.notes:
                        filewrite.write(" ")
                except:
                    pass
            else:
                filewrite.write("Written for ")
                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>")
                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
                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:
            filewrite.write(fileread.notes + "</p>\n")
        except:
            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:
                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/")
                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:
                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 ")
                try:
                    if fileread.ao3locked:
                        filewrite.write("class=\"locked\" ")
                except:
                    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")
            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:
                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=\"")
                            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
        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/")
                        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/")
                        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 + ".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")
                    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:
                        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()