2
0

recent_block.py 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. from .tool.func import *
  2. def recent_block(name = 'Test', tool = 'all', num = 1):
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. sql_num = (num * 50 - 50) if num * 50 > 0 else 0
  6. div = '''
  7. <table id="main_table_set">
  8. <tbody>
  9. <tr id="main_table_top_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. div = '' + \
  16. '<a href="/block_log">(' + load_lang('all') + ')</a> ' + \
  17. '<a href="/manager/11">(' + load_lang('blocked') + ')</a> ' + \
  18. '<a href="/manager/12">(' + load_lang('admin') + ')</a> ' + \
  19. '<a href="/block_log/ongoing">(' + load_lang('in_progress') + ')</a> ' + \
  20. '<a href="/block_log/regex">(' + load_lang('regex') + ')</a>' + \
  21. '<hr class="main_hr">' + \
  22. '' + div
  23. if tool == 'all':
  24. sub = 0
  25. menu = [['other', load_lang('return')]]
  26. curs.execute(db_change("select why, block, blocker, end, today, band, ongoing from rb order by today desc limit ?, 50"), [sql_num])
  27. elif tool == 'ongoing':
  28. sub = '(' + load_lang('in_progress') + ')'
  29. menu = [['other', load_lang('return')]]
  30. curs.execute(db_change("select why, block, blocker, end, today, band, ongoing from rb where ongoing = '1' order by end desc limit ?, 50"), [sql_num])
  31. elif tool == 'regex':
  32. sub = '(' + load_lang('regex') + ')'
  33. menu = [['other', load_lang('return')]]
  34. curs.execute(db_change("select why, block, blocker, end, today, band, ongoing from rb where band = 'regex' order by today desc limit ?, 50"), [sql_num])
  35. elif tool == 'user':
  36. sub = '(' + load_lang('blocked') + ')'
  37. menu = [['other', load_lang('return')]]
  38. curs.execute(db_change("select why, block, blocker, end, today, band, ongoing from rb where block = ? order by today desc limit ?, 50"), [name, sql_num])
  39. else:
  40. sub = '(' + load_lang('admin') + ')'
  41. menu = [['other', load_lang('return')]]
  42. curs.execute(db_change("select why, block, blocker, end, today, band, ongoing from rb where blocker = ? order by today desc limit ?, 50"), [name, sql_num])
  43. data_list = curs.fetchall()
  44. all_ip = ip_pas([i[1] for i in data_list] + [i[2] for i in data_list])
  45. for data in data_list:
  46. why = '<br>' if data[0] == '' else html.escape(data[0])
  47. if why == 'edit filter':
  48. why = '<a href="/edit_filter/' + url_pas(data[1]) + '">edit filter</a>'
  49. if data[5] == 'regex':
  50. ip = data[1]
  51. if data[6] == '1':
  52. ip = '<s>' + ip + '</s> <a href="/auth/give/ban_regex/' + url_pas(data[1]) + '">(' + load_lang('release') + ')</a>'
  53. else:
  54. ip += ' <a href="/auth/give/ban_regex/' + url_pas(data[1]) + '">(' + load_lang('ban') + ')</a>'
  55. ip += ' (' + load_lang('regex') + ')'
  56. else:
  57. ip = all_ip[data[1]]
  58. if data[3] == '':
  59. end = load_lang('limitless')
  60. elif data[3] == 'release':
  61. end = load_lang('release')
  62. else:
  63. end = data[3]
  64. if data[2] == '':
  65. admin = ''
  66. else:
  67. admin = all_ip[data[2]]
  68. start = load_lang('start') + ' : ' + (data[4] if data[4] != '' else '0')
  69. div += '''
  70. <tr>
  71. <td>''' + ip + '''</td>
  72. <td>''' + admin + '''</td>
  73. <td>
  74. ''' + start + '''
  75. <br>
  76. ''' + load_lang('end') + ' : ' + end + '''
  77. </td>
  78. </tr>
  79. <tr>
  80. <td colspan="3">''' + why + '''</td>
  81. </tr>
  82. '''
  83. div += '</tbody>'
  84. div += '</table>'
  85. if tool == 'all':
  86. div += next_fix('/block_log/', num, data_list)
  87. else:
  88. div += next_fix('/block_log/' + url_pas(tool) + '/' + url_pas(name) + '/', num, data_list)
  89. return easy_minify(flask.render_template(skin_check(),
  90. imp = [load_lang('recent_ban'), wiki_set(), wiki_custom(), wiki_css([sub, 0])],
  91. data = div,
  92. menu = menu
  93. ))