include_pas.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. from . import html_pas
  2. from . import link
  3. from . import mid_pas
  4. from . import toc_pas
  5. import sqlite3
  6. from urllib import parse
  7. import re
  8. def url_pas(data):
  9. return parse.quote(data).replace('/','%2F')
  10. def include_pas(conn, data, title, in_c, num, toc_y, fol_num):
  11. curs = conn.cursor()
  12. category = ''
  13. backlink = []
  14. include = re.compile("\[include\(((?:(?!\)\]|,).)*)((?:(?:,\s?(?:(?!\)\]).)*))+)?\)\]((?:(?!\n))*)")
  15. m = include.findall(data)
  16. for results in m:
  17. if results[0] == title:
  18. data = include.sub("<b>" + results[0] + "</b>", data, 1)
  19. else:
  20. backlink += [[title, results[0], 'include']]
  21. curs.execute("select data from data where title = ?", [results[0]])
  22. in_con = curs.fetchall()
  23. if(in_con):
  24. in_data = in_con[0][0]
  25. in_data = include.sub("", in_data)
  26. in_data = re.sub("\[\[(분류:(?:(?:(?!\]\]|#include).)+))\]\]", "", in_data)
  27. in_data = re.sub("\n", "\r\n", re.sub("\r\n", "\n", in_data))
  28. in_data = html_pas.html_pas(in_data)
  29. var_d = mid_pas.mid_pas(in_data, fol_num, 1, in_c, toc_y)
  30. var_d2 = link.link(conn, title, var_d[0], 0, category, backlink)
  31. in_data = var_d2[0]
  32. category = var_d2[1]
  33. fol_num = var_d[1]
  34. if results[1]:
  35. a = results[1]
  36. while 1:
  37. g = re.search("([^= ,]*)\=([^,]*)", a)
  38. if g:
  39. result = g.groups()
  40. in_data = re.sub("@" + result[0] + "@", result[1], in_data)
  41. a = re.sub("([^= ,]*)\=([^,]*)", "", a, 1)
  42. else:
  43. break
  44. in_data = toc_pas.toc_pas(in_data, results[0], num, toc_y)
  45. if results[2]:
  46. test = '<br>'
  47. else:
  48. if re.search('\|\|', in_data):
  49. test = '\n'
  50. else:
  51. test = ''
  52. data = include.sub('<nobr><a id="include_link" href="/w/' + url_pas(results[0]) + '">[' + results[0] + ' 이동]</a><br><span>' + in_data + '</span>' + test, data, 1)
  53. else:
  54. data = include.sub("<a class=\"not_thing\" href=\"/w/" + url_pas(results[0]) + "\">" + results[0] + "</a>", data, 1)
  55. return [data, category, fol_num, backlink]