Пример #1
0
def get_user_list_followers(data):
    code = 0

    user_info = get_details_user(data)['response']
    user_code = get_details_user(data)['code']

    since = data.get('since_id', [0, ])[0]
    limit = data.get('limit', [0, ])[0]
    is_desc = 0
    order_by = data.get('order', ['asc', ])
    if 'desc' in order_by:
        is_desc = 1

    followers_list = []
    filter2 = []

    if user_code == 0:
        for x in user_info['followers']:
            usr_details = get_details_user({'user': [x, ]})
            usr_details = usr_details['response']
            followers_list.append(usr_details)

        filter1 = [x for x in followers_list if x['id'] >= int(since)]
        filter2 = sorted(filter1, key=lambda a: a['name'], reverse=is_desc)

        if limit:
            filter2 = filter2[0:int(limit)]
    else:
        code = user_code

    res_dict = {'code': code, 'response': filter2}
    return res_dict
Пример #2
0
def unfollow_user(data):
    code = 1

    keys = []
    values = []
    resp_dict = {'code': code, 'response': []}

    email_1 = data['follower']
    email_2 = data['followee']

    sql_scheme_usr1 = {
        'columns_names': ['email'],
        'columns_values': [email_1],
        'table': 'User'
    }

    sql_scheme_usr2 = {
        'columns_names': ['email'],
        'columns_values': [email_2],
        'table': 'User'
    }

    sql_scheme_follow = {
        'columns_names': ['follower', 'followee'],
        'columns_values': [email_1, email_2],
        'table': 'Followers'
    }

    sql_check_usr1 = build_sql_select_all_query(sql_scheme_usr1)
    sql_check_usr2 = build_sql_select_all_query(sql_scheme_usr2)
    sql_check_follow = build_sql_select_all_query(sql_scheme_follow)

    res_usr1 = open_sql(sql_check_usr1)  # check if exists
    res_usr2 = open_sql(sql_check_usr2)
    res_follow = open_sql(sql_check_follow)

    if res_usr1 and res_usr2 and res_follow:

        sql_scheme_follow = {
            'columns_names': ['isDeleted'],
            'columns_values': [1],
            'table': 'Followers',
            'condition': {'id': res_follow['id']}
        }

        sql = build_sql_update_query(sql_scheme_follow)
        exec_message = exec_sql(sql)

        if exec_message != 0:
            code = 4

        usr_details = get_details_user({'user': [res_usr1['email'], ]})
        usr_details = usr_details['response']

        resp_dict = {'code': code, 'response': usr_details}
    else:
        code = 2
    #resp_dict = make_response(keys, values, code)

    return flask.jsonify(resp_dict)
Пример #3
0
def update_user(data):
    code = 0
    keys = []
    values = []

    about = data['about']
    user_email = data['user']
    name = data['name']

    sql_scheme = {
        'columns_names': ['email'],
        'columns_values': [user_email],
        'table': 'User'
    }

    sql_check = build_sql_select_all_query(sql_scheme)
    res = open_sql(sql_check)

    if res:
        sql_scheme = {
            'columns_names': ['name', 'about'],
            'columns_values': [name, about],
            'condition': {'email': user_email},
            'table': 'User'
        }
        exec_sql(build_sql_update_query(sql_scheme))

        user_data = {'user': [res['email'], ]}
        user_resp = get_details_user(user_data)['response']

    else:
        code = 1

    resp_dict = {'code': code, 'response': user_resp}
    return flask.jsonify(resp_dict)
Пример #4
0
def get_details_post(data):
    code = 0
    resp_keys = []
    resp_values = []

    post_id = data.get('post', None)[0]
    related = data.get('related', None)

    attributes = ' * '
    only_mp = data.get('only_mp', None)
    if only_mp:
        attributes = ' mp '

    sql_scheme = {
        'columns_names': ['id'],
        'columns_values': [post_id],
        'table': 'Post'
    }
    sql_check = build_sql_select_all_query(sql_scheme, what=attributes)

    is_closing = data.get('is_closing', [1, ])[0]
    cursor = data.get('cursor', [1, ])[0]

    if is_closing == 1 and cursor == 1:
        res = open_sql(sql_check)  # check if exists
    else:
        res = open_sql(sql_check, first=False, is_closing=False, cursor=cursor)['result']

    if not res:
        code = 1
    else:
        if related and is_closing == 1:
            forum_data = {'forum': [res['forum']], }
            forum_resp = get_details_forum(forum_data)
            res['forum'] = forum_resp['response']

            user_data = {'user': [res['user'], ]}
            user_resp = get_details_user(user_data)
            res['user'] = user_resp['response']

            thread_data = {'thread': [res['thread'], ]}
            thread_resp = get_details_thread(thread_data)
            res['thread'] = thread_resp['response']

        if not only_mp:
            resp_keys = ['date', 'forum', 'id', 'isApproved', 'isDeleted', 'isEdited', 'isHighlighted', 'isSpam',
                         'message', 'parent', 'thread', 'user', 'likes', 'dislikes', 'points']

            resp_values = [str(res['date']), res['forum'], int(post_id), bool(res['isApproved']),
                           bool(res['isDeleted']), bool(res['isEdited']), bool(res['isHighlighted']),
                           bool(res['isSpam']), res['message'], res['parent'], res['thread'], res['user'], res['likes'],
                           res['dislikes'], res['points']]
        else:
            resp_keys = ['mp']
            resp_values = [res['mp']]

    resp_dict = make_response(resp_keys, resp_values, code)

    return resp_dict
Пример #5
0
def get_details_thread(data):
    code = 0
    keys = []
    values = []
    if not data:
        resp_dict = make_response(keys, values, code=4)
        return flask.jsonify(resp_dict)

    thread_id = data.get('thread', None)[0]
    related = data.get('related', None)
    if related and 'thread' in related:
        code = 3

    sql_scheme = {
        'columns_names': ['id'],
        'columns_values': [thread_id],
        'table': 'Thread'
    }

    is_closing = data.get('is_closing', [1, ])[0]
    cursor = data.get('cursor', [1, ])[0]

    sql_check = build_sql_select_all_query(sql_scheme)

    if is_closing == 1 and cursor == 1:
        res = open_sql(sql_check)  # check if exists
    else:
        res = open_sql(sql_check, first=False, is_closing=False, cursor=cursor)['result']

    if not res:
        code = 2
    else:
        if related and cursor == 1:
            forum_data = {'forum': [res['forum']], }
            forum_resp = get_details_forum(forum_data)
            res['forum'] = forum_resp['response']

            user_data = {'user': [res['user'], ]}
            user_resp = get_details_user(user_data)
            res['user'] = user_resp['response']

        keys = ['id', 'date', 'dislikes', 'forum', 'isClosed', 'isDeleted', 'likes', 'message', 'points', 'posts',
                'slug', 'title', 'user']

        #if res['isDeleted']:
        #    res['posts'] = 0
        values = [res['id'], str(res['date']), res['dislikes'], res['forum'], bool(res['isClosed']),
                  bool(res['isDeleted']), res['likes'], res['message'], res['points'], res['posts'], res['slug'],
                  res['title'], res['user']]

    resp_dict = make_response(keys, values, code)

    return resp_dict
Пример #6
0
def get_user_list_following(data):
    code = 0

    user_info = get_details_user(data)['response']
    user_code = get_details_user(data)['code']

    since = data.get('since_id', [
        0,
    ])[0]
    limit = data.get('limit', [
        0,
    ])[0]
    is_desc = 0
    order_by = data.get('order', [
        'asc',
    ])
    if 'desc' in order_by:
        is_desc = 1

    followers_list = []
    filter2 = []

    if user_code == 0:
        for x in user_info['following']:
            usr_details = get_details_user({'user': [
                x,
            ]})
            usr_details = usr_details['response']
            followers_list.append(usr_details)

        filter1 = [x for x in followers_list if x['id'] >= int(since)]
        filter2 = sorted(filter1, key=lambda a: a['name'], reverse=is_desc)

        if limit:
            filter2 = filter2[0:int(limit)]
    else:
        code = user_code

    res_dict = {'code': code, 'response': filter2}
    return res_dict
Пример #7
0
def update_user(data):
    code = 0
    keys = []
    values = []

    about = data['about']
    user_email = data['user']
    name = data['name']

    sql_scheme = {
        'columns_names': ['email'],
        'columns_values': [user_email],
        'table': 'User'
    }

    sql_check = build_sql_select_all_query(sql_scheme)
    res = open_sql(sql_check)

    if res:
        sql_scheme = {
            'columns_names': ['name', 'about'],
            'columns_values': [name, about],
            'condition': {
                'email': user_email
            },
            'table': 'User'
        }
        exec_sql(build_sql_update_query(sql_scheme))

        user_data = {
            'user': [
                res['email'],
            ]
        }
        user_resp = get_details_user(user_data)['response']

    else:
        code = 1

    resp_dict = {'code': code, 'response': user_resp}
    return flask.jsonify(resp_dict)
Пример #8
0
def get_details_forum(data):
    code = 0
    keys = []
    values = []

    forum_sh_name = data.get('forum', None)[0]
    #related = data['related'][0]
    related = data.get('related', None)

    sql_scheme = {
        'columns_names': ['short_name'],
        'columns_values': [forum_sh_name],
        'table': 'Forum'
    }

    is_closing = data.get('is_closing', [1, ])[0]
    cursor = data.get('cursor', [1, ])[0]

    sql_check = build_sql_select_all_query(sql_scheme)
    if is_closing == 1 and cursor == 1:
        res = open_sql(sql_check)  # check if exists
    else:
        res = open_sql(sql_check, first=False, is_closing=False, cursor=cursor)['result']

    if not res:
        code = 2
    else:
        if related and cursor == 1:
            user_data = {'user': [res['user'], ]}
            user_resp = get_details_user(user_data)
            res['user'] = user_resp['response']

        keys = ['id', 'name', 'short_name', 'user']
        values = [res['id'], res['name'], res['short_name'], res['user']]

    resp_dict = make_response(keys, values, code)

    return resp_dict
Пример #9
0
def unfollow_user(data):
    code = 1

    keys = []
    values = []
    resp_dict = {'code': code, 'response': []}

    email_1 = data['follower']
    email_2 = data['followee']

    sql_scheme_usr1 = {
        'columns_names': ['email'],
        'columns_values': [email_1],
        'table': 'User'
    }

    sql_scheme_usr2 = {
        'columns_names': ['email'],
        'columns_values': [email_2],
        'table': 'User'
    }

    sql_scheme_follow = {
        'columns_names': ['follower', 'followee'],
        'columns_values': [email_1, email_2],
        'table': 'Followers'
    }

    sql_check_usr1 = build_sql_select_all_query(sql_scheme_usr1)
    sql_check_usr2 = build_sql_select_all_query(sql_scheme_usr2)
    sql_check_follow = build_sql_select_all_query(sql_scheme_follow)

    res_usr1 = open_sql(sql_check_usr1)  # check if exists
    res_usr2 = open_sql(sql_check_usr2)
    res_follow = open_sql(sql_check_follow)

    if res_usr1 and res_usr2 and res_follow:

        sql_scheme_follow = {
            'columns_names': ['isDeleted'],
            'columns_values': [1],
            'table': 'Followers',
            'condition': {
                'id': res_follow['id']
            }
        }

        sql = build_sql_update_query(sql_scheme_follow)
        exec_message = exec_sql(sql)

        if exec_message != 0:
            code = 4

        usr_details = get_details_user({'user': [
            res_usr1['email'],
        ]})
        usr_details = usr_details['response']

        resp_dict = {'code': code, 'response': usr_details}
    else:
        code = 2
    #resp_dict = make_response(keys, values, code)

    return flask.jsonify(resp_dict)
Пример #10
0
def get_details_post(data):
    code = 0
    resp_keys = []
    resp_values = []

    post_id = data.get('post', None)[0]
    related = data.get('related', None)

    attributes = ' * '
    only_mp = data.get('only_mp', None)
    if only_mp:
        attributes = ' mp '

    sql_scheme = {
        'columns_names': ['id'],
        'columns_values': [post_id],
        'table': 'Post'
    }
    sql_check = build_sql_select_all_query(sql_scheme, what=attributes)

    is_closing = data.get('is_closing', [
        1,
    ])[0]
    cursor = data.get('cursor', [
        1,
    ])[0]

    if is_closing == 1 and cursor == 1:
        res = open_sql(sql_check)  # check if exists
    else:
        res = open_sql(sql_check, first=False, is_closing=False,
                       cursor=cursor)['result']

    if not res:
        code = 1
    else:
        if related and is_closing == 1:
            forum_data = {
                'forum': [res['forum']],
            }
            forum_resp = get_details_forum(forum_data)
            res['forum'] = forum_resp['response']

            user_data = {
                'user': [
                    res['user'],
                ]
            }
            user_resp = get_details_user(user_data)
            res['user'] = user_resp['response']

            thread_data = {
                'thread': [
                    res['thread'],
                ]
            }
            thread_resp = get_details_thread(thread_data)
            res['thread'] = thread_resp['response']

        if not only_mp:
            resp_keys = [
                'date', 'forum', 'id', 'isApproved', 'isDeleted', 'isEdited',
                'isHighlighted', 'isSpam', 'message', 'parent', 'thread',
                'user', 'likes', 'dislikes', 'points'
            ]

            resp_values = [
                str(res['date']), res['forum'],
                int(post_id),
                bool(res['isApproved']),
                bool(res['isDeleted']),
                bool(res['isEdited']),
                bool(res['isHighlighted']),
                bool(res['isSpam']), res['message'], res['parent'],
                res['thread'], res['user'], res['likes'], res['dislikes'],
                res['points']
            ]
        else:
            resp_keys = ['mp']
            resp_values = [res['mp']]

    resp_dict = make_response(resp_keys, resp_values, code)

    return resp_dict
Пример #11
0
def api_details_user():
    data = dict(flask.request.args)
    return flask.jsonify(get_details_user(data))
Пример #12
0
def follow_user(data):
    code = 0

    keys = [
        'id', 'username', 'about', 'name', 'email', 'isAnonymous', 'followers',
        'following', 'subscriptions'
    ]
    values = [1, 'noname', 'qwe', 'lal', '*****@*****.**', 0, 'a', 'b', 'c']

    if not data:
        resp_dict = make_response(keys, values, code=0)
        return flask.jsonify(resp_dict)

    email_1 = data['follower']
    email_2 = data['followee']

    sql_scheme_usr1 = {
        'columns_names': ['email'],
        'columns_values': [email_1],
        'table': 'User'
    }

    sql_scheme_usr2 = {
        'columns_names': ['email'],
        'columns_values': [email_2],
        'table': 'User'
    }

    sql_scheme_follow = {
        'columns_names': ['follower', 'followee'],
        'columns_values': [email_1, email_2],
        'table': 'Followers'
    }

    #sql_check_usr1 = build_sql_select_all_query(sql_scheme_usr1, what=' id ', limit=1)
    #sql_check_usr2 = build_sql_select_all_query(sql_scheme_usr2, what=' id ', limit=1)
    sql_check_follow = build_sql_select_all_query(sql_scheme_follow)

    #res_usr1 = open_sql(sql_check_usr1)  # check if exists
    #res_usr2 = open_sql(sql_check_usr2)
    res_usr1 = True
    res_usr2 = True

    res_follow = open_sql(sql_check_follow)

    if res_usr1 and res_usr2 and not res_follow:
        sql = build_sql_insert_query(sql_scheme_follow)
        exec_message = exec_sql(sql)

        if exec_message < 0:
            #code = 4
            a = 0

        usr_details = get_details_user({'user': [
            email_1,
        ]})

        usr_details = usr_details['response']

        if 'id' in usr_details:
            values = [
                int(usr_details['id']), usr_details['username'],
                usr_details['about'], usr_details['name'],
                usr_details['email'],
                bool(usr_details['isAnonymous']), usr_details['followers'],
                usr_details['following'], usr_details['subscriptions']
            ]

    resp_dict = make_response(keys, values, code)
    return flask.jsonify(resp_dict)
Пример #13
0
def get_forum_posts_list(data):
    code = 0
    posts_list = []

    forum_sh_name = data.get('forum')[0]

    since = data.get('since', [0, ])[0]

    limit = data.get('limit', [0, ])[0]

    sort_by = data.get('sort', 'flat')

    related = data.get('related', [0, ])

    is_desc = 0
    order_by = data.get('order', 'desc')
    if 'desc' in order_by:
        is_desc = 1

    sql_scheme = {
        'columns_names': ['short_name'],
        'columns_values': [forum_sh_name],
        'table': 'Forum'
    }
    # sql_check = build_sql_select_all_query(sql_scheme)

    #res = open_sql(sql_check)  # check if exists
    res = True
    if not res:
        code = 5
    else:
        sql_scheme = {
            'columns_names': ['forum'],
            'columns_values': [forum_sh_name],
            'table': 'Post'
        }
        if since != 0:
            larger = {'date': since}
            sql = build_sql_select_all_query(sql_scheme, is_desc, limit, larger)
        else:
            sql = build_sql_select_all_query(sql_scheme, is_desc, limit)

        posts_list_dict = open_sql_all(sql, first=True, is_closing=False)
        posts_list = posts_list_dict['result']
        db = posts_list_dict['db']
        crs = posts_list_dict['cursor']

    resp_keys = ['date', 'forum', 'id', 'isApproved', 'isDeleted', 'isEdited', 'isHighlighted', 'isSpam', 'message',
                 'parent', 'thread', 'user', 'likes', 'dislikes', 'points']

    resp_dict = []
    final_resp = make_response(code=code)

    if code == 0 and posts_list:
        for res in posts_list:
            resp_values = [str(res['date']), res['forum'], res['id'], bool(res['isApproved']), bool(res['isDeleted']),
                           bool(res['isEdited']), bool(res['isHighlighted']), bool(res['isSpam']), res['message'],
                           res['parent'], res['thread'], res['user'], res['likes'], res['dislikes'],
                           res['points']]
            resp_dict.append(make_response(resp_keys, resp_values, code)['response'])
        if 'thread' in related:
            for x in resp_dict:
                x['thread'] = get_details_thread({'thread': [x['thread'], ], 'is_closing': [False, ], 'cursor': [crs, ]})['response']

        if 'forum' in related:
            for x in resp_dict:
                x['forum'] = get_details_forum({'forum': [x['forum'], ], 'is_closing': [False, ], 'cursor': [crs, ]})['response']

        if 'user' in related:
            for x in resp_dict:
                x['user'] = get_details_user({'user': [x['user'], ], 'is_closing': [False, ], 'cursor': [crs, ]})['response']

        final_resp = {'code': code, 'response': resp_dict}

    db.close()
    return final_resp
Пример #14
0
def follow_user(data):
    code = 0

    keys = ['id', 'username', 'about', 'name', 'email', 'isAnonymous', 'followers', 'following', 'subscriptions']
    values = [1, 'noname', 'qwe', 'lal', '*****@*****.**', 0, 'a', 'b', 'c']

    if not data:
        resp_dict = make_response(keys, values, code=0)
        return flask.jsonify(resp_dict)

    email_1 = data['follower']
    email_2 = data['followee']

    sql_scheme_usr1 = {
        'columns_names': ['email'],
        'columns_values': [email_1],
        'table': 'User'
    }

    sql_scheme_usr2 = {
        'columns_names': ['email'],
        'columns_values': [email_2],
        'table': 'User'
    }

    sql_scheme_follow = {
        'columns_names': ['follower', 'followee'],
        'columns_values': [email_1, email_2],
        'table': 'Followers'
    }

    #sql_check_usr1 = build_sql_select_all_query(sql_scheme_usr1, what=' id ', limit=1)
    #sql_check_usr2 = build_sql_select_all_query(sql_scheme_usr2, what=' id ', limit=1)
    sql_check_follow = build_sql_select_all_query(sql_scheme_follow)

    #res_usr1 = open_sql(sql_check_usr1)  # check if exists
    #res_usr2 = open_sql(sql_check_usr2)
    res_usr1 = True
    res_usr2 = True

    res_follow = open_sql(sql_check_follow)

    if res_usr1 and res_usr2 and not res_follow:
        sql = build_sql_insert_query(sql_scheme_follow)
        exec_message = exec_sql(sql)

        if exec_message < 0:
            #code = 4
            a = 0

        usr_details = get_details_user({'user': [email_1, ]})

        usr_details = usr_details['response']

        if 'id' in usr_details:
            values = [int(usr_details['id']), usr_details['username'], usr_details['about'], usr_details['name'],
                      usr_details['email'], bool(usr_details['isAnonymous']), usr_details['followers'],
                      usr_details['following'], usr_details['subscriptions']]

    resp_dict = make_response(keys, values, code)
    return flask.jsonify(resp_dict)
Пример #15
0
def get_forum_threads_list(data):
    code = 0
    thread_list = []

    forum_sh_name = data.get('forum')[0]

    since = data.get('since', [
        0,
    ])[0]

    limit = data.get('limit', [
        0,
    ])[0]

    sort_by = data.get('sort', 'flat')

    related = data.get('related', [
        0,
    ])

    is_desc = 0
    order_by = data.get('order', 'desc')
    if 'desc' in order_by:
        is_desc = 1

    sql_scheme = {
        'columns_names': ['short_name'],
        'columns_values': [forum_sh_name],
        'table': 'Forum'
    }

    #sql_check = build_sql_select_all_query(sql_scheme)

    #res = open_sql(sql_check)  # check if exists
    res = True
    if not res:
        code = 5
    else:
        sql_scheme = {
            'columns_names': ['forum'],
            'columns_values': [forum_sh_name],
            'table': 'Thread'
        }
        if since != 0:
            larger = {'date': since}
            sql = build_sql_select_all_query(sql_scheme,
                                             is_desc=is_desc,
                                             limit=limit,
                                             larger=larger,
                                             ord_by=' date ')
        else:
            sql = build_sql_select_all_query(sql_scheme,
                                             is_desc=is_desc,
                                             limit=limit,
                                             ord_by=' date ')

        thread_list_dict = open_sql_all(sql, first=True, is_closing=False)
        thread_list = thread_list_dict['result']
        if thread_list == -1 or not thread_list:
            return make_response([], [], code=4)
        db = thread_list_dict['db']
        crs = thread_list_dict['cursor']

    resp_keys = [
        'id', 'date', 'forum', 'isClosed', 'isDeleted', 'message', 'slug',
        'title', 'user'
    ]

    resp_dict = []
    final_resp = make_response(code=code)

    if code == 0 and thread_list:
        for res in thread_list:
            thread_data = get_details_thread({
                'thread': [
                    res['id'],
                ],
                'is_closing': [
                    False,
                ],
                'cursor': [
                    crs,
                ]
            })['response']
            resp_dict.append(thread_data)

        if 'forum' in related:
            for x in resp_dict:
                x['forum'] = get_details_forum({
                    'forum': [
                        x['forum'],
                    ],
                    'is_closing': [
                        False,
                    ],
                    'cursor': [
                        crs,
                    ]
                })['response']

        if 'user' in related:
            for x in resp_dict:
                x['user'] = get_details_user({
                    'user': [
                        x['user'],
                    ],
                    'is_closing': [
                        False,
                    ],
                    'cursor': [
                        crs,
                    ]
                })['response']

        final_resp = {'code': code, 'response': resp_dict}
    db.close()
    return final_resp
Пример #16
0
def get_forum_posts_list(data):
    code = 0
    posts_list = []

    forum_sh_name = data.get('forum')[0]

    since = data.get('since', [
        0,
    ])[0]

    limit = data.get('limit', [
        0,
    ])[0]

    sort_by = data.get('sort', 'flat')

    related = data.get('related', [
        0,
    ])

    is_desc = 0
    order_by = data.get('order', 'desc')
    if 'desc' in order_by:
        is_desc = 1

    sql_scheme = {
        'columns_names': ['short_name'],
        'columns_values': [forum_sh_name],
        'table': 'Forum'
    }
    # sql_check = build_sql_select_all_query(sql_scheme)

    #res = open_sql(sql_check)  # check if exists
    res = True
    if not res:
        code = 5
    else:
        sql_scheme = {
            'columns_names': ['forum'],
            'columns_values': [forum_sh_name],
            'table': 'Post'
        }
        if since != 0:
            larger = {'date': since}
            sql = build_sql_select_all_query(sql_scheme, is_desc, limit,
                                             larger)
        else:
            sql = build_sql_select_all_query(sql_scheme, is_desc, limit)

        posts_list_dict = open_sql_all(sql, first=True, is_closing=False)
        posts_list = posts_list_dict['result']
        db = posts_list_dict['db']
        crs = posts_list_dict['cursor']

    resp_keys = [
        'date', 'forum', 'id', 'isApproved', 'isDeleted', 'isEdited',
        'isHighlighted', 'isSpam', 'message', 'parent', 'thread', 'user',
        'likes', 'dislikes', 'points'
    ]

    resp_dict = []
    final_resp = make_response(code=code)

    if code == 0 and posts_list:
        for res in posts_list:
            resp_values = [
                str(res['date']), res['forum'], res['id'],
                bool(res['isApproved']),
                bool(res['isDeleted']),
                bool(res['isEdited']),
                bool(res['isHighlighted']),
                bool(res['isSpam']), res['message'], res['parent'],
                res['thread'], res['user'], res['likes'], res['dislikes'],
                res['points']
            ]
            resp_dict.append(
                make_response(resp_keys, resp_values, code)['response'])
        if 'thread' in related:
            for x in resp_dict:
                x['thread'] = get_details_thread({
                    'thread': [
                        x['thread'],
                    ],
                    'is_closing': [
                        False,
                    ],
                    'cursor': [
                        crs,
                    ]
                })['response']

        if 'forum' in related:
            for x in resp_dict:
                x['forum'] = get_details_forum({
                    'forum': [
                        x['forum'],
                    ],
                    'is_closing': [
                        False,
                    ],
                    'cursor': [
                        crs,
                    ]
                })['response']

        if 'user' in related:
            for x in resp_dict:
                x['user'] = get_details_user({
                    'user': [
                        x['user'],
                    ],
                    'is_closing': [
                        False,
                    ],
                    'cursor': [
                        crs,
                    ]
                })['response']

        final_resp = {'code': code, 'response': resp_dict}

    db.close()
    return final_resp
Пример #17
0
def api_details_user():
    data = dict(flask.request.args)
    return flask.jsonify(get_details_user(data))
Пример #18
0
def get_forum_threads_list(data):
    code = 0
    thread_list = []

    forum_sh_name = data.get('forum')[0]

    since = data.get('since', [0, ])[0]

    limit = data.get('limit', [0, ])[0]

    sort_by = data.get('sort', 'flat')

    related = data.get('related', [0, ])

    is_desc = 0
    order_by = data.get('order', 'desc')
    if 'desc' in order_by:
        is_desc = 1

    sql_scheme = {
        'columns_names': ['short_name'],
        'columns_values': [forum_sh_name],
        'table': 'Forum'
    }

    #sql_check = build_sql_select_all_query(sql_scheme)

    #res = open_sql(sql_check)  # check if exists
    res = True
    if not res:
        code = 5
    else:
        sql_scheme = {
            'columns_names': ['forum'],
            'columns_values': [forum_sh_name],
            'table': 'Thread'
        }
        if since != 0:
            larger = {'date': since}
            sql = build_sql_select_all_query(sql_scheme, is_desc=is_desc, limit=limit, larger=larger, ord_by=' date ')
        else:
            sql = build_sql_select_all_query(sql_scheme, is_desc=is_desc, limit=limit, ord_by=' date ')

        thread_list_dict = open_sql_all(sql, first=True, is_closing=False)
        thread_list = thread_list_dict['result']
        if thread_list == -1 or not thread_list:
                return make_response([], [], code=4)
        db = thread_list_dict['db']
        crs = thread_list_dict['cursor']

    resp_keys = ['id', 'date', 'forum', 'isClosed', 'isDeleted', 'message', 'slug', 'title', 'user']

    resp_dict = []
    final_resp = make_response(code=code)

    if code == 0 and thread_list:
        for res in thread_list:
            thread_data = get_details_thread({'thread': [res['id'], ], 'is_closing': [False, ], 'cursor': [crs, ]})['response']
            resp_dict.append(thread_data)

        if 'forum' in related:
            for x in resp_dict:
                x['forum'] = get_details_forum({'forum': [x['forum'], ], 'is_closing': [False, ], 'cursor': [crs, ]})['response']

        if 'user' in related:
            for x in resp_dict:
                x['user'] = get_details_user({'user': [x['user'], ], 'is_closing': [False, ], 'cursor': [crs, ]})['response']

        final_resp = {'code': code, 'response': resp_dict}
    db.close()
    return final_resp