mark.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. from set_mark.namu import namu
  2. import re
  3. import html
  4. import sqlite3
  5. import urllib.parse
  6. import threading
  7. import multiprocessing
  8. def load_conn2(data):
  9. global conn
  10. global curs
  11. conn = data
  12. curs = conn.cursor()
  13. def send_parser(data):
  14. if not re.search('^<br>$', data):
  15. data = html.escape(data)
  16. javascript = re.compile('javascript:', re.I)
  17. data = javascript.sub('', data)
  18. while 1:
  19. re_data = re.search('&lt;a(?: (?:(?:(?!&gt;).)*))?&gt;(?P<in>(?:(?!&lt;).)*)&lt;\/a&gt;', data)
  20. if re_data:
  21. re_data = re_data.groups()[0]
  22. 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)
  23. else:
  24. break
  25. return data
  26. def plusing(data):
  27. for data_in in data:
  28. curs.execute("select title from back where title = ? and link = ? and type = ?", [data_in[1], data_in[0], data_in[2]])
  29. if not curs.fetchall():
  30. curs.execute("insert into back (title, link, type) values (?, ?, ?)", [data_in[1], data_in[0], data_in[2]])
  31. def namumark(title = '', data = None, num = 0, markup = 'namumark'):
  32. if data != None:
  33. if markup == 'namumark':
  34. data = namu(conn, data, title, num)
  35. else:
  36. data = ['', '', []]
  37. if num == 1:
  38. data_num = len(data[2])
  39. data_in_num = int(data_num / 8)
  40. data_in = []
  41. for i in range(8):
  42. if not i == 7:
  43. data_in += [data[2][data_in_num * i:data_in_num * (i + 1)]]
  44. else:
  45. data_in += [data[2][data_in_num * i:]]
  46. for data_in_for in data_in:
  47. thread_start = threading.Thread(target = plusing, args = [data_in_for])
  48. thread_start.start()
  49. thread_start.join()
  50. conn.commit()
  51. return data[0] + data[1]
  52. else:
  53. return 'http request 404'