func_tool.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import urllib.parse
  2. import datetime
  3. import hashlib
  4. import flask
  5. import re
  6. import os
  7. import html
  8. import json
  9. import sqlite3
  10. import threading
  11. set_data = ''
  12. def get_time():
  13. return str(datetime.datetime.today().strftime("%Y-%m-%d %H:%M:%S"))
  14. def db_data_get(data):
  15. global set_data
  16. set_data = data
  17. def db_change(data):
  18. if set_data == 'mysql':
  19. data = data.replace('random()', 'rand()')
  20. data = data.replace('%', '%%')
  21. data = data.replace('?', '%s')
  22. data = data.replace('collate nocase', 'collate utf8mb4_general_ci')
  23. return data
  24. def ip_check(d_type = 0):
  25. ip = ''
  26. if d_type == 0 and (flask.session and 'id' in flask.session):
  27. ip = flask.session['id']
  28. else:
  29. ip = flask.request.environ.get('HTTP_X_REAL_IP',
  30. flask.request.environ.get('HTTP_CF_CONNECTING_IP',
  31. flask.request.environ.get('REMOTE_ADDR',
  32. '::1'
  33. )
  34. )
  35. )
  36. return ip
  37. def ip_or_user(data = ''):
  38. # without_DB
  39. # 1 == ip
  40. # 0 == reg
  41. if data == '':
  42. data = ip_check()
  43. if re.search(r'(\.|:)', data):
  44. return 1
  45. else:
  46. return 0
  47. def url_pas(data):
  48. data = re.sub(r'^\.', '\\\\.', data)
  49. data = urllib.parse.quote(data)
  50. data = data.replace('/','%2F')
  51. return data
  52. def sha224_replace(data):
  53. return hashlib.sha224(bytes(data, 'utf-8')).hexdigest()
  54. def md5_replace(data):
  55. return hashlib.md5(data.encode()).hexdigest()
  56. def get_main_skin_set(curs, flask_session, set_name, ip):
  57. if ip_or_user(ip) == 0:
  58. curs.execute(db_change('select data from user_set where name = ? and id = ?'), [set_name, ip])
  59. db_data = curs.fetchall()
  60. set_data = db_data[0][0] if db_data else 'default'
  61. else:
  62. set_data = flask_session[set_name] if set_name in flask_session and flask_session[set_name] != '' else 'default'
  63. if set_data == 'default':
  64. curs.execute(db_change('select data from other where name = ?'), [set_name])
  65. db_data = curs.fetchall()
  66. set_data = db_data[0][0] if db_data and db_data[0][0] != '' else 'default'
  67. return set_data