2
0

recent_changes.py 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. from .tool.func import *
  2. def recent_changes_2(conn, name, tool):
  3. curs = conn.cursor()
  4. if flask.request.method == 'POST':
  5. return redirect('/diff/' + url_pas(name) + '?first=' + flask.request.form.get('b', None) + '&second=' + flask.request.form.get('a', None))
  6. else:
  7. one_admin = admin_check(1)
  8. six_admin = admin_check(6)
  9. ban = ''
  10. select = ''
  11. div = '''
  12. <table id="main_table_set">
  13. <tbody>
  14. <tr>
  15. '''
  16. if name:
  17. num = int(number_check(flask.request.args.get('num', '1')))
  18. if num * 50 > 0:
  19. sql_num = num * 50 - 50
  20. else:
  21. sql_num = 0
  22. if tool == 'history':
  23. div += '''
  24. <td id="main_table_width">''' + load_lang('version') + '''</td>
  25. <td id="main_table_width">''' + load_lang('editor') + '''</td>
  26. <td id="main_table_width">''' + load_lang('time') + '''</td></tr>
  27. '''
  28. curs.execute("select id, title, date, ip, send, leng from history where title = ? order by id + 0 desc limit ?, '50'", [name, str(sql_num)])
  29. else:
  30. div += '''
  31. <td id="main_table_width">''' + load_lang('document_name') + '''</td>
  32. <td id="main_table_width">''' + load_lang('editor') + '''</td>
  33. <td id="main_table_width">''' + load_lang('time') + '''</td>
  34. </tr>
  35. '''
  36. div = '<a href="/topic_record/' + url_pas(name) + '">(' + load_lang('discussion') + ')</a><hr class=\"main_hr\">' + div
  37. curs.execute("select id, title, date, ip, send, leng from history where ip = ? order by date desc limit ?, '50'", [name, str(sql_num)])
  38. else:
  39. num = int(number_check(flask.request.args.get('num', '1')))
  40. if num * 50 > 0:
  41. sql_num = num * 50 - 50
  42. else:
  43. sql_num = 0
  44. div += '''
  45. <td id="main_table_width">''' + load_lang('document_name') + '''</td>
  46. <td id="main_table_width">''' + load_lang('editor') + '''</td>
  47. <td id="main_table_width">''' + load_lang('time') + '''</td>
  48. </tr>
  49. '''
  50. curs.execute("select id, title, date, ip, send, leng from history where not title like 'user:%' order by date desc limit ?, 50", [str(sql_num)])
  51. data_list = curs.fetchall()
  52. for data in data_list:
  53. select += '<option value="' + data[0] + '">' + data[0] + '</option>'
  54. send = '<br>'
  55. if data[4]:
  56. if not re.search("^(?: *)$", data[4]):
  57. send = data[4]
  58. if re.search("\+", data[5]):
  59. leng = '<span style="color:green;">(' + data[5] + ')</span>'
  60. elif re.search("\-", data[5]):
  61. leng = '<span style="color:red;">(' + data[5] + ')</span>'
  62. else:
  63. leng = '<span style="color:gray;">(' + data[5] + ')</span>'
  64. ip = ip_pas(data[3])
  65. if int(data[0]) - 1 == 0:
  66. revert = ''
  67. else:
  68. revert = '<a href="/diff/' + url_pas(data[1]) + '?first=' + str(int(data[0]) - 1) + '&second=' + data[0] + '">(' + load_lang('compare') + ')</a> <a href="/revert/' + url_pas(data[1]) + '?num=' + str(int(data[0]) - 1) + '">(' + load_lang('revert') + ')</a>'
  69. style = ['', '']
  70. date = data[2]
  71. curs.execute("select title from history where title = ? and id = ? and hide = 'O'", [data[1], data[0]])
  72. hide = curs.fetchall()
  73. if six_admin == 1:
  74. if hide:
  75. hidden = ' <a href="/hidden/' + url_pas(data[1]) + '?num=' + data[0] + '">(' + load_lang('hide_release') + ')'
  76. style[0] = 'id="toron_color_grey"'
  77. style[1] = 'id="toron_color_grey"'
  78. if send == '<br>':
  79. send = '(' + load_lang('hide') + ')'
  80. else:
  81. send += ' (' + load_lang('hide') + ')'
  82. else:
  83. hidden = ' <a href="/hidden/' + url_pas(data[1]) + '?num=' + data[0] + '">(' + load_lang('hide') + ')'
  84. elif not hide:
  85. hidden = ''
  86. else:
  87. ip = ''
  88. hidden = ''
  89. ban = ''
  90. date = ''
  91. send = '(' + load_lang('hide') + ')'
  92. style[0] = 'style="display: none;"'
  93. style[1] = 'id="toron_color_grey"'
  94. if tool == 'history':
  95. title = '<a href="/w/' + url_pas(name) + '?num=' + data[0] + '">r' + data[0] + '</a> <a href="/raw/' + url_pas(name) + '?num=' + data[0] + '">(' + load_lang('raw') + ')</a> '
  96. else:
  97. title = '<a href="/w/' + url_pas(data[1]) + '">' + html.escape(data[1]) + '</a> <a href="/history/' + url_pas(data[1]) + '">(r' + data[0] + ')</a> '
  98. div += '''
  99. <tr ''' + style[0] + '''>
  100. <td>''' + title + revert + ' ' + leng + '''</td>
  101. <td>''' + ip + ban + hidden + '''</td>
  102. <td>''' + date + '''</td>
  103. </tr>
  104. <tr ''' + style[1] + '''>
  105. <td colspan="3">''' + send_parser(send) + '''</td>
  106. </tr>
  107. '''
  108. div += '''
  109. </tbody>
  110. </table>
  111. '''
  112. sub = ''
  113. if name:
  114. if tool == 'history':
  115. div = '''
  116. <form method="post">
  117. <select name="a">''' + select + '''</select> <select name="b">''' + select + '''</select>
  118. <button type="submit">''' + load_lang('compare') + '''</button>
  119. </form>
  120. <hr class=\"main_hr\">
  121. ''' + div
  122. title = name
  123. sub += ' (' + load_lang('history') + ')'
  124. menu = [['w/' + url_pas(name), load_lang('document')], ['raw/' + url_pas(name), 'raw']]
  125. div += next_fix('/history/' + url_pas(name) + '?num=', num, data_list)
  126. else:
  127. curs.execute("select end from ban where block = ?", [name])
  128. if curs.fetchall():
  129. sub += ' (' + load_lang('blocked') + ')'
  130. title = load_lang('edit_record')
  131. menu = [['other', load_lang('other')], ['user', load_lang('user')], ['count/' + url_pas(name), load_lang('count')]]
  132. div += next_fix('/record/' + url_pas(name) + '?num=', num, data_list)
  133. else:
  134. menu = 0
  135. title = load_lang('recent_change')
  136. div += next_fix('/recent_changes?num=', num, data_list)
  137. if sub == '':
  138. sub = 0
  139. return easy_minify(flask.render_template(skin_check(),
  140. imp = [title, wiki_set(), custom(), other2([sub, 0])],
  141. data = div,
  142. menu = menu
  143. ))