mark.py 2.0 KB

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