pyctx.py 2.4 KB
Newer Older
H
hjdhnx 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# File  : pyctx.py
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
# Date  : 2022/9/24

import json

import requests
from utils.web import *
from utils.log import logger
from utils.encode import base64Encode,baseDecode,fetch,post,request,getCryptoJS,getPreJs,buildUrl,getHome,parseText
from utils.encode import setDetail,join,urljoin2,parseText,requireCache
from utils.encode import md5 as mmd5
from utils.parser import runPy,runJScode,JsObjectWrapper,PyJsObject,PyJsString
from urllib.parse import quote
from utils.htmlParser import jsoup
from controllers.service import storage_service

def setItem(key,value):
    lsg = storage_service()
    if isinstance(key,PyJsString):
        key = parseText(str(key))
    if isinstance(value,PyJsString):
        value = parseText(str(value))
    return lsg.setItem(key,value)

def getItem(key,value=''):
    lsg = storage_service()
    if isinstance(key,PyJsString):
        key = parseText(str(key))
    if isinstance(value,PyJsString):
        value = parseText(str(value))
    return lsg.getItem(key,value)

def clearItem(key):
    lsg = storage_service()
    if isinstance(key,PyJsString):
        key = parseText(str(key))
    return lsg.clearItem(key)

def encodeUrl(url):
    # return base64Encode(quote(url))
    # return base64Encode(url)
    # print(type(url))
    if isinstance(url,PyJsString):
        # obj = obj.to_dict()
        url = parseText(str(url))
    return quote(url)

def stringify(obj):
    if isinstance(obj,PyJsObject):
        # obj = obj.to_dict()
        obj = parseText(str(obj))
    return json.dumps(obj, separators=(',', ':'), ensure_ascii=False)

def requireObj(url):
    if isinstance(url,PyJsString):
        url = parseText(str(url))
    return requireCache(url)

def md5(text):
    if isinstance(text,PyJsString):
        text = parseText(str(text))
    return mmd5(text)

py_ctx = {
'requests':requests,'print':print,'base64Encode':base64Encode,'baseDecode':baseDecode,
'log':logger.info,'fetch':fetch,'post':post,'request':request,'getCryptoJS':getCryptoJS,
'buildUrl':buildUrl,'getHome':getHome,'setDetail':setDetail,'join':join,'urljoin2':urljoin2,
'PC_UA':PC_UA,'MOBILE_UA':MOBILE_UA,'UC_UA':UC_UA,'IOS_UA':IOS_UA,
'setItem':setItem,'getItem':getItem,'clearItem':clearItem,'stringify':stringify,'encodeUrl':encodeUrl,
'requireObj':requireObj,'md5':md5
}