tool.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import flask
  2. import urllib.parse
  3. import datetime
  4. import re
  5. import hashlib
  6. def get_time():
  7. return str(datetime.datetime.today().strftime("%Y-%m-%d %H:%M:%S"))
  8. def db_change(data):
  9. # data = data.replace('%', '%%')
  10. # data = data.replace('?', '%s')
  11. return data
  12. def ip_check(d_type = 0):
  13. if d_type == 0:
  14. if flask.session and ('state' and 'id') in flask.session:
  15. ip = flask.session['id']
  16. else:
  17. try:
  18. ip = flask.request.environ.get('HTTP_X_REAL_IP', flask.request.environ.get('HTTP_X_FORWARDED_FOR', flask.request.remote_addr))
  19. if ip == '::1' or ip == '127.0.0.1':
  20. ip = flask.request.environ.get('HTTP_X_FORWARDED_FOR', flask.request.remote_addr)
  21. except:
  22. ip = '-'
  23. else:
  24. try:
  25. ip = flask.request.environ.get('HTTP_X_REAL_IP', flask.request.environ.get('HTTP_X_FORWARDED_FOR', flask.request.remote_addr))
  26. if ip == '::1' or ip == '127.0.0.1':
  27. ip = flask.request.environ.get('HTTP_X_FORWARDED_FOR', flask.request.remote_addr)
  28. except:
  29. ip = '-'
  30. return str(ip)
  31. def link_fix(main_link):
  32. if re.search('^:', main_link):
  33. main_link = re.sub('^:', '', main_link)
  34. main_link = re.sub('^사용자:', 'user:', main_link)
  35. main_link = re.sub('^파일:', 'file:', main_link)
  36. main_link = re.sub('^분류:', 'category:', main_link)
  37. other_link = re.search('[^\\\\](#.+)$', main_link)
  38. if other_link:
  39. other_link = other_link.groups()[0]
  40. main_link = re.sub('(#.+)$', '', main_link)
  41. else:
  42. other_link = ''
  43. main_link = re.sub('\\\\#', '%23', main_link)
  44. return [main_link, other_link]
  45. def savemark(data):
  46. data = re.sub("\[date\(now\)\]", get_time(), data)
  47. ip = ip_check()
  48. if not re.search("\.", ip):
  49. name = '[[user:' + ip + '|' + ip + ']]'
  50. else:
  51. name = ip
  52. data = re.sub("\[name\]", name, data)
  53. return data
  54. def url_pas(data):
  55. return urllib.parse.quote(data).replace('/','%2F')
  56. def sha224(data):
  57. return hashlib.sha224(bytes(data, 'utf-8')).hexdigest()
  58. def md5_replace(data):
  59. return hashlib.md5(data.encode()).hexdigest()