# coding=utf-8
# !/usr/bin/python
import sys
import requests
import json
import re
from base.spider import Spider

sys.path.append('..')
xurl = "https://netflav5.com"
headerx = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36'
}
class Spider(Spider):
    global xurl
    global headerx

    def getName(self):
        return "首页"

    def init(self, extend):
        pass

    def isVideoFormat(self, url):
        pass

    def manualVideoCheck(self):
        pass

    def homeVideoContent(self):
        videos = []
        try:
            detail = requests.get(url=xurl, headers=headerx, timeout=10)
            detail.encoding = "utf-8"
            source_match = re.search(r'type="application/json">(.*?)</script>', detail.text)
            if source_match:
                json_data = source_match.group(1)
                js1 = json.loads(json_data)
                for item in js1['props']['initialState']['censored']['docs']:
                    name = item['title_zh']
                    id = item['videoId']
                    pic = item['preview_hp']
                    remark = item['sourceDate']
                    video = {
                        "vod_id": id,
                        "vod_name": name,
                        "vod_pic": pic,
                        "vod_remarks": remark
                    }
                    videos.append(video)
            result = {'list': videos}
            return result
        except:
            pass

    def homeContent(self, filter):
        result = {}
        result['class'] = []
        result['class'].append({'type_id': '/trending?', 'type_name': '最受欢迎'})
        result['class'].append({'type_id': '/all?genre=%E5%81%B6%E5%83%8F%E8%97%9D%E4%BA%BA&', 'type_name': '偶像艺人'})
        result['class'].append({'type_id': '/censored?', 'type_name': '日本有码'})
        result['class'].append({'type_id': '/uncensored?', 'type_name': '日本无码'})
        result['class'].append({'type_id': '/chinese-sub?', 'type_name': '中文字幕'})
        result['class'].append({'type_id': '/browse/fc2ppv?', 'type_name': 'FC2PPV'})
        result['class'].append({'type_id': '/browse/1pondo?/amateur_jav?', 'type_name': '素人'})
        result['class'].append({'type_id': '/browse/un_leak?', 'type_name': 'UN-Leak'})
        result['class'].append({'type_id': '/browse/1pondo?', 'type_name': '一本道'})
        result['class'].append({'type_id': '/browse/pacopacomama?', 'type_name': 'パコパコママ 無修正'})
        result['class'].append({'type_id': '/browse/caribbeancompr?', 'type_name': 'Caribbeancompr'})
        result['class'].append({'type_id': '/browse/heyzo?', 'type_name': 'HEYZO'})
        return result

    def categoryContent(self, cid, pg, filter, ext):
        result = {}
        videos = []
        if not pg:
            pg = 1

        url = xurl + cid + "page=" + str(pg)
        detail = requests.get(url=url, headers=headerx, timeout=10)
        detail.encoding = "utf-8"
        source_match = re.search(r'type="application/json">(.*?)</script>', detail.text)
        if source_match:
            json_data = source_match.group(1)
            js1 = json.loads(json_data)
            if 'props' in js1 and 'initialState' in js1['props']:
                initial_state = js1['props']['initialState']
                for key, value in initial_state.items():
                    if value:
                        jz = key
                        jsondata = json.dumps(value)

                        break

            js2 = json.loads(jsondata)

            for item in js2['docs']:
                name = item['title_zh']
                id = item['videoId']
                pic = item['preview_hp']
                remark = item['sourceDate']
                video = {
                    "vod_id": id,
                    "vod_name": name,
                    "vod_pic": pic,
                    "vod_remarks": remark
                }
                videos.append(video)

        result['list'] = videos
        result['page'] = pg
        result['pagecount'] = 9999
        result['limit'] = 90
        result['total'] = 999999
        return result

    def detailContent(self, ids):
        did = ids[0]
        result = {}
        videos = []
        playform = ''
        playurl = ''
        detail = requests.get(url=xurl + '/video?id=' + did, headers=headerx, timeout=10)
        detail.encoding = "utf-8"
        source_match = re.search(r'type="application/json">(.*?)</script>', detail.text)
        xh = 1
        if source_match:
            json_data = source_match.group(1)
            js1 = json.loads(json_data)
            for item in js1['props']['initialState']['video']['data']['srcs']:
                playform = playform + '线路' + str(xh) + '$$$'
                playurl = playurl + item + '$$$'
                xh = xh + 1

            xh = 1
            for item in js1['props']['initialState']['video']['data']['magnets']:
                playform = playform + '磁力' + str(xh) + '$$$'
                playurl = playurl + item['fileSize'] + "$" + item['src'] + '$$$'
                xh = xh + 1
            tx = js1['props']['initialState']['video']['data']['title']
            playform = playform[:-3]
            playurl = playurl[:-3]

        videos.append({
            "vod_id": did,
            "vod_name": tx,
            "vod_pic": "",
            "type_name": "ぃぅおか🍬 คิดถึง",
            "vod_year": "",
            "vod_area": "",
            "vod_remarks": "",
            "vod_actor": "",
            "vod_director": "",
            "vod_content": "",
            "vod_play_from": playform,
            "vod_play_url": playurl
        })

        result['list'] = videos
        return result

    def playerContent(self, flag, id, vipFlags):
        result = {}
        str3 = id
        if 'magnet' in str3:
            result["parse"] = 0
        else:
            result["parse"] = 1
        result["playUrl"] = ''
        result["url"] = str3
        result["header"] = headerx
        return result

    def searchContent(self, key, quick):
        return self.searchContentPage(key, quick, '1')

    def searchContentPage(self, key, quick, page):
        videos = []
        result = {}
        if not page:
            pg = 1
        else:
            pg = page
        
        url = xurl + '/search?keyword=' + key + "&page=" + str(pg) + '&type=title'

        detail = requests.get(url=url, headers=headerx)
        detail.encoding = "utf-8"
        source_match = re.search(r'type="application/json">(.*?)</script>', detail.text)
        if source_match:
            json_data = source_match.group(1)
            js1 = json.loads(json_data)
            for item in js1['props']['initialState']['search']['docs']:
                name = item['title_zh']
                id = item['videoId']
                pic = item['preview_hp']
                remark = item['sourceDate']
                video = {
                    "vod_id": id,
                    "vod_name": name,
                    "vod_pic": pic,
                    "vod_remarks": remark
                }
                videos.append(video)
        result = {'list': videos}

        result['list'] = videos
        result['page'] = pg
        result['pagecount'] = 9999
        result['limit'] = 90
        result['total'] = 999999
        return result


    def searchContent(self, key, quick):
        return self.searchContentPage(key, quick, '1')



    def localProxy(self, params):
        if params['type'] == "m3u8":
            return self.proxyM3u8(params)
        elif params['type'] == "media":
            return self.proxyMedia(params)
        elif params['type'] == "ts":
            return self.proxyTs(params)
        return None