from .tool.func import * def bbs_edit(bbs_num = '', do_type = ''): with get_db_connect() as conn: curs = conn.cursor() bbs_num_str = str(bbs_num) ip = ip_check() curs.execute(db_change('select set_id from bbs_set where set_id = ? and set_name = "bbs_name"'), [bbs_num_str]) if not curs.fetchall(): return redirect('/bbs/main') if acl_check(bbs_num_str, 'bbs_edit') == 1: return redirect('/bbs/set/' + bbs_num_str) if flask.request.method == 'POST' and do_type != 'preview': 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) curs.execute(db_change('select set_code from bbs_data where set_name = "title" and set_id = ? order by set_code + 0 desc'), [bbs_num_str]) db_data = curs.fetchall() id_data = str(int(db_data[0][0]) + 1) if db_data else '1' title = flask.request.form.get('title', '') data = flask.request.form.get('content', '') date = get_time() curs.execute(db_change("insert into bbs_data (set_name, set_code, set_id, set_data) values ('title', ?, ?, ?)"), [id_data, bbs_num_str, title]) curs.execute(db_change("insert into bbs_data (set_name, set_code, set_id, set_data) values ('data', ?, ?, ?)"), [id_data, bbs_num_str, data]) curs.execute(db_change("insert into bbs_data (set_name, set_code, set_id, set_data) values ('date', ?, ?, ?)"), [id_data, bbs_num_str, date]) curs.execute(db_change("insert into bbs_data (set_name, set_code, set_id, set_data) values ('user_id', ?, ?, ?)"), [id_data, bbs_num_str, ip]) return redirect('/bbs/w/' + bbs_num_str + '/' + id_data) else: if do_type == 'preview': data = flask.request.form.get('content', '') data = data.replace('\r', '') data_preview = render_set( doc_name = '', doc_data = data, data_in = 'from' ) else: data = '' data_preview = '' form_action = 'formaction="/bbs/edit/' + bbs_num_str + '"' form_action_preview = 'formaction="/bbs/edit/preview/' + bbs_num_str + '"' editor_top_text = '(' + load_lang('edit_filter_rule') + ')' monaco_on = get_main_skin_set(curs, flask.session, 'main_css_monaco', ip) if monaco_on == 'use': editor_display = 'style="display: none;"' monaco_display = '' add_get_file = ''' ''' editor_top_text += ' (' + load_lang('turn_off_monaco') + ')' if flask.request.cookies.get('main_css_darkmode', '0') == '1': monaco_thema = 'vs-dark' else: monaco_thema = '' add_script = 'do_monaco_init("' + monaco_thema + '");' else: editor_display = '' monaco_display = 'style="display: none;"' add_get_file = '' add_script = 'opennamu_edit_turn_off_monaco();' if editor_top_text != '': editor_top_text += '
' return easy_minify(flask.render_template(skin_check(), imp = [load_lang('bbs_edit'), wiki_set(), wiki_custom(), wiki_css([0, 0])], data = editor_top_text + add_get_file + '''
''' + edit_button('opennamu_edit_textarea', 'opennamu_monaco_editor') + '''


''' + captcha_get() + ip_warning() + '''

''' + data_preview + '''
''', menu = [['bbs/w/' + bbs_num_str, load_lang('return')]] ))