123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- import requests
- from utils.UrlConfig import headers
- import json
- import pandas as pd
- from utils.DataBaseConfig import *
- def get_lower_case_name(name):
- lst = []
- for index, char in enumerate(name):
- if char.isupper() and index != 0:
- lst.append("_")
- lst.append(char)
- return "".join(lst).lower()
- def get_new_video_info(account_id, url):
- """
- url:http://192.168.1.8:8080/jeecg-boot/kuaishou/material/getNewVideoList
- 请求方式:POST
- remark: 返回 upload_time 在上次调用时间到本次调用时间内的素材(第一次调用返回5分钟前到本次调用时间的素材)
- 入参:accountId
- """
- request_data = {"accountId": account_id}
- request = requests.post(url, headers=headers, data=json.JSONEncoder().encode(request_data)).text
- request = json.loads(request)
- return request
- def get_missing_video_info(account_id, cnt, url, start_time, end_time):
- """
- url:"http://192.168.1.8:8080/jeecg-boot/kuaishou/material/getCreateZeroVideoList"
- 请求方式:POST
- remark: 视频的upload_time 在startTime 和 endTime 之间,创意关联个数为0,order by upload_time asc limit videoCnt
- 入参:
- accountId: 账户id
- videoCnt: 查询数量
- startTime: 开始时间
- endTime: 结束时间
- """
- request_data = {"accountId": account_id, "videoCnt": cnt, "startTime": start_time, "endTime": end_time}
- request = requests.post(url, headers=headers, data=json.JSONEncoder().encode(request_data)).text
- request = json.loads(request)
- return request
- def get_top_video_info(account_id, cnt, start_time, end_time, url):
- """
- url:http://192.168.1.8:8080/jeecg-boot/kuaishou/material/getHistoryTopVideoList
- 请求方式:POST
- remark: ctop_kuaishou_report_daily_material
- 整个项目维度 stat_date 在 startTime 和 endTime, order by sum(charge) desc limit num
- 入参:
- accountId: 账户id
- startTime: 开始时间
- endTime: 结束时间
- num: 查询数量
- 返回:
- {
- "code": 0,
- "data": [
- {
- "charge": 40871.123,
- "video_url": "&di=811c96e5&bp=13890",
- "photo_id": "5254011957394409468",
- "signature": "4af22090cddc32773c7707de3c652f77",
- "channel_type": 0,
- "material_type":1, --1:竖版 2:横版
- "imageList": ["09f61ca7174160c12d9a68306049ca82","46996bea84287692b3884686a52903ed"]
- }
- ],
- "message": "SUCCESS"
- """
- request_data = {"accountId": account_id, "num": cnt, "startTime": start_time, "endTime": end_time}
- request = requests.post(url, headers=headers, data=json.JSONEncoder().encode(request_data)).text
- request = json.loads(request)
- return request
- def get_campaign_and_group_name_rule(account_id):
- sql = """select campaign_name, group_name
- from ctop_ai_kuaishou_advertiser_strategy
- where account_id = %s
- and status = 1
- limit 1
- """ % account_id
- df = pd.read_sql(sql, engine)
- if df.empty:
- return None, None
- campaign_name = df['campaign_name'].values[0]
- group_name = df['group_name'].values[0]
- return campaign_name, group_name
|