include_pas.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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?(?:(?!\)\]).)*))+)?\)\]")
  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. curs.execute("select data from data where title = ?", [results[0]])
  21. in_con = curs.fetchall()
  22. backlink += [[title, results[0], 'include']]
  23. if(in_con):
  24. in_data = in_con[0][0]
  25. in_data = include.sub("", in_data)
  26. in_data = re.sub("\n", "\r\n", re.sub("\r\n", "\n", in_data))
  27. in_data = html_pas.html_pas(in_data)
  28. var_d = mid_pas.mid_pas(in_data, fol_num, 1, in_c)
  29. var_d2 = link.link(conn, title, var_d[0], 0, category, backlink)
  30. in_data = var_d2[0]
  31. category = var_d2[1]
  32. fol_num = var_d[1]
  33. if(results[1]):
  34. a = results[1]
  35. while(1):
  36. g = re.search("([^= ,]*)\=([^,]*)", a)
  37. if(g):
  38. result = g.groups()
  39. in_data = re.sub("@" + result[0] + "@", result[1], in_data)
  40. a = re.sub("([^= ,]*)\=([^,]*)", "", a, 1)
  41. else:
  42. break
  43. in_data = toc_pas.toc_pas(in_data, results[0], num, toc_y)
  44. data = include.sub('\n<nobr><a id="include_link" href="/w/' + url_pas(results[0]) + '">[' + results[0] + ' 이동]</a><div>' + in_data + '</div><nobr>\n', data, 1)
  45. else:
  46. data = include.sub("<a class=\"not_thing\" href=\"/w/" + url_pas(results[0]) + "\">" + results[0] + "</a>", data, 1)
  47. return([data, category, fol_num, backlink])