2
0

topic_tool.py 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. from .tool.func import *
  2. async def topic_tool(topic_num = 1):
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. data = ''
  6. topic_num = str(topic_num)
  7. curs.execute(db_change("select stop, agree from rd where code = ?"), [topic_num])
  8. close_data = curs.fetchall()
  9. if close_data:
  10. if close_data[0][0] == 'S':
  11. t_state = get_lang(conn, 'topic_stop')
  12. elif close_data[0][0] == 'O':
  13. t_state = get_lang(conn, 'topic_close')
  14. else:
  15. t_state = get_lang(conn, 'topic_normal')
  16. if close_data[0][1] == 'O':
  17. t_state += ' (' + get_lang(conn, 'topic_agree') + ')'
  18. else:
  19. t_state = get_lang(conn, 'topic_normal')
  20. curs.execute(db_change("select acl from rd where code = ?"), [topic_num])
  21. db_data = curs.fetchall()
  22. if db_data:
  23. if db_data[0][0] == '':
  24. acl_state = 'normal'
  25. else:
  26. acl_state = db_data[0][0]
  27. else:
  28. acl_state = 'normal'
  29. curs.execute(db_change("select set_data from topic_set where thread_code = ? and set_name = 'thread_view_acl'"), [topic_num])
  30. db_data = curs.fetchall()
  31. if db_data:
  32. if db_data[0][0] == '':
  33. acl_view_state = 'normal'
  34. else:
  35. acl_view_state = db_data[0][0]
  36. else:
  37. acl_view_state = 'normal'
  38. if await acl_check(tool = 'toron_auth') != 1:
  39. data = '''
  40. <h2>''' + get_lang(conn, 'admin_tool') + '''</h2>
  41. <ul>
  42. <li><a href="/thread/''' + topic_num + '/setting">' + get_lang(conn, 'topic_setting') + '''</a></li>
  43. <li><a href="/thread/''' + topic_num + '/acl">' + get_lang(conn, 'topic_acl_setting') + '''</a></li>
  44. </ul>
  45. '''
  46. data += '''
  47. <h2>''' + get_lang(conn, 'tool') + '''</h2>
  48. <ul>
  49. <li>''' + get_lang(conn, 'topic_state') + ''' : ''' + t_state + '''</li>
  50. <li>''' + get_lang(conn, 'topic_acl') + ''' : <a href="/acl/TEST#exp">''' + acl_state + '''</a></li>
  51. <li>''' + get_lang(conn, 'topic_view_acl') + ''' : <a href="/acl/TEST#exp">''' + acl_view_state + '''</a></li>
  52. </ul>
  53. '''
  54. if await acl_check(tool = 'owner_auth') != 1:
  55. data += '''
  56. <h2>''' + get_lang(conn, 'owner') + '''</h2>
  57. <ul>
  58. <li>
  59. <a href="/thread/''' + topic_num + '''/delete">
  60. ''' + get_lang(conn, 'topic_delete') + '''
  61. </a>
  62. </li>
  63. <li>
  64. <a href="/thread/''' + topic_num + '''/change">
  65. ''' + get_lang(conn, 'topic_name_change') + '''
  66. </a>
  67. </li>
  68. </ul>
  69. '''
  70. return easy_minify(conn, flask.render_template(skin_check(conn),
  71. imp = [get_lang(conn, 'topic_tool'), await wiki_set(), await wiki_custom(conn), wiki_css([0, 0])],
  72. data = data,
  73. menu = [['thread/' + topic_num, get_lang(conn, 'return')]]
  74. ))