user_setting_skin_set_main.py 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. from .tool.func import *
  2. def user_setting_skin_set_main_set_list():
  3. set_list = {
  4. 'main_css_strike' : [
  5. ['default', load_lang('default')],
  6. ['normal', load_lang('off')],
  7. ['change', load_lang('change_to_normal')],
  8. ['delete', load_lang('delete')]
  9. ], 'main_css_bold' : [
  10. ['default', load_lang('default')],
  11. ['normal', load_lang('off')],
  12. ['change', load_lang('change_to_normal')],
  13. ['delete', load_lang('delete')]
  14. ], 'main_css_include_link' : [
  15. ['default', load_lang('default')],
  16. ['normal', load_lang('off')],
  17. ['use', load_lang('use')]
  18. ], 'main_css_image_paste' : [
  19. ['default', load_lang('default')],
  20. ['normal', load_lang('off')],
  21. ['use', load_lang('use')]
  22. ], 'main_css_category_set' : [
  23. ['default', load_lang('default')],
  24. ['bottom', load_lang('bottom')],
  25. ['top', load_lang('top')]
  26. ], 'main_css_footnote_set' : [
  27. ['default', load_lang('default')],
  28. ['normal', load_lang('normal')],
  29. ['spread', load_lang('spread')],
  30. ['popup', load_lang('popup') + ' (' + load_lang('not_working') + ')'],
  31. ['popover', load_lang('popover')]
  32. ], 'main_css_image_set' : [
  33. ['default', load_lang('default')],
  34. ['normal', load_lang('normal')],
  35. ['click', load_lang('change_to_link')],
  36. ['new_click', load_lang('click_load')]
  37. ], 'main_css_toc_set' : [
  38. ['default', load_lang('default')],
  39. ['normal', load_lang('normal')],
  40. ['off', load_lang('all_off')],
  41. ['half_off', load_lang('in_content')]
  42. ], 'main_css_monaco' : [
  43. ['default', load_lang('default')],
  44. ['normal', load_lang('off')],
  45. ['use', load_lang('use')]
  46. ], 'main_css_exter_link' : [
  47. ['default', load_lang('default')],
  48. ['blank', load_lang('normal')],
  49. ['self', load_lang('self_tab')]
  50. ], 'main_css_link_delimiter' : [
  51. ['default', load_lang('default')],
  52. ['normal', load_lang('off')],
  53. ['use', load_lang('use')]
  54. ], 'main_css_darkmode' : [
  55. ['default', load_lang('default')],
  56. ['0', load_lang('off')],
  57. ['1', load_lang('use')]
  58. ], 'main_css_footnote_number' : [
  59. ['default', load_lang('default')],
  60. ['all', load_lang('all')],
  61. ['only_number', load_lang('only_number')]
  62. ], 'main_css_view_real_footnote_num' : [
  63. ['default', load_lang('default')],
  64. ['off', load_lang('off')],
  65. ['on', load_lang('use')]
  66. ], 'main_css_table_scroll' : [
  67. ['default', load_lang('default')],
  68. ['off', load_lang('off')],
  69. ['on', load_lang('use')]
  70. ], 'main_css_category_change_title' : [
  71. ['default', load_lang('default')],
  72. ['off', load_lang('off')],
  73. ['on', load_lang('use')]
  74. ], 'main_css_list_view_change' : [
  75. ['default', load_lang('default')],
  76. ['off', load_lang('off')],
  77. ['on', load_lang('use')]
  78. ], 'main_css_view_joke' : [
  79. ['default', load_lang('default')],
  80. ['on', load_lang('use')],
  81. ['off', load_lang('off')]
  82. ], 'main_css_math_scroll' : [
  83. ['default', load_lang('default')],
  84. ['off', load_lang('off')],
  85. ['on', load_lang('use')]
  86. ], 'main_css_view_history' : [
  87. ['default', load_lang('default')],
  88. ['off', load_lang('off')],
  89. ['on', load_lang('use')]
  90. ], 'main_css_table_transparent' : [
  91. ['default', load_lang('default')],
  92. ['off', load_lang('off')],
  93. ['on', load_lang('use')]
  94. ]
  95. }
  96. return set_list
  97. def user_setting_skin_set_main():
  98. with get_db_connect() as conn:
  99. curs = conn.cursor()
  100. ip = ip_check()
  101. if ban_check(ip) == 1:
  102. return re_error('/ban')
  103. set_list = user_setting_skin_set_main_set_list()
  104. use_cookie = ['main_css_image_paste', 'main_css_darkmode']
  105. if flask.request.method == 'POST':
  106. html_data = flask.make_response(redirect('/change/skin_set/main'))
  107. for for_b in set_list:
  108. if for_b in use_cookie:
  109. html_data.set_cookie(for_b, flask.request.form.get(for_b, set_list[for_b][0][0]))
  110. elif ip_or_user(ip) == 0:
  111. curs.execute(db_change('select data from user_set where name = ? and id = ?'), [for_b, ip])
  112. if curs.fetchall():
  113. curs.execute(db_change("update user_set set data = ? where name = ? and id = ?"), [
  114. flask.request.form.get(for_b, set_list[for_b][0][0]),
  115. for_b,
  116. ip
  117. ])
  118. else:
  119. curs.execute(db_change('insert into user_set (name, id, data) values (?, ?, ?)'), [
  120. for_b,
  121. ip,
  122. flask.request.form.get(for_b, set_list[for_b][0][0])
  123. ])
  124. else:
  125. flask.session[for_b] = flask.request.form.get(for_b, set_list[for_b][0][0])
  126. conn.commit()
  127. return html_data
  128. else:
  129. set_data = {}
  130. for for_b in set_list:
  131. set_data[for_b] = ''
  132. if for_b in use_cookie:
  133. get_data = flask.request.cookies.get(for_b, '')
  134. elif ip_or_user(ip) == 0:
  135. curs.execute(db_change('select data from user_set where name = ? and id = ?'), [for_b, ip])
  136. db_data = curs.fetchall()
  137. get_data = db_data[0][0] if db_data else ''
  138. else:
  139. get_data = flask.session[for_b] if for_b in flask.session else ''
  140. for for_a in set_list[for_b]:
  141. if get_data == for_a[0]:
  142. set_data[for_b] = '<option value="' + for_a[0] + '">' + for_a[1] + '</option>' + set_data[for_b]
  143. else:
  144. set_data[for_b] += '<option value="' + for_a[0] + '">' + for_a[1] + '</option>'
  145. set_data_main = {}
  146. for for_b in set_list:
  147. curs.execute(db_change('select data from other where name = ?'), [for_b])
  148. db_data = curs.fetchall()
  149. server_default = db_data[0][0] if db_data else 'default'
  150. set_data_main[for_b] = load_lang('default') + ' : ' + ''.join([for_a[1] for for_a in set_list[for_b] if for_a[0] == server_default]) + '<hr class="main_hr">'
  151. return easy_minify(flask.render_template(skin_check(),
  152. imp = [load_lang('main_skin_set'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
  153. data = render_simple_set('''
  154. <form method="post">
  155. <h2>''' + load_lang("render") + '''</h2>
  156. <h3>''' + load_lang("strike") + '''</h3>
  157. ''' + set_data_main["main_css_strike"] + '''
  158. <select name="main_css_strike">
  159. ''' + set_data["main_css_strike"] + '''
  160. </select>
  161. <h3>''' + load_lang("bold") + '''</h3>
  162. ''' + set_data_main["main_css_bold"] + '''
  163. <select name="main_css_bold">
  164. ''' + set_data["main_css_bold"] + '''
  165. </select>
  166. <h3>''' + load_lang("category") + '''</h3>
  167. <h4>''' + load_lang("position") + '''</h4>
  168. ''' + set_data_main["main_css_category_set"] + '''
  169. <select name="main_css_category_set">
  170. ''' + set_data["main_css_category_set"] + '''
  171. </select>
  172. <h4>''' + load_lang("category_change_title") + '''</h4>
  173. ''' + set_data_main["main_css_category_change_title"] + '''
  174. <select name="main_css_category_change_title">
  175. ''' + set_data["main_css_category_change_title"] + '''
  176. </select>
  177. <h3>''' + load_lang("footnote") + ''' (''' + load_lang('beta') + ''')</h3>
  178. <h4>''' + load_lang("footnote_render") + '''</h4>
  179. ''' + set_data_main["main_css_footnote_set"] + '''
  180. <select name="main_css_footnote_set">
  181. ''' + set_data["main_css_footnote_set"] + '''
  182. </select>
  183. <h4>''' + load_lang("footnote_number") + '''</h4>
  184. ''' + set_data_main["main_css_footnote_number"] + '''
  185. <select name="main_css_footnote_number">
  186. ''' + set_data["main_css_footnote_number"] + '''
  187. </select>
  188. <h4>''' + load_lang("footnote_real_num_view") + '''</h4>
  189. ''' + set_data_main["main_css_view_real_footnote_num"] + '''
  190. <select name="main_css_view_real_footnote_num">
  191. ''' + set_data["main_css_view_real_footnote_num"] + '''
  192. </select>
  193. <h3>''' + load_lang("include_link") + '''</h3>
  194. ''' + set_data_main["main_css_include_link"] + '''
  195. <select name="main_css_include_link">
  196. ''' + set_data["main_css_include_link"] + '''
  197. </select>
  198. <h3>''' + load_lang("image") + ''' (''' + load_lang('beta') + ''')</h3>
  199. ''' + set_data_main["main_css_image_set"] + '''
  200. <select name="main_css_image_set">
  201. ''' + set_data["main_css_image_set"] + '''
  202. </select>
  203. <h3>''' + load_lang("toc") + '''</h3>
  204. ''' + set_data_main["main_css_toc_set"] + '''
  205. <select name="main_css_toc_set">
  206. ''' + set_data["main_css_toc_set"] + '''
  207. </select>
  208. <h3>''' + load_lang("exter_link") + '''</h3>
  209. ''' + set_data_main["main_css_exter_link"] + '''
  210. <select name="main_css_exter_link">
  211. ''' + set_data["main_css_exter_link"] + '''
  212. </select>
  213. <h3>''' + load_lang("link_delimiter") + '''</h3>
  214. ''' + set_data_main["main_css_link_delimiter"] + '''
  215. <select name="main_css_link_delimiter">
  216. ''' + set_data["main_css_link_delimiter"] + '''
  217. </select>
  218. <h3>''' + load_lang("force_darkmode") + '''</h3>
  219. ''' + set_data_main["main_css_darkmode"] + '''
  220. <select name="main_css_darkmode">
  221. ''' + set_data["main_css_darkmode"] + '''
  222. </select>
  223. <h3>''' + load_lang("table") + '''</h3>
  224. <h4>''' + load_lang("table_scroll") + '''</h4>
  225. ''' + set_data_main["main_css_table_scroll"] + '''
  226. <select name="main_css_table_scroll">
  227. ''' + set_data["main_css_table_scroll"] + '''
  228. </select>
  229. <h4>''' + load_lang("table_transparent") + '''</h4>
  230. ''' + set_data_main["main_css_table_transparent"] + '''
  231. <select name="main_css_table_transparent">
  232. ''' + set_data["main_css_table_transparent"] + '''
  233. </select>
  234. <h3>''' + load_lang("list_view_change") + '''</h3>
  235. ''' + set_data_main["main_css_list_view_change"] + '''
  236. <select name="main_css_list_view_change">
  237. ''' + set_data["main_css_list_view_change"] + '''
  238. </select>
  239. <h3>''' + load_lang("view_joke") + '''</h3>
  240. ''' + set_data_main["main_css_view_joke"] + '''
  241. <select name="main_css_view_joke">
  242. ''' + set_data["main_css_view_joke"] + '''
  243. </select>
  244. <h3>''' + load_lang("math_scroll") + '''</h3>
  245. ''' + set_data_main["main_css_math_scroll"] + '''
  246. <select name="main_css_math_scroll">
  247. ''' + set_data["main_css_math_scroll"] + '''
  248. </select>
  249. <h3>''' + load_lang("view_history") + '''</h3>
  250. ''' + set_data_main["main_css_view_history"] + '''
  251. <select name="main_css_view_history">
  252. ''' + set_data["main_css_view_history"] + '''
  253. </select>
  254. <h2>''' + load_lang("edit") + '''</h2>
  255. <h3>''' + load_lang("image_paste") + '''</h3>
  256. <sup>''' + load_lang('only_korean') + '''</sup> <sup>''' + load_lang('unavailable_in_monaco') + '''</sup>
  257. <hr class="main_hr">
  258. ''' + set_data_main["main_css_image_paste"] + '''
  259. <select name="main_css_image_paste">
  260. ''' + set_data["main_css_image_paste"] + '''
  261. </select>
  262. <h3>''' + load_lang("monaco_editor") + '''</h3>
  263. ''' + set_data_main["main_css_monaco"] + '''
  264. <select name="main_css_monaco">
  265. ''' + set_data["main_css_monaco"] + '''
  266. </select>
  267. <hr class="main_hr">
  268. <button type="submit">''' + load_lang('save') + '''</button>
  269. </form>
  270. '''),
  271. menu = [['change', load_lang('user_setting')], ['change/skin_set', load_lang('skin_set')], ['setting/skin_set', load_lang('main_skin_set_default')]]
  272. ))