2
0

include.py 2.3 KB

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