| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334 |
- from .tool.func import *
- async def main_setting_main():
- with get_db_connect() as conn:
- curs = conn.cursor()
- if await acl_check('', 'owner_auth', '', '') == 1:
- return await re_error(conn, 0)
-
- setting_list = {
- 0 : ['name', 'Wiki'],
- 2 : ['frontpage', 'FrontPage'],
- 4 : ['upload', '2'],
- 5 : ['skin', ''],
- 7 : ['reg', ''],
- 8 : ['ip_view', ''],
- 9 : ['back_up', ''],
- 10 : ['port', '3000'],
- 11 : ['key', load_random_key()],
- 12 : ['update', 'stable'],
- 15 : ['encode', 'sha3'],
- 16 : ['host', '0.0.0.0'],
- 19 : ['slow_edit', ''],
- 20 : ['requires_approval', ''],
- 21 : ['backup_where', ''],
- 22 : ['domain', ''],
- 23 : ['ua_get', ''],
- 24 : ['enable_comment', ''],
- 26 : ['edit_bottom_compulsion', ''],
- 27 : ['http_select', 'http'],
- 28 : ['title_max_length', ''],
- 29 : ['title_topic_max_length', ''],
- 30 : ['password_min_length', ''],
- 31 : ['wiki_access_password_need', ''],
- 32 : ['wiki_access_password', ''],
- 33 : ['history_recording_off', ''],
- 34 : ['namumark_compatible', ''],
- 35 : ['user_name_view', ''],
- 36 : ['link_case_insensitive', ''],
- 37 : ['move_with_redirect', ''],
- 38 : ['slow_thread', ''],
- 39 : ['edit_timeout', '5'],
- 40 : ['document_content_max_length', ''],
- 41 : ['backup_count', ''],
- 42 : ['ua_expiration_date', ''],
- 43 : ['auth_history_expiration_date', ''],
- 44 : ['auth_history_off', ''],
- 45 : ['user_name_level', ''],
- 46 : ['load_ip_select', ''],
- 47 : ['not_use_view_count', '']
- }
- if flask.request.method == 'POST':
- for i in setting_list:
- curs.execute(db_change("update other set data = ? where name = ?"), [
- flask.request.form.get(setting_list[i][0], setting_list[i][1]),
- setting_list[i][0]
- ])
- await acl_check(tool = 'owner_auth', memo = 'edit_set (main)')
- return redirect(conn, '/setting/main')
- else:
- d_list = {}
- for i in setting_list:
- curs.execute(db_change('select data from other where name = ?'), [setting_list[i][0]])
- db_data = curs.fetchall()
- if not db_data:
- curs.execute(db_change('insert into other (name, data, coverage) values (?, ?, "")'), [setting_list[i][0], setting_list[i][1]])
- d_list[i] = db_data[0][0] if db_data else setting_list[i][1]
- init_set_list = get_init_set_list()
-
- # 언어도 변경 가능하도록 필요
-
- encode_select = ''
- encode_select_data = init_set_list['encode']['list'] + ['sha256']
- for encode_select_one in encode_select_data:
- if encode_select_one == d_list[15]:
- encode_select = '<option value="' + encode_select_one + '">' + encode_select_one + '</option>' + encode_select
- else:
- encode_select += '<option value="' + encode_select_one + '">' + encode_select_one + '</option>'
-
- tls_select = ''
- tls_select_data = ['http', 'https']
- for tls_select_one in tls_select_data:
- if tls_select_one == d_list[27]:
- tls_select = '<option value="' + tls_select_one + '">' + tls_select_one + '</option>' + tls_select
- else:
- tls_select += '<option value="' + tls_select_one + '">' + tls_select_one + '</option>'
- check_box_div = [7, 8, '', 20, 23, 24, '', 26, 31, 33, 34, 35, 36, 37, 44, 45, 47]
- for i in range(0, len(check_box_div)):
- acl_num = check_box_div[i]
- if acl_num != '' and d_list[acl_num]:
- check_box_div[i] = 'checked="checked"'
- else:
- check_box_div[i] = ''
- branch_div = ''
- branch_list = ['stable', 'beta']
- for i in branch_list:
- if d_list[12] == i:
- branch_div = '<option value="' + i + '">' + i + '</option>' + branch_div
- else:
- branch_div += '<option value="' + i + '">' + i + '</option>'
- set_data = global_some_set_do('db_type')
-
- sqlite_only = ''
- if set_data != 'sqlite':
- sqlite_only = 'style="display:none;"'
- ip_load_select_data = ''
- ip_load_option = ['default', 'HTTP_X_REAL_IP', 'HTTP_CF_CONNECTING_IP', 'REMOTE_ADDR']
- for for_a in ip_load_option:
- view_ip_option = for_a
- if for_a == 'default':
- view_ip_option = await get_lang('default')
- if d_list[46] == for_a:
- ip_load_select_data = '<option value="' + for_a + '">' + view_ip_option + '</option>' + ip_load_select_data
- else:
- ip_load_select_data += '<option value="' + for_a + '">' + view_ip_option + '</option>'
- basic_set = '''
- <h2>''' + await get_lang('basic_set') + '''</h2>
-
- <span>''' + await get_lang('wiki_name') + '''</span>
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="name" value="''' + html.escape(d_list[0]) + '''">
- <hr class="main_hr">
- <span><a href="/setting/main/logo">(''' + await get_lang('wiki_logo') + ''')</a></span>
- <hr class="main_hr">
- <span>''' + await get_lang('main_page') + '''</span>
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="frontpage" value="''' + html.escape(d_list[2]) + '''">
- <hr class="main_hr">
- <span>''' + await get_lang('tls_method') + '''</span>
- <hr class="main_hr">
- <span class="__ON_SELECT_DIV__"><select class="__ON_SELECT__" name="http_select">''' + tls_select + '''</select></span>
- <hr class="main_hr">
- <span>''' + await get_lang('domain') + '''</span> (EX : 2du.pythonanywhere.com) (''' + await get_lang('off') + ''' : ''' + await get_lang('empty') + ''')
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="domain" value="''' + html.escape(d_list[22]) + '''">
- <hr class="main_hr">
- <span>''' + await get_lang('wiki_host') + '''</span>
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="host" value="''' + html.escape(d_list[16]) + '''">
- <hr class="main_hr">
- <span>''' + await get_lang('wiki_port') + '''</span>
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="port" value="''' + html.escape(d_list[10]) + '''">
- <hr class="main_hr">
- <span>''' + await get_lang('wiki_secret_key') + '''</span>
- <hr class="main_hr">
- <input class="__ON_INPUT__" type="password" name="key" value="''' + html.escape(d_list[11]) + '''">
- <hr class="main_hr">
-
- <label><input class="__ON_CHECKBOX__" type="checkbox" name="wiki_access_password_need" ''' + check_box_div[8] + '''> ''' + await get_lang('set_wiki_access_password_need') + ''' (''' + await get_lang('restart_required') + ''')</label>
- <hr class="main_hr">
-
- <span>''' + await get_lang('set_wiki_access_password') + '''</span> (''' + await get_lang('restart_required') + ''')
- <hr class="main_hr">
- <input class="__ON_INPUT__" type="password" name="wiki_access_password" value="''' + html.escape(d_list[32]) + '''">
- <hr class="main_hr">
- <span>''' + await get_lang('wiki_load_ip_select') + '''</span> (''' + await get_lang('restart_required') + ''')
- <hr class="main_hr">
- <span class="__ON_SELECT_DIV__"><select class="__ON_SELECT__" name="load_ip_select">''' + ip_load_select_data + '''</select></span>
-
- <h3>''' + await get_lang('authority_use_list') + '''</h3>
-
- <label><input class="__ON_CHECKBOX__" type="checkbox" name="auth_history_off" ''' + check_box_div[14] + '''> ''' + await get_lang('authority_use_list_off') + '''</label>
- <hr class="main_hr">
-
- <span>''' + await get_lang('authority_use_list_expiration_date') + '''</span> (''' + await get_lang('day') + ''') (''' + await get_lang('off') + ''' : ''' + await get_lang('empty') + ''')
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="auth_history_expiration_date" value="''' + html.escape(d_list[43]) + '''">
- <hr class="main_hr">
- <h3>''' + await get_lang('communication_set') + '''</h3>
-
- <label><input class="__ON_CHECKBOX__" type="checkbox" name="enable_comment" ''' + check_box_div[5] + '''> ''' + await get_lang('enable_comment_function') + '''</label>
- <hr class="main_hr">
- <label><input class="__ON_CHECKBOX__" type="checkbox" name="user_name_level" ''' + check_box_div[15] + '''> ''' + await get_lang('display_level_in_user_name') + '''</label>
- <hr class="main_hr">
- <label><input class="__ON_CHECKBOX__" type="checkbox" name="not_use_view_count" ''' + check_box_div[16] + '''> ''' + await get_lang('not_use_view_count') + '''</label>
- <hr class="main_hr">
- '''
- return await render_template(
- await get_lang('main_setting'),
- await render_simple_set('''
- <form method="post">
- ''' + basic_set + '''
- <h2>''' + await get_lang('design_set') + '''</h2>
-
- <span>''' + await get_lang('wiki_skin') + '''</span>
- <hr class="main_hr">
- <span class="__ON_SELECT_DIV__"><select class="__ON_SELECT__" name="skin">''' + await load_skin(d_list[5] if d_list[5] != '' else 'ringo') + '''</select></span>
- <h2>''' + await get_lang('render_set') + '''</h2>
-
- <label><input class="__ON_CHECKBOX__" type="checkbox" name="namumark_compatible" ''' + check_box_div[10] + '''> ''' + await get_lang('namumark_fully_compatible_mode') + '''</label>
- <hr class="main_hr">
-
- <label><input class="__ON_CHECKBOX__" type="checkbox" name="link_case_insensitive" ''' + check_box_div[12] + '''> ''' + await get_lang('link_case_insensitive') + '''</label>
- <hr class="main_hr">
- <h2>''' + await get_lang('login_set') + '''</h2>
-
- <label><input class="__ON_CHECKBOX__" type="checkbox" name="reg" ''' + check_box_div[0] + '''> ''' + await get_lang('no_register') + '''</label>
- <hr class="main_hr">
- <label><input class="__ON_CHECKBOX__" type="checkbox" name="ip_view" ''' + check_box_div[1] + '''> ''' + await get_lang('hide_ip') + '''</label>
- <hr class="main_hr">
- <label><input class="__ON_CHECKBOX__" type="checkbox" name="user_name_view" ''' + check_box_div[11] + '''> ''' + await get_lang('hide_user_name') + '''</label>
- <hr class="main_hr">
- <label><input class="__ON_CHECKBOX__" type="checkbox" name="requires_approval" ''' + check_box_div[3] + '''> ''' + await get_lang('requires_approval') + '''</label>
- <hr class="main_hr">
- <span>''' + await get_lang('password_min_length') + '''</span> (''' + await get_lang('off') + ''' : ''' + await get_lang('empty') + ''')
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="password_min_length" value="''' + html.escape(d_list[30]) + '''">
- <hr class="main_hr">
- <span>''' + await get_lang('encryption_method') + '''</span>
- <hr class="main_hr">
- <span class="__ON_SELECT_DIV__"><select class="__ON_SELECT__" name="encode">''' + encode_select + '''</select></span>
- <h3>''' + await get_lang('ua') + '''</h3>
-
- <label><input class="__ON_CHECKBOX__" type="checkbox" name="ua_get" ''' + check_box_div[4] + '''> ''' + await get_lang('ua_get_off') + '''</label>
- <hr class="main_hr">
-
- <span>''' + await get_lang('ua_expiration_date') + '''</span> (''' + await get_lang('day') + ''') (''' + await get_lang('off') + ''' : ''' + await get_lang('empty') + ''')
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="ua_expiration_date" value="''' + html.escape(d_list[42]) + '''">
- <hr class="main_hr">
-
- <h2>''' + await get_lang('server_set') + '''</h2>
- <span>''' + await get_lang('update_branch') + '''</span>
- <hr class="main_hr">
- <span class="__ON_SELECT_DIV__"><select class="__ON_SELECT__" name="update">''' + branch_div + '''</select></span>
- <span ''' + sqlite_only + '''>
- <h3>''' + await get_lang('backup') + ''' (''' + await get_lang('sqlite_only') + ''')</h3>
-
- <span>''' + await get_lang('backup_warning') + ''' (EX : data_YYYYMMDDHHMMSS.db)</span>
- <hr class="main_hr">
- <hr class="main_hr">
-
- <span>''' + await get_lang('backup_interval') + '''</span> (''' + await get_lang('hour') + ''') (''' + await get_lang('off') + ''' : ''' + await get_lang('empty') + ''')
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="back_up" value="''' + html.escape(d_list[9]) + '''">
- <hr class="main_hr">
-
- <span>''' + await get_lang('backup_where') + '''</span> (''' + await get_lang('default') + ''' : ''' + await get_lang('empty') + ''') (''' + await get_lang('example') + ''' : ./data/backup.db)
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="backup_where" value="''' + html.escape(d_list[21]) + '''">
- <hr class="main_hr">
- <span>''' + await get_lang('backup_count') + '''</span> (''' + await get_lang('default') + ''' : ''' + await get_lang('empty') + ''')
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="backup_count" value="''' + html.escape(d_list[41]) + '''">
- <hr class="main_hr">
- </span>
- <h2>''' + await get_lang('edit_set') + '''</h2>
-
- <span>''' + await get_lang('slow_edit') + '''</span> (''' + await get_lang('second') + ''') (''' + await get_lang('off') + ''' : ''' + await get_lang('empty') + ''')
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="slow_edit" value="''' + html.escape(d_list[19]) + '''">
- <hr class="main_hr">
-
- <label><input class="__ON_CHECKBOX__" type="checkbox" name="edit_bottom_compulsion" ''' + check_box_div[7] + '''> ''' + await get_lang('edit_bottom_compulsion') + '''</label>
- <hr class="main_hr">
-
- <span>''' + await get_lang('title_max_length') + '''</span> (''' + await get_lang('off') + ''' : ''' + await get_lang('empty') + ''')
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="title_max_length" value="''' + html.escape(d_list[28]) + '''">
- <hr class="main_hr">
-
- <span>''' + await get_lang('title_topic_max_length') + '''</span> (''' + await get_lang('off') + ''' : ''' + await get_lang('empty') + ''')
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="title_topic_max_length" value="''' + html.escape(d_list[29]) + '''">
- <hr class="main_hr">
-
- <span>''' + await get_lang('max_file_size') + ''' (MB)</span>
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="upload" value="''' + html.escape(d_list[4]) + '''">
- <hr class="main_hr">
-
- <label><input class="__ON_CHECKBOX__" type="checkbox" name="history_recording_off" ''' + check_box_div[9] + '''> ''' + await get_lang('set_history_recording_off') + '''</label>
- <hr class="main_hr">
- <label><input class="__ON_CHECKBOX__" type="checkbox" name="move_with_redirect" ''' + check_box_div[13] + '''> ''' + await get_lang('move_with_redirect') + ''' (''' + await get_lang('not_working') + ''')</label>
- <hr class="main_hr">
- <span>''' + await get_lang('slow_thread') + '''</span> (''' + await get_lang('second') + ''') (''' + await get_lang('off') + ''' : ''' + await get_lang('empty') + ''')
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="slow_thread" value="''' + html.escape(d_list[38]) + '''">
- <hr class="main_hr">
- <span>''' + await get_lang('edit_timeout') + '''</span> (''' + await get_lang('second') + ''') (''' + await get_lang('off') + ''' : ''' + await get_lang('empty') + ''') (''' + await get_lang('linux_only') + ''')
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="edit_timeout" value="''' + html.escape(d_list[39]) + '''">
- <hr class="main_hr">
- <span>''' + await get_lang('document_content_max_length') + '''</span> (''' + await get_lang('off') + ''' : ''' + await get_lang('empty') + ''')
- <hr class="main_hr">
- <input class="__ON_INPUT__" name="document_content_max_length" value="''' + html.escape(d_list[40]) + '''">
- <hr class="main_hr">
- <button class="__ON_BUTTON__" id="opennamu_save_button" type="submit">''' + await get_lang('save') + '''</button>
- </form>
- '''),
- 0,
- [['setting', await get_lang('return')]]
- )
|