recent_block.py 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. from .tool.func import *
  2. def recent_block_2(name = 'Test', tool = 'all'):
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. num = int(number_check(flask.request.args.get('num', '1')))
  6. sql_num = (num * 50 - 50) if num * 50 > 0 else 0
  7. div = '''
  8. <table id="main_table_set">
  9. <tbody>
  10. <tr id="main_table_top_tr">
  11. <td id="main_table_width">''' + load_lang('blocked') + '''</td>
  12. <td id="main_table_width">''' + load_lang('admin') + '''</td>
  13. <td id="main_table_width">''' + load_lang('period') + '''</td>
  14. </tr>
  15. '''
  16. curs.execute(db_change("update rb set ongoing = '' where end < ? and end != '' and ongoing = '1'"), [get_time()])
  17. conn.commit()
  18. get_type = flask.request.args.get('type', '')
  19. sub_type = flask.request.args.get('s_type', '')
  20. if tool == 'all':
  21. if get_type == 'ongoing':
  22. sub = ' (' + load_lang('in_progress') + ')'
  23. if sub_type == '':
  24. div = '' + \
  25. '<a href="?type=ongoing&s_type=regex">(' + load_lang('regex') + ')</a> ' + \
  26. '<a href="?type=ongoing&s_type=normal">(' + load_lang('normal') + ')</a>' + \
  27. '<hr class="main_hr">' + \
  28. '' + div
  29. menu = [['block_log', load_lang('return')]]
  30. plus_sql = ''
  31. else:
  32. menu = [['block_log?type=ongoing', load_lang('return')]]
  33. if sub_type == 'regex':
  34. sub += ' (' + load_lang('regex') + ')'
  35. plus_sql = 'and band = \'regex\' '
  36. else:
  37. sub += ' (' + load_lang('normal') + ')'
  38. plus_sql = 'and band = \'\' '
  39. curs.execute(db_change("" + \
  40. "select why, block, blocker, end, today, band, ongoing from rb " + \
  41. "where ((end > ? and end like '2%') or end = '') and ongoing = '1' " + plus_sql + \
  42. "order by end desc limit ?, 50" + \
  43. ""), [
  44. get_time(),
  45. sql_num
  46. ])
  47. else:
  48. sub = 0
  49. menu = 0
  50. div = '' + \
  51. '<a href="/manager/11">(' + load_lang('blocked') + ')</a> ' + \
  52. '<a href="/manager/12">(' + load_lang('admin') + ')</a> ' + \
  53. '<a href="?type=ongoing">(' + load_lang('in_progress') + ')</a>' + \
  54. '<hr class="main_hr">' + \
  55. '' + div
  56. curs.execute(db_change("" + \
  57. "select why, block, blocker, end, today, band, ongoing " + \
  58. "from rb order by today desc limit ?, 50" + \
  59. ""), [sql_num])
  60. elif tool == 'user':
  61. sub = ' (' + load_lang('blocked') + ')'
  62. menu = [['block_log', load_lang('normal')]]
  63. curs.execute(db_change("" + \
  64. "select why, block, blocker, end, today, band, ongoing " + \
  65. "from rb where block = ? order by today desc limit ?, 50" + \
  66. ""), [
  67. name,
  68. sql_num
  69. ])
  70. else:
  71. sub = ' (' + load_lang('admin') + ')'
  72. menu = [['block_log', load_lang('normal')]]
  73. curs.execute(db_change("" + \
  74. "select why, block, blocker, end, today, band, ongoing " + \
  75. "from rb where blocker = ? order by today desc limit ?, 50" + \
  76. ""), [
  77. name,
  78. sql_num
  79. ])
  80. data_list = curs.fetchall()
  81. all_ip = ip_pas([i[1] for i in data_list] + [i[2] for i in data_list])
  82. for data in data_list:
  83. why = '<br>' if data[0] == '' else html.escape(data[0])
  84. if data[5] == 'regex':
  85. ip = data[1]
  86. if data[6] == '1':
  87. ip = '<s>' + ip + '</s> <a href="/auth/give/ban_regex/' + url_pas(data[1]) + '">(' + load_lang('release') + ')</a>'
  88. else:
  89. ip += ' <a href="/auth/give/ban_regex/' + url_pas(data[1]) + '">(' + load_lang('ban') + ')</a>'
  90. ip += ' (' + load_lang('regex') + ')'
  91. else:
  92. ip = all_ip[data[1]]
  93. if data[3] == '':
  94. end = load_lang('limitless')
  95. elif data[3] == 'release':
  96. end = load_lang('release')
  97. else:
  98. end = data[3]
  99. if data[2] == '':
  100. admin = ''
  101. else:
  102. admin = all_ip[data[2]]
  103. start = load_lang('start') + ' : ' + (data[4] if data[4] != '' else '0')
  104. div += '''
  105. <tr>
  106. <td>''' + ip + '''</td>
  107. <td>''' + admin + '''</td>
  108. <td>
  109. ''' + start + '''
  110. <br>
  111. ''' + load_lang('end') + ' : ' + end + '''
  112. </td>
  113. </tr>
  114. <tr>
  115. <td colspan="3">''' + why + '''</td>
  116. </tr>
  117. '''
  118. div += '</tbody>'
  119. div += '</table>'
  120. if tool == 'all':
  121. div += next_fix('/block_log?num=', num, data_list)
  122. else:
  123. div += next_fix('/block_log/' + url_pas(tool) + '/' + url_pas(name) + '?num=', num, data_list)
  124. return easy_minify(flask.render_template(skin_check(),
  125. imp = [load_lang('recent_ban'), wiki_set(), wiki_custom(), wiki_css([sub, 0])],
  126. data = div,
  127. menu = menu
  128. ))