main_func_setting_robot.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. from .tool.func import *
  2. def main_func_setting_robot():
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. if admin_check() != 1:
  6. return re_error('/ban')
  7. if flask.request.method == 'POST':
  8. curs.execute(db_change("select name from other where name = 'robot'"))
  9. if curs.fetchall():
  10. curs.execute(db_change("update other set data = ? where name = 'robot'"), [flask.request.form.get('content', '')])
  11. else:
  12. curs.execute(db_change("insert into other (name, data) values ('robot', ?)"), [flask.request.form.get('content', '')])
  13. conn.commit()
  14. fw = open('./robots.txt', 'w', encoding='utf8')
  15. fw.write(re.sub('\r\n', '\n', flask.request.form.get('content', '')))
  16. fw.close()
  17. admin_check(None, 'edit_set (robot)')
  18. return redirect('/setting/robot')
  19. else:
  20. if not os.path.exists('robots.txt'):
  21. curs.execute(db_change('select data from other where name = "robot"'))
  22. robot_test = curs.fetchall()
  23. if robot_test:
  24. fw_test = open('./robots.txt', 'w', encoding='utf8')
  25. fw_test.write(re.sub('\r\n', '\n', robot_test[0][0]))
  26. fw_test.close()
  27. else:
  28. fw_test = open('./robots.txt', 'w', encoding='utf8')
  29. fw_test.write('User-agent: *\nDisallow: /\nAllow: /$\nAllow: /w/')
  30. fw_test.close()
  31. curs.execute(db_change('insert into other (name, data) values ("robot", "User-agent: *\nDisallow: /\nAllow: /$\nAllow: /w/")'))
  32. curs.execute(db_change("select data from other where name = 'robot'"))
  33. robot = curs.fetchall()
  34. if robot:
  35. data = robot[0][0]
  36. else:
  37. data = ''
  38. f = open('./robots.txt', encoding='utf8')
  39. lines = f.readlines()
  40. f.close()
  41. if not data or data == '':
  42. data = ''.join(lines)
  43. return easy_minify(flask.render_template(skin_check(),
  44. imp = ['robots.txt', wiki_set(), wiki_custom(), wiki_css([0, 0])],
  45. data = '''
  46. <a href="/robots.txt">(''' + load_lang('view') + ''')</a>
  47. <hr class="main_hr">
  48. <form method="post">
  49. <textarea rows="25" name="content">''' + html.escape(data) + '''</textarea>
  50. <hr class="main_hr">
  51. <button id="save" type="submit">''' + load_lang('save') + '''</button>
  52. </form>
  53. ''',
  54. menu = [['setting', load_lang('return')]]
  55. ))