Exemple #1
0
def my_call_user_func(method_name, params, request):
    try:
        module_name = allowed_api_functions[method_name]
        module = globals()[module_name]
        method_to_call = getattr(module, method_name)
        result = method_to_call(params, request)
        return False, json_dumps(result)
    except Exception as e:
        r = {'result': False, 'error_msg': str(e)}
        return True, json_dumps(r)
Exemple #2
0
def get_files_for_edu_main(request, subject=None, type_id=None):
    context = get_default_context(request)
    db = mydb.MyDB()

    #  Заполняем шаблон правильным случаем, в зависимости от переданных параметров

    bread_crumbs = [{'text': consts.NAV_CAPTION, 'link': '/'}]
    context['RIGHT_MENU'] = False

    if not subject:
        bread_crumbs.append({'text': 'Файлы для учёбы', 'last': True})
        context['BREAD_CRUMBS'] = json_dumps(bread_crumbs)
        context['SUBJECT_ID'] = 'null'
        context['TYPE_ID'] = 'null'
    elif not type_id:
        subject_name = db.SqlQueryScalar(db.sql('edu_files_subject_get_by_id'),
                                         {'id': int(subject)})
        bread_crumbs.append({
            'text': 'Файлы для учёбы',
            'link': '/files_for_edu/'
        })
        bread_crumbs.append({'text': subject_name, 'last': True})
        context['BREAD_CRUMBS'] = json_dumps(bread_crumbs)
        context['SUBJECT_ID'] = int(subject)
        context['TYPE_ID'] = 'null'
        context['RIGHT_MENU'] = True
    else:
        names = db.SqlQuery(db.sql('edu_files_subject_type_get'), {
            'sid': int(subject),
            'tid': int(type_id)
        })

        bread_crumbs.append({
            'text': 'Файлы для учёбы',
            'link': '/files_for_edu/'
        })
        bread_crumbs.append({
            'text': names[0]['subject'],
            'link': '/files_for_edu/{}'.format(int(subject))
        })
        bread_crumbs.append({'text': names[0]['type'], 'last': True})

        context['BREAD_CRUMBS'] = json_dumps(bread_crumbs)
        context['SUBJECT_ID'] = int(subject)
        context['TYPE_ID'] = int(type_id)

    context['ENABLE_ADD_FILE'] = consts.ENABLE_ADD_FILE
    return render(request, 'app/files_for_edu/main.html', context)
Exemple #3
0
def convert(request):
    tables = [
        # "board_theme",
        # "cache",
        # "chairs",
        # "chat_messages",
        # "comments_mod",
        # "cookie_id",
        # "files",
        # "files_subjects",
        # "files_types",
        # "foto",
        # "foto_statistics",
        ################ "id",
        # "images",
        # "images_folders",
        # "meet",
        # "meet_fotos",
        "members",
        # "message"
        # "struct_message",
        # "teachers",
        # "users",
        # "vote"
    ]

    for t in tables:
        convert_table(t)
    res = json_dumps({'bom': 'bom'})
    return HttpResponse(res, content_type='application/json')
Exemple #4
0
def cache_check(method_name, params):
    db = mydb.MyDB()
    sql = db.sql('cache_check').format(CACHE_INTERVAL=consts.CACHE_INTERVAL)
    rs = db.SqlQuery(sql, {
        'method': method_name,
        'params': json_dumps(params)
    })
    if rs:
        return True, rs[0]['value']
    return False, None
Exemple #5
0
def cache_add(method_name, params, result):
    """
        Добавление/обновления параметров вызова и результата в кэш
    """

    db = mydb.MyDB()
    db.SqlQuery(db.sql('cache_add'), {
        'value': result,
        'method': method_name,
        'params': json_dumps(params)
    }, True)
Exemple #6
0
def highload_import(request):
    sql = '''
        SELECT
            ID,
            UNIX_TIMESTAMP(post_date) utime,
            post_title,
            post_content
        FROM wp_posts
        WHERE post_status = 'publish'
        ORDER BY id
    '''

    sql_tmpl = '''
        INSERT
        INTO message (id, id_parent, title, time, text, author, category, allow, attach, ip)
        VALUES (@id@, @id_parent@, @title@, @time@, @text@, @author@, @category@, @allow@, @attach@, @ip@)
    '''

    sql_tmpl2 = '''
        insert into blog(id, message_id) values (@id@, @message_id@)
    '''

    db2 = mydb.MyDB('default2')
    rs = db2.SqlQuery(sql, {})

    db = mydb.MyDB()
    for r in rs:
        _id = get_id()

        db.SqlQuery(sql_tmpl2, {
            'id': r['ID'],
            'message_id': _id
        }, True)

        db.SqlQuery(sql_tmpl, {
            'id': _id,
            'id_parent': 0,
            'title': r['post_title'],
            'time': r['utime'],
            'text': r['post_content'],
            'author': 'my_fess',
            'category': None,
            'allow': 'yes',
            'attach': 'no',
            'ip': None
        }, True)


    res = json_dumps({'bom': 'bom'})
    return HttpResponse(res, content_type='application/json')
Exemple #7
0
def get_board_theme(request):
    context = get_default_context(request)
    context['PAGE_TITLE'] = 'Форум - '

    bread_crumbs = [{
        'text': consts.NAV_CAPTION,
        'link': '/'
    }, {
        'text': 'Форум',
        'link': '/board/',
        'last': True
    }]
    context['BREAD_CRUMBS'] = json_dumps(bread_crumbs)

    return render(request, 'app/board/main.html', context)
Exemple #8
0
def get_board_theme_comments(request, theme_id, page=1):
    context = get_default_context(request)
    db = mydb.MyDB()
    title = db.SqlQueryScalar(db.sql('board_theme_title'), {'id': theme_id})

    bread_crumbs = [{'text': consts.NAV_CAPTION, 'link': '/'}]
    bread_crumbs.append({'text': 'Форум', 'link': '/board/'})
    bread_crumbs.append({'text': title, 'last': True})
    context['BREAD_CRUMBS'] = json_dumps(bread_crumbs)
    context['THEME_ID'] = theme_id
    context['THEME_TITLE'] = title
    context['ADDITIONAL_PARAMS'] = '''
        'comments_page': {},
    '''.format(page)

    return render(request, 'app/board/theme.html', context)
Exemple #9
0
def board_import_users(request):
    rid = -100

    sql = '''
        SELECT
            id, name, password, email, avatar
        FROM ipbmembers
        WHERE id > @id@
        ORDER BY id
        LIMIT 1000
    '''

    sql_tmpl = '''
        INSERT
        INTO members (id, name, password, email, avatar)
        VALUES (@id@, @name@, @password@, @email@, @avatar@)
    '''

    db = mydb.MyDB()

    while True:
        #connections['default4'].close()
        db2 = mydb.MyDB('default4')
        rs = db2.SqlQuery(sql, {'id': rid})

        if not rs:
            return

        rid = rs[-1]['id']

        for r in rs:
            db.SqlQuery(sql_tmpl, {
                'id': r['id'],
                'name': r['name'],
                'password': r['password'],
                'email': r['email'],
                'avatar': (None if r['avatar'] == 'noavatar' else r['avatar'])
            }, True)

    res = json_dumps({'bom': 'bom'})
    return HttpResponse(res, content_type='application/json')
Exemple #10
0
def sbis_api_navigation(request):
    data = json.loads(request.body.decode('utf-8'))
    params = data['params']
    method = data['method']

    res = {}
    if method == 'board.theme_list':
        res = board.board_theme_list()
    elif method == 'edu_files.list':
        res = edu_files.edu_files_list(params)
    elif method == 'edu_files.sub_list':
        res = edu_files.edu_files_sub_list(params)
    elif method == 'edu_files.types_list':
        res = edu_files.edu_files_types_list()
    else:
        # res = {
        #     'result': False,
        #     'error_msg': 'Метод "{}" не найден'.format(method)
        # }
        raise Exception('Метод "{}" не найден'.format(method))

    res = json_dumps(res)
    return HttpResponse(res, content_type='application/json')
Exemple #11
0
def get_files_for_edu_add_file(request):
    context = get_default_context(request)
    db = mydb.MyDB()
    user = auth.MyUser(request)

    bread_crumbs = [{
        'text': consts.NAV_CAPTION,
        'link': '/'
    }, {
        'text': 'Файлы для учёбы',
        'link': '/files_for_edu/'
    }, {
        'text': 'Добавить свой файл',
        'last': True
    }]
    context['BREAD_CRUMBS'] = json_dumps(bread_crumbs)

    description = request.POST.get('ft_description', '')
    type_id2 = int(request.POST.get('fd_type', -1))
    type2 = request.POST.get('ft_type', '')
    subject = int(request.POST.get('fd_subject', -1))
    subject2 = request.POST.get('ft_subject', '')
    author = request.POST.get('ft_author', '')
    submit_upload = request.POST.get('submit_upload', None)

    settings = {}

    if not submit_upload:
        context['FILE_SETTINGS'] = json_dumps(settings)
        return render(request, 'app/files_for_edu/add_file.html', context)

    # upload_tmp_name = isset($_FILES["upload"]["tmp_name"]) ? $_FILES["upload"]["tmp_name"] : "";
    # upload_name = isset($_FILES["upload"]["name"]) ? $_FILES["upload"]["name"] : "";
    # upload_size = isset($_FILES["upload"]["size"]) ? (int)$_FILES["upload"]["size"] : 0;

    _file = request.FILES['upload']  # this is my file
    upload_tmp_name = ''
    upload_name = 'test.zip'
    upload_size = 100

    upload_result = {
        'was_add': False,
        'was_upload': False,
        'was_bad_ext': False,
        'was_add_mod': False,
        'no_subject': False,
        'no_type': False,
    }

    inserted = False

    if is_uploaded_file(upload_tmp_name):
        upload_result['was_upload'] = True
        ext = get_ext(['.zip', '.rar'], upload_name)
        if ext == -1:
            upload_result['was_bad_ext'] = True
        else:
            subject_id = get_subject(subject, subject2)
            type_id = get_type(type_id2, type2)

            if subject_id is None:
                upload_result['no_subject'] = True
            if type_id is None:
                upload_result['no_type'] = True

            if not upload_result['no_subject'] and not upload_result['no_type']:
                ext = ext.lower()
                ID = get_id()
                path = consts.DOCS_PATH + ID + ext

                if copy(upload_tmp_name, path):
                    ps = {
                        'id': ID,
                        'ext': ext,
                        'subject_id': subject_id,
                        'description': description,
                        'type_id': type_id,
                        'size': upload_size,
                        'author': author,
                        'uploader': user.username,
                        'allow': 'yes' if user.is_editor() else 'no',
                        'time': int(time.time())
                    }

                    db.SqlQuery(db.sql('edu_files_insert'), ps, True)
                    inserted = True
                    upload_result['was_add'] = user.is_editor()
                    upload_result['was_add_mod'] = not user.is_editor()

    if submit_upload:
        settings['upload_result'] = upload_result

        if not inserted:
            settings['description'] = description
            settings['author'] = author
            settings['subject_text'] = subject2
            settings['type_text'] = type2
            settings['subject_id'] = int(subject)
            settings['type_id'] = int(type_id2)

    context['FILE_SETTINGS'] = json_dumps(settings)
    return render(request, 'app/files_for_edu/add_file.html', context)
Exemple #12
0
def call_method(method_name, params, request):
    if method_name in allowed_api_functions:
        return get_cache(method_name, params, request)
    r = {'result': False, 'error_msg': 'Вызываемый метод не входит в API'}
    return json_dumps(r)