def createPostData(tid) : postdata = "" times = [] for post in db["threads"][tid]["posts"] : postdata += helper.p("""<div class="box"> <div class="infobox"> <span class="insideinfoboxleft"> <span class="innerleftinfo">%(username)s</span> </span> <span class="insideinfoboxright"> <span class="innerrightinfo"><span id="a%(time)s"></span></span> </span> </div> <div class="postbox"> %(body)s </div> </div> """ % {"time":str(int(post["time"])), "body":bbcode.render_bbcode(post["body"]), "username":db["users"][post["poster"]]["name"]}) + "\n" times.append(post["time"]) postdata += generateJS(times) if auth() : postdata += '<form action="index.py" method="post">\n<textarea rows="10" cols="60" name="postdata"></textarea>\n<br />\n<input type="hidden" name="postid" value="%(postid)d" />\n\n<input type="hidden" name="action" value="reply" />\n<input type="submit" value="Post Reply" /></form>' % {"postid":tid} return postdata
def printThread(tid, form, handler) : print "Content-type: text/html\n" postdata = createPostData(tid) print helper.html(helper.head('<link href="style.css" rel="stylesheet" type="text/css" />'+helper.title(bbcode.render_bbcode(db["threads"][tid]["title"])))+helper.body(header()+postdata+'<br /><a href="index.py">Back</a>'))
def listthreads(category) : print "Content-Type: text/html\n" times = [] htmldata = "<table><tr><td>Thread</td><td>Poster</td><td>Time</td></tr>\n" for thread in db["categories"][category]["Threads"] : htmldata += '<tr><td>%(link)s</td><td>%(poster)s</td><td><span id="a%(time)s"></span></td></tr>\n' % {"link":helper.a("index.py?action=read&tid="+str(thread), db["threads"][thread]["title"]), "poster":db["users"][db["threads"][thread]["posts"][-1]["poster"]]["name"], "time":str(int(db["threads"][thread]["posts"][-1]["time"]))} times.append(int(db["threads"][thread]["posts"][-1]["time"])) htmldata += "</table>" htmldata += generateJS(times) if auth() : htmldata += helper.a("index.py?action=newthreadform", "Create a new thread") print helper.html(helper.head('<link href="style.css" rel="stylesheet" type="text/css" />'+helper.title(bbcode.render_bbcode(category)))+helper.body(header()+htmldata))
def printmail(user) : mail = shelve.open(dbpath, writeback=True) mail[user]["notify"] = False print "Content-Type: text/html\n" print "<html>\n<head>\n<title>%s's mail</title>\n</head>\n<body>" % (user) print '<img style="text-align:center" src="logo.png" alt="sonicbot mail logo" />' print '<p><a href="index.py?action=logout">Logout</a> <a href="index.py"/>Check Mail</a> <a href="index.py?action=userlist">User List</a></p>' for sender in mail[user]["messages"].keys() : for message in range(len(mail[user]["messages"][sender]["msgorder"])) : mail[user]["messages"][sender]["msgorder"][message][1] = False if mail[user]["messages"][sender] != {} : print "<h4>%s said:</h4>\n<ul>" % (sender) for message in mail[user]["messages"][sender].keys() : if message != "msgorder" : try : print '<li>[%s] %s\n<ul>\n<a href="index.py?action=delete&pid=%s&tid=%s">Delete this message</a>\n ' % (time.strftime("%x %X %Z", time.gmtime(int(message))), bbcode.render_bbcode(mail[user]["messages"][sender][message]), sender, message) except : print '<li>[%s] This message was invalid\n<ul>\n<a href="index.py?action=delete&pid=%s&tid=%s">Delete this message</a>\n ' % (time.strftime("%x %X %Z", time.gmtime(int(message))), sender, message) if sender in mail.keys() : print '<a href="index.py?action=sendform&senduser=%s">Reply</a>' % (sender) print '</ul>\n</li>' print "</ul>" print '<p><a href="index.py?action=passform">Change your password</a></p>' print '<p><a href="index.py?action=sendform">Send a message</a></p>' print """<p style="text-align:center">Interface by sonicrules1234 | Logo inspired by wgsilkie's old logo</p>""" print "</body>\n</html>" mail.close()