Beispiel #1
0
def logout():
    authed()
    ret = getclient().do_logout()
    if ret.get('success') :
        session.clear()
        return json_success()
    return json_error(4, ret['emsg'])
Beispiel #2
0
def logout():
    authed()
    ret = getclient().do_logout()
    if ret.get('success'):
        session.clear()
        return json_success()
    return json_error(4, ret['emsg'])
Beispiel #3
0
def notification():
    try:
        offset = int(request.args.get('offset', 0))
    except:
        offset = 0
    userid = authed()
    db = getconn()
    notification = db.query(
        u"SELECT nid,t,params,lastupdate"
        " FROM herzog_notification"
        " WHERE userid=%%s"
        " ORDER BY lastupdate DESC"
        " LIMIT %d, 15" % offset, userid)

    # update touch
    touch = db.get(
        u"SELECT touch_notification"
        " FROM herzog_userdata"
        " WHERE userid=%s", userid)
    now = getnow()
    if touch:
        touch = touch.touch_notification
        db.execute(
            u"UPDATE herzog_userdata SET "
            "  touch_notification=%s"
            "  WHERE userid=%s", now, userid)
    else:
        db.execute(
            u"INSERT INTO herzog_userdata "
            "  (userid, touch_notification, touch_starpost)"
            " VALUES (%s, %s, %s)", userid, now, now)

    return render_template('notification.html',
                           notification=notification,
                           touch=touch)
Beispiel #4
0
def starpost():
    try:
        offset = int(request.args.get('offset', 0))
    except:
        offset = 0
    userid = authed()
    db = getconn()
    starpost = db.query(
        u"SELECT herzog_topic.tid,title"
        " FROM herzog_topic INNER JOIN herzog_topicship"
        " ON herzog_topic.tid = herzog_topicship.tid"
        " WHERE herzog_topicship.userid=%%s AND"
        "   herzog_topicship.flag & 8"
        " ORDER BY herzog_topic.lastreply DESC"
        " LIMIT %s, 15" % offset, userid)

    # update touch time
    touch = db.get(
        u"SELECT touch_starpost FROM herzog_userdata"
        " WHERE userid=%s", userid)
    now = getnow()
    if touch:
        touch = touch.touch_starpost
        db.execute(
            u"UPDATE herzog_userdata SET touch_starpost=%s"
            "  WHERE userid=%s", now, userid)
    else:
        db.execute(
            u"INSERT INTO herzog_userdata "
            "  (userid, touch_notification, touch_starpost)"
            " VALUES (%s, %s, %s)", userid, now, now)

    return render_template('starpost.html', starpost=starpost, touch=touch)
Beispiel #5
0
def message():
    userid = authed()
    message = getclient().getmessage()
    db = getconn()
    touch = db.get(
        u"SELECT touch_notification,touch_starpost"
        " FROM herzog_userdata"
        " WHERE userid=%s", userid)
    if touch:
        touch_notification = touch.touch_notification
        touch_starpost = touch.touch_starpost
    else:
        touch_notification = touch_starpost = 0
    notification_num = getconn().get(
        u"SELECT count(nid) as t FROM herzog_notification"
        " WHERE userid=%s AND (lastupdate > %s)"
        " ORDER BY lastupdate DESC"
        " LIMIT 6", userid, touch_notification)
    print notification_num, touch_notification
    star_num = getconn().get(
        u"SELECT count(herzog_topic.tid) as t FROM herzog_topic"
        "  INNER JOIN herzog_topicship"
        " ON herzog_topic.tid = herzog_topicship.tid"
        " WHERE herzog_topicship.userid=%s AND"
        "   herzog_topicship.flag & 8"
        "   AND herzog_topic.lastreply > %s"
        " LIMIT 15", userid, touch_starpost)
    return '%s,%s,%s,%s' % (message['newfavs'], message['mails'],
                            notification_num['t'], star_num['t'])
Beispiel #6
0
def edit_resource(resname):
    userid = authed()
    res = getconn().get(
        u"SELECT * FROM herzog_cms_resource"
        "  WHERE resname=%s", resname)
    res['ds'] = res['ds']
    return render_template('edit_resource.html', res=res)
Beispiel #7
0
def ajax_newtopic():
    userid = authed()
    form = getfields(_require=('boardname', 'title', 'content'),
                      _optional=('summary',))
    form['userid'] = userid
    form['fromaddr'] = request.remote_addr
    ret = a_topic(**form)
    return json_success(**ret)
Beispiel #8
0
def mail():
    userid = authed()
    offset = request.args.get('offset', 1)
    mails = getclient().listmails(offset=offset, limit=20)
    if 'error' in mails:
        return render_template('mailstatus.html', **mails)
    mails['offset'] = int(offset)
    return render_template('mail.html', limit=20, userid=userid, **mails)
Beispiel #9
0
def ajax_newtopic():
    userid = authed()
    form = getfields(_require=('boardname', 'title', 'content'),
                      _optional=('summary',))
    form['userid'] = userid
    form['fromaddr'] = request.remote_addr
    ret = a_topic(**form)
    return json_success(**ret)
Beispiel #10
0
def mail():
    userid = authed()
    offset = request.args.get('offset', 1)
    mails = getclient().listmails(offset=offset, limit=20)
    if 'error' in mails :
        return render_template('mailstatus.html', **mails)
    mails['offset'] = int(offset)
    return render_template('mail.html', limit=20, userid=userid, **mails)
Beispiel #11
0
def ajax_updatepost():
    userid = authed()
    if request.form.get('tid') :
        form = getfields(_require=("tid", "title", "content"))
        form['userid'] = userid
        return json_success(**a_updatetopic(**form))
    else :
        form = getfields(_require=('rid', 'content'))
        form['userid'] = userid
        return json_success(**a_updatereply(**form))
Beispiel #12
0
def allboards():
    boards = getboards()
    sections = groupup(boards)
    bs = get_all_bsetting()
    if authed() :
        msg = getclient().getmessage()
    else :
        msg = None
    return render_template('allboards.html', secdatas=secdatas,
                           boards=boards, sections=sections, bs=bs, msg=msg)
Beispiel #13
0
def ajax_delpost():
    userid = authed()
    form = getfields(_require=(), _optional=("tid", "rid"))
    if not form.has_key('tid') and not form.has_key('rid') :
        raise FormValidError('Must supply tid or replyid')
    if form.has_key('tid') :
        ret = a_deltopic(userid, form['tid'])
    else :
        ret = a_delreply(userid, form['rid'])
    return json_success(**ret)
Beispiel #14
0
def ajax_updatepost():
    userid = authed()
    if request.form.get('tid') :
        form = getfields(_require=("tid", "title", "content"))
        form['userid'] = userid
        return json_success(**a_updatetopic(**form))
    else :
        form = getfields(_require=('rid', 'content'))
        form['userid'] = userid
        return json_success(**a_updatereply(**form))
Beispiel #15
0
def ajax_delpost():
    userid = authed()
    form = getfields(_require=(), _optional=("tid", "rid"))
    if not form.has_key('tid') and not form.has_key('rid') :
        raise FormValidError('Must supply tid or replyid')
    if form.has_key('tid') :
        ret = a_deltopic(userid, form['tid'])
    else :
        ret = a_delreply(userid, form['rid'])
    return json_success(**ret)
Beispiel #16
0
def ajax_reply():
    userid = authed()
    form = getfields(_require=("content",),
                     _optional=("tid", "replyid", "summary"))
    if not form.has_key('tid') and not form.has_key('replyid') :
        raise FormValidError('Must supply tid or replyid')
    form['userid'] = userid
    form['fromaddr'] = request.remote_addr
    if form.has_key('tid') :
        ret = a_reply(**form)
    else :
        ret = a_comment(**form)
    return json_success(**ret)
Beispiel #17
0
def ajax_reply():
    userid = authed()
    form = getfields(_require=("content",),
                     _optional=("tid", "replyid", "summary"))
    if not form.has_key('tid') and not form.has_key('replyid') :
        raise FormValidError('Must supply tid or replyid')
    form['userid'] = userid
    form['fromaddr'] = request.remote_addr
    if form.has_key('tid') :
        ret = a_reply(**form)
    else :
        ret = a_comment(**form)
    return json_success(**ret)
Beispiel #18
0
def allboards():
    boards = getboards()
    sections = groupup(boards)
    bs = get_all_bsetting()
    if authed():
        msg = getclient().getmessage()
    else:
        msg = None
    return render_template('allboards.html',
                           secdatas=secdatas,
                           boards=boards,
                           sections=sections,
                           bs=bs,
                           msg=msg)
Beispiel #19
0
def topic(tid):
    db = getconn()
    userid = authed()
    if userid :
        topic = db.get(u"SELECT herzog_topic.tid as tid, owner, title, score, v,"
                       "  lastupdate, lastreply, replynum, partnum, upvote,"
                       "  fromapp, herzog_topic.flag, content, upvote, boardname,"
                       "  herzog_topicship.flag as tsflag, readtime FROM herzog_topic"
                       " LEFT JOIN herzog_topicship"
                       " ON herzog_topicship.tid=herzog_topic.tid"
                       "     AND herzog_topicship.userid=%s"
                       " WHERE herzog_topicship.tid=%s", userid, tid)
    else :
        topic = db.get(u"SELECT tid, owner, title, score, v, lastupdate,"
                       "   lastreply, replynum, partnum, upvote, fromapp,"
                       "   flag, content, upvote, boardname FROM herzog_topic"
                       " WHERE tid=%s", tid)        
    if not topic :
        abort(404)
    if userid :
        replys0 = db.query(u"SELECT herzog_reply.rid, brid, replyid, owner,"
                           "  lastupdate, fromapp, herzog_reply.flag, content,"
                           "  upvote, herzog_replyship.flag as rsflag"
                           "  FROM herzog_reply LEFT JOIN herzog_replyship"
                           "  ON herzog_replyship.rid=herzog_reply.rid"
                           "     AND herzog_replyship.userid=%s"
                           "  WHERE tid=%s ORDER BY brid LIMIT 100",
                           userid, tid)
    else :
        replys0 = db.query(u"SELECT herzog_reply.rid, brid, replyid, owner,"
                           "  lastupdate, fromapp, flag, content, upvote"
                           "  herzog_replyship.flag as rsflag"
                           "  FROM herzog_reply"
                           "  WHERE tid=%s ORDER BY brid LIMIT 100",
                           userid, tid)
    lastbranch = None
    lastcomments = None
    replys = []
    for r in replys0 :
        if lastbranch is None or r.brid != lastbranch.brid :
            lastcomments = r['comments'] = []
            lastbranch = r
            replys.append(r)
        else :
            lastcomments.append(r)
    topic['boarddesc'] = getboards()[topic['boardname']]['boarddesc']
    return render_template('topic.html', topic=topic, replys=replys)
Beispiel #20
0
def update_resource():
    userid = authed()
    form = getfields(_require=('resname', 'ds'))
    try:
        json.loads(form['ds'])
    except ValueError :
        return json_error(3, "Wrong json value")
    db = getconn()
    rid = db.get(u"SELECT rid FROM herzog_cms_resource"
                   "  WHERE resname=%s", form['resname'])
    if rid :
        db.execute(u"UPDATE herzog_cms_resource SET"
                   "  resname=%s, ds=%s, lastuserid=%s"
                   " WHERE rid=%s",
                   form['resname'], form['ds'], userid, rid.rid)
    else :
        db.execute(u"INSERT INTO herzog_cms_resource"
                   "  (resname, ds, lastuserid) VALUES"
                   "  (%s, %s, %s)", form['resname'], form['ds'],
                   userid)
    return json_success()
Beispiel #21
0
def update_resource():
    userid = authed()
    form = getfields(_require=('resname', 'ds'))
    try:
        json.loads(form['ds'])
    except ValueError:
        return json_error(3, "Wrong json value")
    db = getconn()
    rid = db.get(u"SELECT rid FROM herzog_cms_resource"
                 "  WHERE resname=%s", form['resname'])
    if rid:
        db.execute(
            u"UPDATE herzog_cms_resource SET"
            "  resname=%s, ds=%s, lastuserid=%s"
            " WHERE rid=%s", form['resname'], form['ds'], userid, rid.rid)
    else:
        db.execute(
            u"INSERT INTO herzog_cms_resource"
            "  (resname, ds, lastuserid) VALUES"
            "  (%s, %s, %s)", form['resname'], form['ds'], userid)
    return json_success()
Beispiel #22
0
def update_page():
    userid = authed()
    form = getfields(_require=('pagepath', 'pagename', 'tpl', 'rid'))
    db = getconn()
    pid = db.query(u"SELECT pid FROM herzog_cms_page"
                   "  WHERE pagepath=%s", form['pagepath'])
    if pid :
        if form['pagename'].strip() :
            db.execute(u"UPDATE herzog_cms_page SET"
                       "  pagename=%s, pagepath=%s, tpl=%s, rid=%s, lastuserid=%s",
                       "  WHERE pid=%s",
                       form['pagename'], form['pagepath'], form['tpl'],
                       form['rid'], userid, pid.pid)
        else :
            db.execute(u"DELETE FROM herzog_cms_page"
                       "  WHERE pid=%s", pid.pid)
    else :
        rid = db.execute(u"INSERT INTO herzog_cms_page"
                         "  pagename, pagepath, tpl, rid, lastuserid VALUES"
                         "  (%s, %s, %s, %s, %s)",
                         form['pagename'], form['pagepath'], form['tpl'],
                         form['rid'], userid)
    return json_success()
Beispiel #23
0
def update_page():
    userid = authed()
    form = getfields(_require=('pagepath', 'pagename', 'tpl', 'rid'))
    db = getconn()
    pid = db.query(u"SELECT pid FROM herzog_cms_page"
                   "  WHERE pagepath=%s", form['pagepath'])
    if pid:
        if form['pagename'].strip():
            db.execute(
                u"UPDATE herzog_cms_page SET"
                "  pagename=%s, pagepath=%s, tpl=%s, rid=%s, lastuserid=%s",
                "  WHERE pid=%s", form['pagename'], form['pagepath'],
                form['tpl'], form['rid'], userid, pid.pid)
        else:
            db.execute(u"DELETE FROM herzog_cms_page"
                       "  WHERE pid=%s", pid.pid)
    else:
        rid = db.execute(
            u"INSERT INTO herzog_cms_page"
            "  pagename, pagepath, tpl, rid, lastuserid VALUES"
            "  (%s, %s, %s, %s, %s)", form['pagename'], form['pagepath'],
            form['tpl'], form['rid'], userid)
    return json_success()
Beispiel #24
0
def edit_resource(resname):
    userid = authed()
    res = getconn().get(u"SELECT * FROM herzog_cms_resource"
                        "  WHERE resname=%s", resname)
    res['ds'] = res['ds']
    return render_template('edit_resource.html', res=res)
Beispiel #25
0
def ajax_unvotepost():
    userid = authed()
    form = getfields(_require=(), _optional=("tid", "rid"))
    if not form.has_key('tid') and not form.has_key('rid') :
        raise FormValidError('Must supply tid or replyid')
    return json_success(**a_unvote(userid, form.get('tid'), form.get('rid')))
Beispiel #26
0
def ajax_setvpost():
    userid = authed()
    form = getfields(_require=("tid", "v"))
    return json_success(**a_setv(userid, form.get('tid'), form.get('v')))
Beispiel #27
0
def ajax_setvpost():
    userid = authed()
    form = getfields(_require=("tid", "v"))
    return json_success(**a_setv(userid, form.get('tid'), form.get('v')))
Beispiel #28
0
def ajax_unvotepost():
    userid = authed()
    form = getfields(_require=(), _optional=("tid", "rid"))
    if not form.has_key('tid') and not form.has_key('rid') :
        raise FormValidError('Must supply tid or replyid')
    return json_success(**a_unvote(userid, form.get('tid'), form.get('rid')))