mark.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. from .set_mark.namumark import namumark, link_fix
  2. from .set_mark.markdown import markdown
  3. from .set_mark.tool import *
  4. import re
  5. import html
  6. import sqlite3
  7. import asyncio
  8. import threading
  9. import urllib.parse
  10. import multiprocessing
  11. def load_conn2(data):
  12. global conn
  13. global curs
  14. conn = data
  15. curs = conn.cursor()
  16. def send_parser(data):
  17. if not re.search('^<br>$', data):
  18. data = html.escape(data)
  19. javascript = re.compile('javascript:', re.I)
  20. data = javascript.sub('', data)
  21. while 1:
  22. re_data = re.search('&lt;a(?: (?:(?:(?!&gt;).)*))?&gt;(?P<in>(?:(?!&lt;).)*)&lt;\/a&gt;', data)
  23. if re_data:
  24. re_data = re_data.groups()[0]
  25. data = re.sub('&lt;a(?: (?:(?:(?!&gt;).)*))?&gt;(?P<in>(?:(?!&lt;).)*)&lt;\/a&gt;', '<a href="/w/' + urllib.parse.quote(re_data).replace('/','%2F') + '">' + re_data + '</a>', data, 1)
  26. else:
  27. break
  28. return data
  29. def plusing(data_in):
  30. try:
  31. curs.execute(db_change("insert into back (title, link, type) values (?, ?, ?)"), [data_in[1], data_in[0], data_in[2]])
  32. except:
  33. pass
  34. def render_do(title, data, num, include):
  35. curs.execute(db_change('select data from other where name = "markup"'))
  36. rep_data = curs.fetchall()
  37. if rep_data[0][0] == 'namumark':
  38. data = namumark(conn, data, title, num, include)
  39. elif rep_data[0][0] == 'js_namumark':
  40. data = [
  41. '<div id="render_contect">' + html.escape(data) + '</div>',
  42. '<script>render_namumark("render_contect")</script>',
  43. []
  44. ]
  45. elif rep_data[0][0] == 'markdown':
  46. data = markdown(conn, data, title, num)
  47. elif rep_data[0][0] == 'raw':
  48. data = [data, '', []]
  49. else:
  50. data = ['', '', []]
  51. if num == 1:
  52. for data_in in data[2]:
  53. plusing(data_in)
  54. conn.commit()
  55. if num == 2:
  56. return [data[0], data[1]]
  57. else:
  58. return data[0] + data[1]