pyctx.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. # File : pyctx.py
  4. # Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
  5. # Date : 2022/9/24
  6. import json
  7. import requests
  8. from utils.web import *
  9. from utils.log import logger
  10. from utils.encode import base64Encode,base64Decode,fetch,post,request,getCryptoJS,getPreJs,buildUrl,getHome,parseText,atob
  11. from utils.encode import setDetail,join,urljoin2,parseText,requireCache,base64ToImage
  12. from utils.encode import md5 as mmd5
  13. from utils.parser import runPy,runJScode,JsObjectWrapper,PyJsObject,PyJsString
  14. from urllib.parse import quote
  15. from utils.htmlParser import jsoup
  16. from controllers.service import storage_service
  17. def setItem(key,value):
  18. lsg = storage_service()
  19. if isinstance(key,PyJsString):
  20. key = parseText(str(key))
  21. if isinstance(value,PyJsString):
  22. value = parseText(str(value))
  23. return lsg.setItem(key,value)
  24. def getItem(key,value=''):
  25. lsg = storage_service()
  26. if isinstance(key,PyJsString):
  27. key = parseText(str(key))
  28. if isinstance(value,PyJsString):
  29. value = parseText(str(value))
  30. return lsg.getItem(key,value)
  31. def clearItem(key):
  32. lsg = storage_service()
  33. if isinstance(key,PyJsString):
  34. key = parseText(str(key))
  35. return lsg.clearItem(key)
  36. def encodeUrl(url):
  37. # return base64Encode(quote(url))
  38. # return base64Encode(url)
  39. # print(type(url))
  40. if isinstance(url,PyJsString):
  41. # obj = obj.to_dict()
  42. url = parseText(str(url))
  43. return quote(url)
  44. def stringify(obj):
  45. if isinstance(obj,PyJsObject):
  46. # obj = obj.to_dict()
  47. obj = parseText(str(obj))
  48. return json.dumps(obj, separators=(',', ':'), ensure_ascii=False)
  49. def requireObj(url):
  50. if isinstance(url,PyJsString):
  51. url = parseText(str(url))
  52. return requireCache(url)
  53. def md5(text):
  54. if isinstance(text,PyJsString):
  55. text = parseText(str(text))
  56. return mmd5(text)
  57. py_ctx = {
  58. 'requests':requests,'print':print,'base64Encode':base64Encode,'base64Decode':base64Decode,
  59. 'log':logger.info,'fetch':fetch,'post':post,'request':request,'getCryptoJS':getCryptoJS,
  60. 'buildUrl':buildUrl,'getHome':getHome,'setDetail':setDetail,'join':join,'urljoin2':urljoin2,
  61. 'PC_UA':PC_UA,'MOBILE_UA':MOBILE_UA,'UC_UA':UC_UA,'IOS_UA':IOS_UA,
  62. 'setItem':setItem,'getItem':getItem,'clearItem':clearItem,'stringify':stringify,'encodeUrl':encodeUrl,
  63. 'requireObj':requireObj,'md5':md5,'atob':atob,'base64ToImage':base64ToImage
  64. }