search_deep.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. sql_num = (num * 50 - 50) if num * 50 > 0 else 0
  8. div = '<ul class="inside_ul">'
  9. div_plus = ''
  10. test = ''
  11. curs.execute(db_change("select title from data where title = ?"), [name])
  12. link_id = '' if curs.fetchall() else 'id="not_thing"'
  13. div = '''
  14. <ul class="inside_ul">
  15. <li>
  16. <a ''' + link_id + ' href="/w/' + url_pas(name) + '">' + html.escape(name) + '''</a>
  17. </li>
  18. </ul>
  19. <hr class=\"main_hr\">
  20. <ul class="inside_ul">
  21. '''
  22. curs.execute(db_change('select data from other where name = "count_all_title"'))
  23. if int(curs.fetchall()[0][0]) < 30000:
  24. curs.execute(db_change("" + \
  25. "select distinct title, case " + \
  26. "when title like ? then 'title' else 'data' end from data " + \
  27. "where (title like ? or data like ?) order by case " + \
  28. "when title like ? then 1 else 2 end limit ?, 50"),
  29. ['%' + name + '%', '%' + name + '%', '%' + name + '%', '%' + name + '%', sql_num]
  30. )
  31. all_list = curs.fetchall()
  32. if all_list:
  33. test = all_list[0][1]
  34. for data in all_list:
  35. if data[1] != test:
  36. div_plus += '</ul><hr class=\"main_hr\"><ul class="inside_ul">'
  37. test = data[1]
  38. div_plus += '<li><a href="/w/' + url_pas(data[0]) + '">' + html.escape(data[0]) + '</a> (' + data[1] + ')</li>'
  39. else:
  40. curs.execute(db_change("select title from data where title like ? order by title limit ?, 50"),
  41. ['%' + name + '%', sql_num]
  42. )
  43. all_list = curs.fetchall()
  44. for data in all_list:
  45. div_plus += '<li><a href="/w/' + url_pas(data[0]) + '">' + data[0] + '</a> (title)</li>'
  46. div += div_plus + '</ul>'
  47. div += next_fix('/search/' + url_pas(name) + '?num=', num, all_list)
  48. return easy_minify(flask.render_template(skin_check(),
  49. imp = [name, wiki_set(), wiki_custom(), wiki_css(['(' + load_lang('search') + ')', 0])],
  50. data = div,
  51. menu = 0
  52. ))