2
0

func_tool.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. return data
  23. def ip_check(d_type = 0):
  24. ip = ''
  25. if d_type == 0 and (flask.session and 'id' in flask.session):
  26. ip = flask.session['id']
  27. else:
  28. ip = flask.request.environ.get('HTTP_X_REAL_IP',
  29. flask.request.environ.get('HTTP_CF_CONNECTING_IP',
  30. flask.request.environ.get('REMOTE_ADDR',
  31. '::1'
  32. )
  33. )
  34. )
  35. return ip
  36. def ip_or_user(data = ''):
  37. # without_DB
  38. # 1 == ip
  39. # 0 == reg
  40. if data == '':
  41. data = ip_check()
  42. if re.search(r'(\.|:)', data):
  43. return 1
  44. else:
  45. return 0
  46. def url_pas(data):
  47. data = re.sub(r'^\.', '\\\\.', data)
  48. data = urllib.parse.quote(data)
  49. data = data.replace('/','%2F')
  50. return data
  51. def sha224_replace(data):
  52. return hashlib.sha224(bytes(data, 'utf-8')).hexdigest()
  53. def md5_replace(data):
  54. return hashlib.md5(data.encode()).hexdigest()
  55. def get_main_skin_set(curs, flask_session, set_name, ip):
  56. if ip_or_user(ip) == 0:
  57. curs.execute(db_change('select data from user_set where name = ? and id = ?'), [set_name, ip])
  58. db_data = curs.fetchall()
  59. set_data = db_data[0][0] if db_data else 'default'
  60. else:
  61. set_data = flask_session[set_name] if set_name in flask_session and flask_session[set_name] != '' else 'default'
  62. if set_data == 'default':
  63. curs.execute(db_change('select data from other where name = ?'), [set_name])
  64. db_data = curs.fetchall()
  65. set_data = db_data[0][0] if db_data and db_data[0][0] != '' else 'default'
  66. return set_data