import requests
import json
from urllib import parse
import time
import subprocess


NOW = int(time.time())

# flag = 0
flag = int(subprocess.getoutput('cat /home/uftp/popbookmark.txt'))

count = 0
# bj_list = []


# Ding !!!!!
def send_message(title, text):
# ���求的URL��WebHook地址
        webhook = 'https://oapi.dingtalk.com/robot/send?access_token=4b8e7de0defb55fdf001b6c928b258512f9af6ebbb565713e834c97d7f81f730'
        #��建���求头部
        header = {
                'Content-Type': 'application/json',
                'Charset': 'UTF-8'
        }
        message = {
                'msgtype': 'markdown',
                'markdown': {
                        'title': title,
                        'text': text
                }
        }

        message = json.dumps(message)

        info = requests.post(url=webhook,data=message,headers=header)
        # print(info.text)

url = "https://www.popkontv.com/api/proxy/bookmark/v1/list"

payload = json.dumps({
  "castStatus": "on",
  "ordType": 3,
  "pageNum": 1,
  "pageSize": 300,
  "partnerCode": "P-00001",
  "signId": "rudaks12"
})
headers = {
  'Accept': 'application/json, text/plain, */*',
  'Accept-Encoding': 'gzip, deflate, br, zstd',
  'Accept-Language': 'en-US,en;q=0.9',
  'Authorization': 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXFfbm8iOiI4Y0lTSU44dVUyYjMwM01LSzVxeVp3PT0iLCJ1c2VyX2lkIjoiQi9pUVF1ZkFyODRlSXh1RVlHWWZYdz09Iiwic2NvcGUiOlsicmVhZCJdLCJleHAiOjE3MTE2MzkyMzUsImp0aSI6IjhkODIxNWIxLTM5MmItNDFlZi05N2E2LTQyNmI3ZDI4NWU0MiIsImNsaWVudF9pZCI6ImVubS13ZWIifQ.fGvMVYjyIuKCsxd_AZH9MTaM8vwZ732ytNav2yPocmqV2e3mEtAKqxPlSFANx427gM_5SRKPuTchhgx4cLLwyFWfxt0wAnYUdtldDuqA5oHYUpAxkc48uSXfc3Zf7-j5F3ZPTqr3pdPXegpaipI0mw1cXF6CNpVnLAnHj3PQz7wMQdesS-9ygGRI13Ws411vbBJWLTKSH070p4DltGXPZaQOJiSZ47cdXlyjMbq7GzR83-lQGU7O7X-2RwBNb1UVyqrOfkkf8cfLqX79uTyvAF6TWEb-W2t3-FRJai_vW0GJwnxnlF7h6lTjK8bIk5zdenUOy-SkLsptQ6LLUrUGCA',
  'Connection': 'keep-alive',
  'Content-Length': '102',
  'Content-Type': 'application/json',
  'Cookie': 'user-ip=U2FsdGVkX1%2FMrH6LIbHB7FOrXLKAR0%2BgxdvWTn2XG1I%3D; whatap_user_id_34274=x4ponf1kfceiqq; _ga=GA1.1.1053212589.1709385989; _gcl_au=1.1.406764436.1709386075; redirectUrl=%2Fbookmark; nextVideoID=20039; is7days=true; _clck=tn9ews%7C2%7Cfkf%7C0%7C1522; whatap_sesion_max_expired_34274=Wed, 27 Mar 2024 19:20:18 GMT; whatap_session_id_34274=z280aapn3527nd; whatap_is_collect_session_34274=true; user=U2FsdGVkX1%2BnNHUnQhdobE%2BS6328tvIt8fMdyP1rGsf5HaJvgxi%2FoCZ2kkbed59bMsuTItvSHO4cgdA6GqERqvOphoPdt7lM5nt6PjVhCeT8jrOt9cVjTi%2FhuF6Hz%2FOItKHPoeTuJ2qhIZzR0Xm%2FMAxW39E0GiiruC3B%2B49kbu7A4ejBI6NHE2nrL2vbzC7naoBifYa22cEI2sb6yjYCDJGUlBrYzFqHCEFJQer%2Fnd2QJKQnhoIbESLZiVOdwgqyvozo9TRRtg8WcTmL52u8TfYHvqy8apg%2Bg7H%2FBrjmk3vXtwpEttl6K7YYJvZDx6Zw; auth-tk=U2FsdGVkX19wJwx4%2BvMSXKeeJO2pCrUEImQmC1v9mYQ0pIT3ErxqxbArdm1romk%2B0KtuGcn%2F7HW3Yhm1WAdaANP2NK%2BxK57B8AHpD%2FLHOY1MRR5KB6EUiROGi%2FcgtvywwJIq4KksgXyXllzQM9Xbvlkbkd2ZatlSP%2BAvHQhwzXcHDc2MTeU8E9yLirW1RqmyOl8xotw76bB17c5CyfcHE1EPGG3wuUdWAdo73tT2CqbItnpsPZ%2BG41XuHSufosJj4iaHA5mncj%2FpM5irUe0N%2BGzNnx7d4wbSWlKsQX5m%2BCrbJO9uHaWw8ddHaHmontvkx6IXAdZjE%2BPSFvGFzhUL%2Fjj%2FL4ij%2F4Brtev78TlXqlFKrN%2BBhFsgujNNNvyl9%2BVrtGcbdDoM3p07pVEF%2BDk7kwykNUOzNpfTI9U2rq1AoJFmjglkC%2FyLL%2BCZq4LMdrceqVEdZZLS%2FYZh45NgKDmPAuZXJ1%2FI2rsQAHklUVlDfrBHarQoZE24%2FmN8xz9c3LND0TH3CSFC4jT5%2FqnCrWL8Must3jMaPpxBJN84FwGQaiWHF7a2Wo6FX74hRi8M7%2FIVv8PaW%2FzF84Awu14JGBoUE6KVpKG7Do162tiXdjiB7srEEJVaAthMzY8Ono1cpqTXcwioMRCRFTh8qfhlkFrtB0M544ocNHNj%2B3LuTEiLrELBg28Vp6mDH5fj%2FkUtKcRgcjgJgKt1aQhzWg8i2VJdIwTBvN5NPQjAhc8F7%2BmHgc0Rw6e56wp34xmFuywS6EOVQOjC6mij64QOkPwsnw6XnHjmntJt6WUikM8rhj%2FtPAHAxC1ZYl36SvMSuIK685dVa3PwmUwCC6Ohm0SlkgBTPQ%3D%3D; lvl-chk=U2FsdGVkX1%2FTb7etIiT2LvzUSilRRhP%2BPHMUaUNbW%2FhICVqsmYDpR5qBTVxlZXgClaewQqhK5sGuY9yzSABKgg%3D%3D; _ga_RY3TF4LTTB=GS1.1.1711552819.37.1.1711552860.19.0.0; whatap_is_page_load_complete_34274=true; _clsk=1m7vw67%7C1711552880450%7C12%7C1%7Cl.clarity.ms%2Fcollect; _ga_42MLB56KCE=GS1.1.1711552819.46.1.1711552880.60.0.0; _ga_4391KKZ1EB=GS1.1.1711552819.46.1.1711552880.60.0.929765944; _ga_GB562GGVVF=GS1.1.1711552819.43.1.1711552880.60.0.0',
  'Front-Client-IP': '114.141.28.41',
  'Host': 'www.popkontv.com',
  'IsNew': 'true',
  'Origin': 'https://www.popkontv.com',
  'Referer': 'https://www.popkontv.com/bookmark?typeNum=3',
  'Sec-Fetch-Dest': 'empty',
  'Sec-Fetch-Mode': 'cors',
  'Sec-Fetch-Site': 'same-origin',
  'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36',
  'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',
  'sec-ch-ua-mobile': '?0',
  'sec-ch-ua-platform': '"macOS"'
}


def getBjList(url, headers, data):
        bj_list = []
        count = 0
        try:
                content = requests.post(url=url, headers=headers, data=payload).text
                content = json.loads(content)
                for bookmark in content['data']['favoriteList']:
                        if bookmark['castType'] != 0:
                                count += 1
                                bj_list.append({
                                        'mcSignId':       bookmark['mcSignId'],
                                        'mcPartnerCode':bookmark['mcPartnerCode'],
                                        'onCastStartdateCode': bookmark['onCastStartdateCode'],
                                        })
                return bj_list, count
        except:
                err = '# ERROR'
                return 404, err

bj_list, count = getBjList(url, headers, payload)

if bj_list != 404:
        date = time.strftime('%H:%M', time.localtime())
        text = '# {}\n# *{} ---> {}*\n'.format(date, flag, count)
        if flag != count:
                if flag > count:
                        for bj in bj_list:
                                text += '- {}\n'.format(bj['mcSignId'])
                        send_message('popBookmark', text)
                if flag < count:
                        bj_exist = []
                        with open ('/home/uftp/popbjList.json', 'r') as f:
                                bjList = json.load(f)
                        # 将正在播出的bj排除
                        for bj in bjList:
                                bj_exist.append(bj['mcSignId'])
                        for bj in bj_list:
                                if bj['mcSignId'] not in bj_exist:
                                        text += '- {}\n'.format(bj['mcSignId'])
                                        text += '> - {}\n'.format(bj['mcPartnerCode'])
                                        text += '> - {}\n'.format(bj['onCastStartdateCode'])
                        send_message('Bookmark-popnew', text)
                subprocess.getstatusoutput('echo {} > /home/uftp/popbookmark.txt'.format(count))
                # 将bj_list作为json格式文件写入popbjList.json
                with open('/home/uftp/popbjList.json', 'w') as f:
                        json.dump(bj_list, f)
                # 查看该脚本是否添加到crontab中
                job = subprocess.getoutput('crontab -l | grep getpopBookmark')
                if 'getpopBookmark' not in job:
                        subprocess.getstatusoutput('( crontab -l | grep -v getpopBookmark) | crontab - && (crontab -l | cat; echo "*/2 * * * * python3 /home/uftp/getpopBookmark.py >/dev/null 2>&1") | crontab -')
        else:
                addition = ''
                bj_exist = []
                with open('/home/uftp/popbjList.json', 'r') as f:
                        bjList = json.load(f)
                # 将正在播出的bj排除
                for bj in bjList:
                        bj_exist.append(bj['mcSignId'])
                for bj in bj_list:
                                if bj['mcSignId'] not in bj_exist:
                                        addition += '- {}\n'.format(bj['mcSignId'])
                                        addition += '> - {}\n'.format(bj['mcPartnerCode'])
                                        addition += '> - {}\n'.format(bj['onCastStartdateCode'])
                if addition != '':
                        text += addition
                        send_message('Bookmark-popnew', text)
                        with open('/home/uftp/popbjList.json', 'w') as f:
                                json.dump(bj_list, f)
else:
        send_message('popBookmark', count)

# print(count)
