user_setting_skin_set_main.py 15 KB

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