from .tool.func import * def main_upload_2(conn): curs = conn.cursor() if acl_check(None, 'upload') == 1: return re_error('/ban') if flask.request.method == 'POST': if captcha_post(flask.request.form.get('g-recaptcha-response', flask.request.form.get('g-recaptcha', ''))) == 1: return re_error('/error/13') else: captcha_post('', 0) file_data = flask.request.files.getlist("f_data[]", None) if not file_data: return re_error('/error/9') file_len = len(file_data) if int(wiki_set(3)) * 1024 * 1024 * file_len < flask.request.content_length: return re_error('/error/17') if file_len == 1: file_num = None else: if acl_check(None, 'many_upload') == 1: return re_error('/ban') file_num = 1 for data in file_data: value = os.path.splitext(data.filename)[1] curs.execute(db_change("select html from html_filter where kind = 'extension'")) extension = [i[0].lower() for i in curs.fetchall()] if not re.sub(r'^\.', '', value).lower() in extension: return re_error('/error/14') if flask.request.form.get('f_name', None): name = flask.request.form.get('f_name', None) + (' ' + str(file_num) if file_num else '') + value else: name = data.filename piece = os.path.splitext(name) if re.search(r'[^ㄱ-힣0-9a-zA-Z_\- ]', piece[0]): return re_error('/error/22') e_data = sha224_replace(piece[0]) + piece[1] curs.execute(db_change("select title from data where title = ?"), ['file:' + name]) if curs.fetchall(): return re_error('/error/16') curs.execute(db_change("select html from html_filter where kind = 'file'")) db_data = curs.fetchall() for i in db_data: t_re = re.compile(i[0]) if t_re.search(name): return redirect('/file_filter') data_url_image = load_image_url() if os.path.exists(os.path.join(data_url_image, e_data)): os.remove(os.path.join(data_url_image, e_data)) data.save(os.path.join(data_url_image, e_data)) else: data.save(os.path.join(data_url_image, e_data)) ip = ip_check() g_lice = flask.request.form.get('f_lice', '') file_size = os.stat(os.path.join(data_url_image, e_data)).st_size curs.execute(db_change("select data from other where name = 'markup'")) db_data = curs.fetchall() if db_data and db_data[0][0] == 'namumark': file_d = '' + \ '[[file:' + name + ']]\n' + \ '{{{[[file:' + name + ']]}}}\n\n' + \ flask.request.form.get('f_lice_sel', 'direct_input') + '\n' + \ (ip if ip_or_user(ip) != 0 else '[[user:' + ip + ']]') + '\n' + \ str(file_size) + ' Byte\n' + \ '[[category:' + re.sub(r'\]', '_', flask.request.form.get('f_lice_sel', '')) + ']]\n' + \ (g_lice if g_lice != '' else '') + \ '' else: file_d = '' + \ 'file:' + name + '\n' + \ '/image/' + e_data + '\n\n' + \ flask.request.form.get('f_lice_sel', 'direct_input') + '\n' + \ ip + \ str(file_size) + ' Byte\n\n' + \ (g_lice if g_lice != '' else '') + \ '' curs.execute(db_change("insert into data (title, data) values (?, ?)"), ['file:' + name, file_d]) curs.execute(db_change("insert into acl (title, data, type) values (?, 'admin', 'decu')"), ['file:' + name]) render_set( doc_name = 'file:' + name, doc_data = file_d, data_type = 'backlink' ) history_plus( 'file:' + name, file_d, get_time(), ip, '', '0', t_check = 'upload', mode = 'upload' ) if file_num: file_num += 1 conn.commit() return redirect('/w/file:' + name) else: license_list = '' file_name = flask.request.args.get('name', '') curs.execute(db_change("select html from html_filter where kind = 'image_license'")) db_data = curs.fetchall() license_list += ''.join(['' for i in db_data]) curs.execute(db_change("select data from other where name = 'upload_help'")) db_data = curs.fetchall() upload_help = ('