main_search_deep.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from .tool.func import *
  2. def main_search_deep(name = 'Test', search_type = 'title', num = 1):
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. if name == '':
  6. return redirect()
  7. sql_num = (num * 50 - 50) if num * 50 > 0 else 0
  8. div = ''
  9. if search_type == 'title':
  10. div += '<a href="/search_data/1/' + url_pas(name) + '">(' + load_lang('search_document_data') + ')</a>'
  11. else:
  12. div += '<a href="/search/1/' + url_pas(name) + '">(' + load_lang('search_document_name') + ')</a>'
  13. name_new = ''
  14. if re.search(r'^분류:', name):
  15. name_new = re.sub(r"^분류:", 'category:', name)
  16. elif re.search(r"^사용자:", name):
  17. name_new = re.sub(r"^사용자:", 'user:', name)
  18. elif re.search(r"^파일:", name):
  19. name_new = re.sub(r"^파일:", 'file:', name)
  20. if name_new != '':
  21. div += ' <a href="/search/1/' + url_pas(name_new) + '">(' + name_new + ')</a>'
  22. curs.execute(db_change("select title from data where title = ?"), [name])
  23. link_id = '' if curs.fetchall() else 'id="not_thing"'
  24. div += '''
  25. <ul class="opennamu_ul">
  26. <li>
  27. <a ''' + link_id + ' href="/w/' + url_pas(name) + '">' + html.escape(name) + '''</a>
  28. </li>
  29. </ul>
  30. <hr class="main_hr">
  31. <ul class="opennamu_ul">
  32. '''
  33. if search_type == 'title':
  34. curs.execute(db_change("select title from data where title like ? order by title limit ?, 50"),
  35. ['%' + name + '%', sql_num]
  36. )
  37. else:
  38. curs.execute(db_change("select title from data where data like ? order by title limit ?, 50"),
  39. ['%' + name + '%', sql_num]
  40. )
  41. all_list = curs.fetchall()
  42. for data in all_list:
  43. div += '<li><a href="/w/' + url_pas(data[0]) + '">' + data[0] + '</a></li>'
  44. div += '</ul>'
  45. div += get_next_page_bottom('/search/{}/' + url_pas(name), num, all_list)
  46. return easy_minify(flask.render_template(skin_check(),
  47. imp = [name, wiki_set(), wiki_custom(), wiki_css(['(' + load_lang('search') + ')', 0])],
  48. data = div,
  49. menu = 0
  50. ))