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)
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)
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')
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
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)
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')
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)
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)
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')
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')
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)
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)