예제 #1
0
파일: main.py 프로젝트: searchmodel/OBlog
def updateTag(postRequest):
    '''
    description:    set tag attribution
    input:          dict - post request
    output:         0
    '''

    # 后端验证
    pattern = r'^\w+$'
    if not re.match(pattern, postRequest["newenglish"]):
        return 1

    if postRequest['english'] != postRequest['newenglish'] and db.exist_db(
            "tags", {'english': postRequest["newenglish"]}) == True:
        return 2

    chinese = postRequest['chinese']
    postRequest['english'] = postRequest['newenglish']

    # 删除前端传入的其他参数
    keyList = ['english', 'img', 'class']
    postRequest = dict((key, postRequest[key] if key in postRequest else "")
                       for key in keyList)

    db.update_db("tags", postRequest, {'chinese': chinese})
    return 0
예제 #2
0
def deletePage(postRequest):
    current_app.logger.debug(postRequest)
    url = postRequest['url']

    if not db.exist_db('pages', {'url': url}):
        # 不存在
        return 1

    db.delete_db("pages", {'url': url})
    return 0
예제 #3
0
def addFriends(postRequest):
    if not re.match(r'^[0-9]+$', postRequest['idx']):
        return 1
    if db.exist_db("friends", {'name': postRequest['name']}) == True:
        return 2

    keyList = ['url', 'name', 'idx']
    postRequest = dict((key, postRequest[key] if key in postRequest else "")
                       for key in keyList)

    db.insert_db("friends", postRequest)
    return 0
예제 #4
0
파일: main.py 프로젝트: forkpool/OBlog
def addPost(postRequest):
    current_app.logger.debug(postRequest)

    pattern = [
        r'^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$',
        r'^[0-9]+$', r'^[\w\-\.,@?^=%&:~\+#]+(?:\/[\w\-\.,@?^=%&:~\+#]+)*$'
    ]
    if not (re.match(pattern[0], postRequest["time"])
            and re.match(pattern[0], postRequest["updatetime"])
            and re.match(pattern[1], postRequest["view"])
            and re.match(pattern[2], postRequest["url"])):
        return 1
    if db.exist_db("posts", {'url': postRequest["url"]}) == True:
        return 2

    if postRequest['tags'] == '':
        postRequest['tags'] = '无标签'

    from OBlog.markdown import render_markdown
    import json
    from ..search.main import getKeywords

    postRequest['html'] = render_markdown(postRequest['raw'])
    postRequest['keywords'] = postRequest['tags'] + \
        getKeywords(postRequest['title'] + postRequest['raw'])
    # postRequest['searchdict1'] = json.dumps(
    #    getCntDict(postRequest["title"] + " " + postRequest['tags']))
    # postRequest['searchdict2'] = json.dumps(
    #    getCntDict(postRequest['abstruct'] + " " + postRequest["raw"]))
    postRequest['searchdict1'] = postRequest['searchdict2'] = ""

    # 新的标签计数加1
    from ..tags.main import tagSplit, addTag
    tags = tagSplit(postRequest['tags'])
    for tag in tags:
        addTag(tag)

    # 去除前导零
    postRequest["view"] = str(int(postRequest["view"]))

    # 删除前端传入的其他参数
    keyList = [
        'url', 'title', 'time', 'updatetime', 'view', 'tags', 'abstruct',
        'raw', 'html', 'keywords', 'searchdict1', 'searchdict2', 'published',
        'img'
    ]
    postRequest = dict((key, postRequest[key] if key in postRequest else "")
                       for key in keyList)

    db.insert_db("posts", postRequest)
    return 0
예제 #5
0
파일: main.py 프로젝트: searchmodel/OBlog
def subtractTag(chinese):
    '''
    description:    tag num subtract 1
    input:          tag id(chinese)
    output:         0
    '''
    if db.exist_db("tags", {"chinese": chinese}) == True:
        cnt = db.query_db('select cnt from tags where chinese="{}"',
                          chinese,
                          one=True)['cnt']
        cnt = str(int(cnt) - 1)
        db.update_db("tags", {'cnt': cnt}, {'chinese': chinese})
        if int(cnt) <= 0:
            deleteTag(chinese)
예제 #6
0
def updateFriends(postRequest):
    oldname = postRequest['oldname']

    if not re.match(r'^[0-9]+$', postRequest['idx']):
        return 1
    if oldname != postRequest['name'] and db.exist_db(
            "friends", {'name': postRequest['name']}) == True:
        return 2

    keyList = ['url', 'name', 'idx']
    postRequest = dict((key, postRequest[key] if key in postRequest else "")
                       for key in keyList)

    db.update_db("friends", postRequest, {'name': oldname})
    return 0
예제 #7
0
def addPages(postRequest):
    current_app.logger.debug(postRequest)
    if db.exist_db('pages', {'url': postRequest['url']}):
        # 已经存在
        return 1
    if not (re.match(r'^[0-9]+$', postRequest["idx"])):
        return 2

    keyList = ['url', 'title', 'idx']
    postRequest = dict((key, postRequest[key] if key in postRequest else "")
                       for key in keyList)
    postRequest['show'] = 'true'

    db.insert_db('pages', postRequest)
    return 0
예제 #8
0
def updatePage(postRequest):
    current_app.logger.debug(postRequest)

    oldurl = postRequest['oldurl']
    url = postRequest['url']

    if url != oldurl and db.exist_db('pages', {'url': url}):
        # 重复url
        return 1
    if not (re.match(r'^[0-9]+$', postRequest["idx"])):
        return 2

    keyList = ['url', 'title', 'idx', 'show']
    postRequest = dict((key, postRequest[key] if key in postRequest else "")
                       for key in keyList)

    db.update_db("pages", postRequest, {'url': oldurl})
    return 0
예제 #9
0
파일: main.py 프로젝트: searchmodel/OBlog
def addTag(chinese):
    '''
    description:    tag num plus 1
    input:          tag id(chinese)
    output:         0
    '''
    if db.exist_db("tags", {"chinese": chinese}) == True:
        cnt = db.query_db('select cnt from tags where chinese="{}"',
                          chinese,
                          one=True)['cnt']
        cnt = str(int(cnt) + 1)
        db.update_db("tags", {'cnt': cnt}, {'chinese': chinese})
    else:
        db.insert_db(
            "tags", {
                "chinese": chinese,
                "english": encode(chinese),
                "cnt": "1",
                "img": "",
                "class": ""
            })
    return 0
예제 #10
0
파일: main.py 프로젝트: forkpool/OBlog
def updatePost(postRequest):
    current_app.logger.debug(postRequest)

    oldurl = postRequest["oldurl"]

    # 后端验证
    pattern = [
        r'^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$',
        r'^[0-9]+$', r'^[\w\-\.,@?^=%&:~\+#]+(?:\/[\w\-\.,@?^=%&:~\+#]+)*$'
    ]
    if not (re.match(pattern[0], postRequest["time"])
            and re.match(pattern[0], postRequest["updatetime"])
            and re.match(pattern[1], postRequest["view"])
            and re.match(pattern[2], postRequest["url"])):
        return 1
    if oldurl != postRequest['url'] and db.exist_db(
            "posts", {'url': postRequest["url"]}) == True:
        return 2

    if postRequest['tags'] == '':
        postRequest['tags'] = '无标签'

    from OBlog.markdown import render_markdown
    import json
    from ..search.main import getKeywords

    postRequest['html'] = render_markdown(postRequest['raw'])
    postRequest['keywords'] = postRequest['tags'] + \
        getKeywords(postRequest['title'] + postRequest['raw'])
    # postRequest['searchdict1'] = json.dumps(
    #     getCntDict(postRequest["title"] + " " + postRequest['tags']))
    # postRequest['searchdict2'] = json.dumps(
    #     getCntDict(postRequest['abstruct'] + " " + postRequest["raw"]))
    postRequest['searchdict1'] = postRequest['searchdict2'] = ""

    # 更新标签
    from ..tags.main import getTagsOfPost, tagSplit, addTag, subtractTag

    oldtags = getTagsOfPost(oldurl)
    newtags = tagSplit(postRequest['tags'])
    alltags = set(oldtags + newtags)
    for tag in alltags:
        if tag in oldtags and tag not in newtags:
            subtractTag(tag)
        elif tag not in oldtags and tag in newtags:
            addTag(tag)

    if oldurl != postRequest['url']:
        # update comments
        from ..comments.main import updateCommentUrl
        updateCommentUrl({
            'url': 'post/' + postRequest['url'],
            'oldurl': 'post/' + oldurl
        })

    # 去除前导零
    postRequest["view"] = str(int(postRequest["view"]))

    # 删除前端传入的其他参数
    keyList = [
        'url', 'title', 'time', 'updatetime', 'view', 'tags', 'abstruct',
        'raw', 'html', 'keywords', 'searchdict1', 'searchdict2', 'published',
        'img'
    ]
    postRequest = dict((key, postRequest[key] if key in postRequest else "")
                       for key in keyList)

    db.update_db("posts", postRequest, {'url': oldurl})
    return 0
예제 #11
0
파일: main.py 프로젝트: forkpool/OBlog
def existPost(url):
    return db.exist_db('posts', {'url': url})