search_deep.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. from .tool.func import *
  2. def search_deep_2(conn, name):
  3. curs = conn.cursor()
  4. if name == '':
  5. return redirect()
  6. num = int(number_check(flask.request.args.get('num', '1')))
  7. if num * 50 > 0:
  8. sql_num = num * 50 - 50
  9. else:
  10. sql_num = 0
  11. div = '<ul>'
  12. div_plus = ''
  13. test = ''
  14. curs.execute(db_change("select title from data where title = ?"), [name])
  15. if curs.fetchall():
  16. link_id = ''
  17. else:
  18. link_id = 'id="not_thing"'
  19. div = '''
  20. <ul>
  21. <li>
  22. <a ''' + link_id + ' href="/w/' + url_pas(name) + '">' + html.escape(name) + '''</a>
  23. </li>
  24. </ul>
  25. <hr class=\"main_hr\">
  26. <ul>
  27. '''
  28. curs.execute(db_change('select data from other where name = "count_all_title"'))
  29. if int(curs.fetchall()[0][0]) < 30000:
  30. curs.execute(db_change("" + \
  31. "select distinct title, case " + \
  32. "when title like ? then 'title' else 'data' end from data " + \
  33. "where (title like ? or data like ?) order by case " + \
  34. "when title like ? then 1 else 2 end limit ?, 50"),
  35. ['%' + name + '%', '%' + name + '%', '%' + name + '%', '%' + name + '%', sql_num]
  36. )
  37. all_list = curs.fetchall()
  38. if all_list:
  39. test = all_list[0][1]
  40. for data in all_list:
  41. if data[1] != test:
  42. div_plus += '</ul><hr class=\"main_hr\"><ul>'
  43. test = data[1]
  44. div_plus += '<li><a href="/w/' + url_pas(data[0]) + '">' + data[0] + '</a> (' + data[1] + ')</li>'
  45. else:
  46. curs.execute(db_change("select title from data where title like ? order by title limit ?, 50"),
  47. ['%' + name + '%', sql_num]
  48. )
  49. all_list = curs.fetchall()
  50. for data in all_list:
  51. div_plus += '<li><a href="/w/' + url_pas(data[0]) + '">' + data[0] + '</a> (title)</li>'
  52. div += div_plus + '</ul>'
  53. div += next_fix('/search/' + url_pas(name) + '?num=', num, all_list)
  54. return easy_minify(flask.render_template(skin_check(),
  55. imp = [name, wiki_set(), custom(), other2(['(' + load_lang('search') + ')', 0])],
  56. data = div,
  57. menu = 0
  58. ))