tool.py 2.4 KB

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