fix new func
This commit is contained in:
parent
55b57b9053
commit
d2d5959134
@ -11,13 +11,10 @@ class Settings(BaseSettings):
|
|||||||
items_per_user: int = 50
|
items_per_user: int = 50
|
||||||
is_debug: bool = True
|
is_debug: bool = True
|
||||||
|
|
||||||
redis_host: str = "192.168.100.30" # reids 服务器IP
|
redis_host: str = "10.10.3.10" # reids 服务器IP
|
||||||
redis_port: int = 6379 # redis 端口
|
redis_port: int = 6379 # redis 端口
|
||||||
redis_db: int = 2 # redis db
|
redis_db: int = 4 # redis db
|
||||||
|
|
||||||
mail_server: str = "smtp.exmail.qq.com" # 邮箱server
|
|
||||||
mail_user: str = "ops@kingsome.cn" # 邮箱用户名
|
|
||||||
mail_pswd: Optional[str] = os.getenv('mail_pswd') # 邮箱密码
|
|
||||||
|
|
||||||
x_token: str = "abc"
|
x_token: str = "abc"
|
||||||
|
|
||||||
|
@ -4,39 +4,19 @@ from pydantic import BaseModel
|
|||||||
from starlette.requests import Request
|
from starlette.requests import Request
|
||||||
from starlette.responses import JSONResponse
|
from starlette.responses import JSONResponse
|
||||||
from config.config import settings
|
from config.config import settings
|
||||||
|
from scritps.common.get_img import get_img
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@router.get("/img")
|
@router.get("/img")
|
||||||
async def get_img(url:string)-> JSONResponse:
|
async def get_img(request: Request,url:str)-> JSONResponse:
|
||||||
|
key=url[24:]
|
||||||
|
redis_client = request.app.state.redis
|
||||||
|
values=await redis_client.get(key)
|
||||||
|
if values:
|
||||||
|
return {"url": values}
|
||||||
|
else:
|
||||||
|
vv=await get_img(key)
|
||||||
|
return {"url": vv}
|
||||||
|
|
||||||
|
|
||||||
# class EmailSchema(BaseModel):
|
|
||||||
# email: List[EmailStr]
|
|
||||||
# body: str
|
|
||||||
# subject: str
|
|
||||||
|
|
||||||
|
|
||||||
# MAIL_CONF = ConnectionConfig(
|
|
||||||
# MAIL_USERNAME=settings.mail_user,
|
|
||||||
# MAIL_PASSWORD=settings.mail_pswd,
|
|
||||||
# MAIL_FROM=settings.mail_user,
|
|
||||||
# MAIL_PORT='465',
|
|
||||||
# MAIL_SERVER=settings.mail_server,
|
|
||||||
# MAIL_TLS=False,
|
|
||||||
# MAIL_SSL=True,
|
|
||||||
# # USE_CREDENTIALS=True
|
|
||||||
# )
|
|
||||||
|
|
||||||
|
|
||||||
@router.post("/email")
|
|
||||||
async def simple_send(email: EmailSchema) -> JSONResponse:
|
|
||||||
message = MessageSchema(
|
|
||||||
subject=email.dict().get("subject"),
|
|
||||||
# List of recipients, as many as you can pass
|
|
||||||
recipients=email.dict().get("email"),
|
|
||||||
body="<html>{}</html>".format(email.dict().get("body")),
|
|
||||||
subtype="html"
|
|
||||||
)
|
|
||||||
fm = FastMail(MAIL_CONF)
|
|
||||||
await fm.send_message(message)
|
|
||||||
return JSONResponse(status_code=200, content={"message": "email has been sent"})
|
|
||||||
|
@ -1,9 +1,40 @@
|
|||||||
import shutil
|
import shutil
|
||||||
import requests
|
import requests
|
||||||
def get_img(url):
|
from starlette.requests import Request
|
||||||
url = 'http://imgsmall.dmzj.com/h/59665/121592/0.jpg'
|
import datetime
|
||||||
|
import oss2
|
||||||
|
import os
|
||||||
|
|
||||||
|
async def get_img(request:Request,key:str)->bool:
|
||||||
|
url = f'http://imgsmall.dmzj.com/{key}'
|
||||||
headers = {'Referer': 'https://www.dmzj.com/'}
|
headers = {'Referer': 'https://www.dmzj.com/'}
|
||||||
response = requests.get(url=url, headers=headers, stream=True)
|
response = requests.get(url=url, headers=headers, stream=True)
|
||||||
with open('0.jpg', 'wb') as out_file:
|
name=key.split('/')[-1]
|
||||||
|
paths='/'.join(key.split('/')[:-1])
|
||||||
|
project='imgsmall'
|
||||||
|
now=datetime.datetime.strftime(datetime.datetime.now(),"%Y%m%d%H%M%S")
|
||||||
|
local_filename=f"/tmp/{now}_{name}"
|
||||||
|
with open(local_filename, 'wb') as out_file:
|
||||||
shutil.copyfileobj(response.raw, out_file)
|
shutil.copyfileobj(response.raw, out_file)
|
||||||
del response
|
del response
|
||||||
|
remote_filename=f"{[project]}/{paths}/{name}"
|
||||||
|
await simple_upload(local_filename,remote_filename)
|
||||||
|
remote_url=f"https://h5games-al.kingsome.cn/{remote_filename}"
|
||||||
|
redis_client = request.app.state.redis
|
||||||
|
await redis_client.set(url,remote_url)
|
||||||
|
return remote_url
|
||||||
|
|
||||||
|
|
||||||
|
async def simple_upload(local_filename,remote_filename):
|
||||||
|
AccessKeyId = os.environ.get('ALI_ACCESS_KEY_ID')
|
||||||
|
AccessKeySecret = os.environ.get('ALI_ACCESS_KEY_SECRET')
|
||||||
|
Endpoint = 'oss-cn-shanghai.aliyuncs.com'
|
||||||
|
BucketName = 'h5games-kingsome'
|
||||||
|
auth = oss2.Auth(AccessKeyId, AccessKeySecret)
|
||||||
|
bucket = oss2.Bucket(auth, Endpoint, BucketName)
|
||||||
|
bucket.put_object_from_file(remote_filename, local_filename)
|
||||||
|
|
||||||
|
|
||||||
|
async def write_redis(request:Request,key,values):
|
||||||
|
redis_client = request.app.state.redis
|
||||||
|
await redis_client.set(key,values)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user