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