server_indexing.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. from .tool.func import *
  2. def server_indexing_2(conn):
  3. curs = conn.cursor()
  4. if admin_check() != 1:
  5. return re_error('/error/3')
  6. if flask.request.method == 'POST':
  7. admin_check(None, 'indexing')
  8. curs.execute(db_change("select name from sqlite_master where type = 'index'"))
  9. data = curs.fetchall()
  10. if data:
  11. for delete_index in data:
  12. print('Delete : ' + delete_index[0])
  13. sql = 'drop index if exists ' + delete_index[0]
  14. try:
  15. curs.execute(db_change(sql))
  16. except:
  17. pass
  18. else:
  19. curs.execute(db_change("select name from sqlite_master where type in ('table', 'view') and name not like 'sqlite_%' union all select name from sqlite_temp_master where type in ('table', 'view') order by 1;"))
  20. for table in curs.fetchall():
  21. curs.execute(db_change('select sql from sqlite_master where name = ?'), [table[0]])
  22. cul = curs.fetchall()
  23. r_cul = re.findall('(?:([^ (]*) text)', str(cul[0]))
  24. for n_cul in r_cul:
  25. print('Create : index_' + table[0] + '_' + n_cul)
  26. sql = 'create index index_' + table[0] + '_' + n_cul + ' on ' + table[0] + '(' + n_cul + ')'
  27. try:
  28. curs.execute(db_change(sql))
  29. except:
  30. pass
  31. conn.commit()
  32. return redirect()
  33. else:
  34. curs.execute(db_change("select name from sqlite_master where type = 'index'"))
  35. data = curs.fetchall()
  36. if data:
  37. b_data = load_lang('delete')
  38. else:
  39. b_data = load_lang('create')
  40. return easy_minify(flask.render_template(skin_check(),
  41. imp = [load_lang('indexing'), wiki_set(), custom(), other2([0, 0])],
  42. data = '''
  43. <form method="post">
  44. <button type="submit">''' + b_data + '''</button>
  45. </form>
  46. ''',
  47. menu = [['manager', load_lang('return')]]
  48. ))