From 24f3dd22a5ed403b7bed605952e01d8b4d0db182 Mon Sep 17 00:00:00 2001 From: yulong Date: Thu, 6 Nov 2025 13:53:35 +0000 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=20jtxtv10/lib/JWDJ.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jtxtv10/lib/JWDJ.py | 329 -------------------------------------------- 1 file changed, 329 deletions(-) delete mode 100644 jtxtv10/lib/JWDJ.py diff --git a/jtxtv10/lib/JWDJ.py b/jtxtv10/lib/JWDJ.py deleted file mode 100644 index c6c8b6f..0000000 --- a/jtxtv10/lib/JWDJ.py +++ /dev/null @@ -1,329 +0,0 @@ -# coding=utf-8 -# !/usr/bin/python - -""" - -作者 丢丢喵推荐 🚓 内容均从互联网收集而来 仅供交流学习使用 版权归原创者所有 如侵犯了您的权益 请通知作者 将及时删除侵权内容 - ====================Diudiumiao==================== - -""" - -from Crypto.Util.Padding import unpad -from Crypto.Util.Padding import pad -from urllib.parse import unquote -from Crypto.Cipher import ARC4 -from urllib.parse import quote -from base.spider import Spider -from Crypto.Cipher import AES -from datetime import datetime -from bs4 import BeautifulSoup -from base64 import b64decode -import urllib.request -import urllib.parse -import datetime -import binascii -import requests -import base64 -import json -import time -import sys -import re -import os - -sys.path.append('..') - -xurl = "https://djw1.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 extract_middle_text(self, text, start_str, end_str, pl, start_index1: str = '', end_index2: str = ''): - if pl == 3: - plx = [] - while True: - start_index = text.find(start_str) - if start_index == -1: - break - end_index = text.find(end_str, start_index + len(start_str)) - if end_index == -1: - break - middle_text = text[start_index + len(start_str):end_index] - plx.append(middle_text) - text = text.replace(start_str + middle_text + end_str, '') - if len(plx) > 0: - purl = '' - for i in range(len(plx)): - matches = re.findall(start_index1, plx[i]) - output = "" - for match in matches: - match3 = re.search(r'(?:^|[^0-9])(\d+)(?:[^0-9]|$)', match[1]) - if match3: - number = match3.group(1) - else: - number = 0 - if 'http' not in match[0]: - output += f"#{match[1]}${number}{xurl}{match[0]}" - else: - output += f"#{match[1]}${number}{match[0]}" - output = output[1:] - purl = purl + output + "$$$" - purl = purl[:-3] - return purl - else: - return "" - else: - start_index = text.find(start_str) - if start_index == -1: - return "" - end_index = text.find(end_str, start_index + len(start_str)) - if end_index == -1: - return "" - - if pl == 0: - middle_text = text[start_index + len(start_str):end_index] - return middle_text.replace("\\", "") - - if pl == 1: - middle_text = text[start_index + len(start_str):end_index] - matches = re.findall(start_index1, middle_text) - if matches: - jg = ' '.join(matches) - return jg - - if pl == 2: - middle_text = text[start_index + len(start_str):end_index] - matches = re.findall(start_index1, middle_text) - if matches: - new_list = [f'{item}' for item in matches] - jg = '$$$'.join(new_list) - return jg - - def homeContent(self, filter): - result = {"class": []} - - detail = requests.get(url=xurl + "/all/", headers=headerx) - detail.encoding = "utf-8" - res = detail.text - - doc = BeautifulSoup(res, "lxml") - - soups = doc.find_all('section', class_="container items") - - for soup in soups: - vods = soup.find_all('li') - - for vod in vods: - - id = vod.find('a')['href'] - - name = vod.text.strip() - - result["class"].append({"type_id": id, "type_name": "" + name}) - - return result - - def homeVideoContent(self): - pass - - def categoryContent(self, cid, pg, filter, ext): - result = {} - videos = [] - - if pg: - page = int(pg) - else: - page = 1 - - url = f'{cid}page/{str(page)}/' - detail = requests.get(url=url, headers=headerx) - detail.encoding = "utf-8" - res = detail.text - doc = BeautifulSoup(res, "lxml") - - soups = doc.find_all('section', class_="container items") - - for soup in soups: - vods = soup.find_all('li') - - for vod in vods: - - name = vod.find('img')['alt'] - - ids = vod.find('a', class_="image-line") - id = ids['href'] - - pic = vod.find('img')['src'] - - remark = self.extract_middle_text(str(vod), 'class="remarks light">', '<', 0) - - 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 = [] - xianlu = '' - bofang = '' - - if 'http' not in did: - did = xurl + did - - res = requests.get(url=did, headers=headerx) - res.encoding = "utf-8" - res = res.text - doc = BeautifulSoup(res, "lxml") - - url = 'https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1732707176882/jiduo.txt' - response = requests.get(url) - response.encoding = 'utf-8' - code = response.text - name = self.extract_middle_text(code, "s1='", "'", 0) - Jumps = self.extract_middle_text(code, "s2='", "'", 0) - - content = '摸鱼:不带脑子爽就完了!📢' + self.extract_middle_text(res,'class="info-detail">','<', 0) - - remarks = self.extract_middle_text(res, 'class="info-mark">', '<', 0) - - year = self.extract_middle_text(res, 'class="info-addtime">', '<', 0) - - if name not in content: - bofang = Jumps - xianlu = '1' - else: - soups = doc.find('div', class_="ep-list-items") - - soup = soups.find_all('a') - - for sou in soup: - - id = sou['href'] - - name = sou.text.strip() - - bofang = bofang + name + '$' + id + '#' - - bofang = bofang[:-1] - - xianlu = '专线' - - videos.append({ - "vod_id": did, - "vod_remarks": remarks, - "vod_year": year, - "vod_content": content, - "vod_play_from": xianlu, - "vod_play_url": bofang - }) - - result['list'] = videos - return result - - def playerContent(self, flag, id, vipFlags): - - res = requests.get(url=id, headers=headerx) - res.encoding = "utf-8" - res = res.text - - url = self.extract_middle_text(res, '"wwm3u8":"', '"', 0).replace('\\', '') - - result = {} - result["parse"] = 0 - result["playUrl"] = '' - result["url"] = url - result["header"] = headerx - return result - - def searchContentPage(self, key, quick, pg): - result = {} - videos = [] - - if pg: - page = int(pg) - else: - page = 1 - - url = f'{xurl}/search/{key}/page/{str(page)}/' - detail = requests.get(url=url, headers=headerx) - detail.encoding = "utf-8" - res = detail.text - doc = BeautifulSoup(res, "lxml") - - soups = doc.find_all('section', class_="container items") - - for soup in soups: - vods = soup.find_all('li') - - for vod in vods: - - name = vod.find('img')['alt'] - - ids = vod.find('a', class_="image-line") - id = ids['href'] - - pic = vod.find('img')['src'] - - remark = self.extract_middle_text(str(vod), 'class="remarks light">', '<', 0) - - 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 searchContent(self, key, quick, pg="1"): - 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 - - - - - - -