tool.py 2.1 KB

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