2
0

recent_block.py 4.4 KB

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