web.py 3.1 KB
Newer Older
H
hjdhnx 已提交
1 2 3 4
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# File  : web.py
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
H
hjdhnx 已提交
5
# Date  : 2022/9/6
H
hjdhnx 已提交
6
import os
H
hjdhnx 已提交
7

H
hjdhnx 已提交
8
from flask import request,jsonify
H
hjdhnx 已提交
9 10
import hashlib
from time import time
H
hjdhnx 已提交
11
# from utils.cfg import cfg
H
hjdhnx 已提交
12
from controllers.service import storage_service
H
hjdhnx 已提交
13

H
hjdhnx 已提交
14 15 16
MOBILE_UA = 'Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36'
PC_UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36'
UA = 'Mozilla/5.0'
H
hjdhnx 已提交
17
UC_UA = 'Mozilla/5.0 (Linux; U; Android 9; zh-CN; MI 9 Build/PKQ1.181121.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36'
H
hjdhnx 已提交
18
IOS_UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'
H
hjdhnx 已提交
19 20 21 22
headers = {
        'Referer': 'https://www.baidu.com',
        'user-agent': UA,
}
H
hjdhnx 已提交
23

H
hjdhnx 已提交
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
def getParmas(key=None,value=''):
    """
    获取链接参数
    :param key:
    :return:
    """
    content_type = request.headers.get('Content-Type')
    args = {}
    if request.method == 'POST':
        if 'application/x-www-form-urlencoded' in content_type or 'multipart/form-data' in content_type:
            args = request.form
        elif 'application/json' in content_type:
            args = request.json
        elif 'text/plain' in content_type:
            args = request.data
        else:
            args = request.args
    elif request.method == 'GET':
        args = request.args
    if key:
        return args.get(key,value)
H
hjdhnx 已提交
45
    else:
H
hjdhnx 已提交
46
        return args
H
hjdhnx 已提交
47

H
hjdhnx 已提交
48 49 50 51 52 53 54 55 56 57
def layuiBack(msg:str, data=None,code:int=0,count:int=0):
    if data is None:
        data = []
    return jsonify({
        'msg':msg,
        'code':code,
        'data':data,
        'count':count or len(data)
    })

H
hjdhnx 已提交
58 59 60
def md5(str):
    return hashlib.md5(str.encode(encoding='UTF-8')).hexdigest()

H
hjdhnx 已提交
61 62 63 64 65
def verfy_token(token=None):
    if not token:
        cookies = request.cookies
        token = cookies.get('token', '')
    if not token or len(str(token)) != 32:
H
hjdhnx 已提交
66
        return False
H
hjdhnx 已提交
67 68 69 70 71
    lsg = storage_service()
    # username = cfg.get('UNAME','')
    username = lsg.getItem('UNAME','')
    # pwd = cfg.get('PWD','')
    pwd = lsg.getItem('PWD','')
H
hjdhnx 已提交
72 73 74 75 76
    ctoken = md5(f'{username};{pwd}')
    # print(f'username:{username},pwd:{pwd},current_token:{ctoken},input_token:{ctoken}')
    if token != ctoken:
        return False
    return True
H
hjdhnx 已提交
77

H
hjdhnx 已提交
78 79 80 81 82
def get_interval(t):
    interval = time() - t
    interval = round(interval*1000,2)
    return interval

H
hjdhnx 已提交
83 84 85 86 87 88 89
def getHeaders(url):
    headers = {}
    if url:
        headers.setdefault("Referer", url)
    headers.setdefault("User-Agent", PC_UA)
    headers.setdefault("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9")
    headers.setdefault("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2")
H
hjdhnx 已提交
90
    return headers