2
0

html_only.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. from . import tool
  2. import datetime
  3. import html
  4. import re
  5. def html_only(conn, data, title, main_num):
  6. curs = conn.cursor()
  7. backlink = []
  8. plus_data = ''
  9. while 1:
  10. in_data = re.search('<a(?: href="/w/((?:(?!\").)+)")?>((?:(?!<\/a>).)+)<\/a>', data)
  11. if in_data:
  12. in_data = in_data.groups()
  13. if in_data[0]:
  14. main_link = in_data[0]
  15. sub_link = in_data[1]
  16. else:
  17. main_link = in_data[1]
  18. sub_link = in_data[1]
  19. curs.execute("select title from data where title = ?", [main_link])
  20. if not curs.fetchall():
  21. link_id = 'id="not_thing"'
  22. backlink += [[title, main_link, 'no']]
  23. else:
  24. link_id = 'id=""'
  25. backlink += [[title, main_link, '']]
  26. data = re.sub('<a(?: href="/((?:(?!\").)+)")?>((?:(?!<\/a>).)+)<\/a>', '<a ' + link_id + ' href="/w/' + main_link + '">' + sub_link + '</a>', data, 1)
  27. else:
  28. break
  29. data = re.sub('<test_a', '', data)
  30. while 1:
  31. in_data = re.search('<a((?:(?!>).)+)>((?:(?!<\/a>).)+)<\/a>', data)
  32. if in_data:
  33. in_data = in_data.groups()
  34. a_data = re.sub('href="((?:(?!").)+)"', '', in_data[0])
  35. a_data = re.sub('id="((?:(?!").)+)"', '', a_data)
  36. if re.search('=', a_data):
  37. data = re.sub('<a((?:(?!>).)+)>((?:(?!<\/a>).)+)<\/a>', '', data, 1)
  38. else:
  39. data = re.sub('<a((?:(?!>).)+)>((?:(?!<\/a>).)+)<\/a>', '<test_a ' + in_data[0] + '>' + in_data[1] + '</a>', data, 1)
  40. else:
  41. break
  42. data = re.sub('<test_a', '<a', data)
  43. ok_list = [
  44. 'h1',
  45. 'h2',
  46. 'h3',
  47. 'h4',
  48. 'h5',
  49. 'h6',
  50. 'li',
  51. 'a'
  52. ]
  53. data = tool.xss_protect(curs, data, ok_list)
  54. return [data, plus_data, backlink]