from spider import Spider, SpiderItemType, SpiderSource, SpiderDanmaku, SpiderItem, SpiderPlayURL
from proxy import get_proxy_url
from urllib.parse import urlparse
from danmaku import get_danmaku_url
import requests
import hashlib
import time
import re
import json
import base64
import urllib
import difflib
import threading
from bs4 import BeautifulSoup
from utils import get_image_path
import xbmcaddon
_ADDON = xbmcaddon.Addon()
base_params = {
'pcode': '010110005',
'version': '2.0.5',
'devid': hashlib.md5(str(time.time()).encode()).hexdigest(),
'sys': 'android',
'sysver': 11,
'brand': 'google',
'model': 'Pixel_3_XL',
'package': 'com.sevenVideo.app.android'
}
base_headers = {
'User-Agent': 'okhttp/3.12.0',
}
class Spideryingshi(Spider):
def name(self):
return '影视'
def logo(self):
return get_image_path('yingshi.png')
def hide(self):
return not _ADDON.getSettingBool('data_source_yingshi_switch')
def is_searchable(self):
return True
def list_items(self, parent_item=None, page=1):
if parent_item is None:
items = []
items.append(
SpiderItem(
type=SpiderItemType.Directory,
id='dianying',
name='电影',
params={
'type': 'category',
'pf': 'bw'
},
))
items.append(
SpiderItem(
type=SpiderItemType.Directory,
id='lianxuju',
name='剧集',
params={
'type': 'category',
'pf': 'bw'
},
))
items.append(
SpiderItem(
type=SpiderItemType.Directory,
id='dongman',
name='动漫',
params={
'type': 'category',
'pf': 'bw'
},
))
items.append(
SpiderItem(
type=SpiderItemType.Directory,
id='zongyi',
name='综艺',
params={
'type': 'category',
'pf': 'bw'
},
))
return items, False
elif parent_item['params']['type'] == 'category':
items = []
url = 'https://beiwo360.com/bs/{0}/page/{1}/'.format(parent_item['id'],page)
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"
}
r = requests.get(url, headers=header)
soup = BeautifulSoup(r.text, 'html.parser')
data = soup.select('ul.myui-vodlist.clearfix > li')
maxpage = int(soup.select('ul.myui-page.text-center.clearfix > li.visible-xs')[0].get_text().split('/')[-1])
for video in data:
vid = video.select('a')[0].get('href')
cover = video.select('a')[0].get('data-original')
name = video.select('a')[0].get('title').strip()
remark = video.select('a > span.pic-text.text-right')[0].get_text().strip().replace(' ','|')
items.append(
SpiderItem(
type=SpiderItemType.Directory,
name='{0}/[{1}]'.format(name, remark),
id=vid,
cover=cover,
params={
'type': 'video',
'pf': 'bw'
},
))
if page < maxpage:
has_next_page = True
else:
has_next_page = False
return items, has_next_page
elif parent_item['params']['type'] == 'video':
if parent_item['params']['pf'] == 'qq':
ts = int(time.time())
params = base_params.copy()
params['ids'] = parent_item['id']
params['sj'] = ts
headers = base_headers.copy()
headers['t'] = str(ts)
url = 'http://api.kunyu77.com/api.php/provide/videoDetail'
headers['TK'] = self._get_tk(url, params, ts)
r = requests.get(url, params=params, headers=headers)
detail = r.json()['data']
url = 'http://api.kunyu77.com/api.php/provide/videoPlaylist'
headers['TK'] = self._get_tk(url, params, ts)
r = requests.get(url, params=params, headers=headers)
episodes = r.json()['data']['episodes']
items = []
for episode in episodes:
sources = []
danmakus = []
for playurl in episode['playurls']:
sources.append(
SpiderSource(
playurl['playfrom'],
{
'playfrom': playurl['playfrom'],
'url': playurl['playurl'],
'pf': 'qq'
},
))
if playurl['playfrom'] in [
'qq', 'mgtv', 'qiyi', 'youku', 'bilibili'
]:
danmakus.append(
SpiderDanmaku(
playurl['playfrom'],
get_danmaku_url(playurl['playurl']),
)
)
items.append(
SpiderItem(
type=SpiderItemType.File,
name=episode['title'].strip(),
cover=detail['videoCover'],
description=detail['brief'].replace('\u3000', '').replace('<p>', '').replace('</p>','').strip(),
cast=detail['actor'].replace(' ', '').split('/'),
director=detail['director'],
area=detail['area'].strip(),
year=int(detail['year'].strip()),
sources=sources,
danmakus=danmakus,
))
return items, False
if parent_item['params']['pf'] == 'bw':
items = []
url = 'https://beiwo360.com{}'.format(parent_item['id'])
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
"Referer": 'https://beiwo360.com/'
}
r = requests.get(url, headers=header)
soup = BeautifulSoup(r.text, 'html.parser')
cover = parent_item['cover']
desc = soup.select('div.col-pd.text-collapse.content > span.data')[0].get_text().strip().replace('\u3000\u3000', '\n')
infos = soup.select('div.myui-content__detail > p.data')
for info in infos:
content = info.get_text()
if content.startswith('导演'):
dire = content.strip()[3:].strip('\xa0')
if content.startswith('主演'):
cast = content.strip()[3:].strip('\xa0').split('\xa0')
if content.startswith('分类'):
area = content.strip().split(':')[2][:-2]
year = content.strip().split(':')[3]
plugin.video.ysdqg.zip
需积分: 0 84 浏览量
更新于2023-01-25
收藏 888KB ZIP 举报
"plugin.video.ysdqg.zip" 这个文件名表明它是一个ZIP压缩文件,通常用于存储多个相关的文件或目录。在IT行业中,这样的文件格式常用于软件分发、备份或者资源共享,因为它可以将多个文件打包成一个单一的可下载单元,便于传输和管理。
ZIP文件内的"plugin.video.ysdqg"可能是一个视频插件,这在智能电视、媒体中心应用(如Kodi)或者基于Web的流媒体服务中很常见。插件是扩展软件功能的一种方式,它们可以提供额外的服务,比如访问特定的视频源或者增强用户体验。
在Kodi这样的开源媒体中心平台上,"plugin.video"类型的插件特别常见,它们允许用户接入各种在线视频服务,观看直播电视、点播电影、电视剧等。"ysdqg"可能是这个插件的开发者或者服务提供商的标识,或者是某个特定功能的缩写。由于标签为空,我们无法获得更多信息,但可以推测这个插件可能是为特定的视频内容或服务设计的。
为了详细解释,我们来探讨一下视频插件的工作原理。视频插件通常包含XML配置文件,定义了插件的元数据和访问内容的方式;脚本文件,可能用Python或其他语言编写,负责处理与服务器的交互;以及可能的资源文件,如图标、语言文件等。这些文件打包在一起,形成了我们看到的"plugin.video.ysdqg"。
当用户在Kodi中安装这个插件后,它会扩展Kodi的功能,允许用户通过用户界面访问"ysdqg"提供的视频内容。插件可能需要用户输入特定的登录信息,或者根据其设置自动获取内容。值得注意的是,这些插件的安全性和合法性取决于它们的来源和服务,用户应该只从可信任的源安装插件,以避免潜在的风险,如隐私泄露或恶意软件。
"plugin.video.ysdqg.zip"很可能是一个用于扩展视频流媒体功能的插件,它可能提供定制化的视频源或服务,让用户能够通过Kodi等平台访问。由于缺乏具体的标签信息,我们无法得知更多关于插件内容或服务的细节,但可以肯定的是,正确安装和使用此类插件能丰富用户的媒体娱乐体验。
瞎搞爱折腾
- 粉丝: 0
- 资源: 8
最新资源
- py-apple-controller-四足机器人
- py-apple-bldc-quadruped-robot-四足机器人
- 四足机器人-四足机器人
- asm-西电微机原理实验
- 四足机器人行走机制设计与应用解析
- 探索POINTS 1.5视觉思考模型:开启高效思考之门
- 支持 DELPHI 12.2的RXLIB 控件
- game_patch_1.29.13.13020.pak
- 4S店车辆管理系统.zip
- J2EE在在线项目管理与任务分配中的应用_411v2rh8_226-wx.zip
- “课件通”中小学教学课件共享平台.zip
- Java Web的租房管理系统(编号:22787207).zip
- Java大学生创新能力培养平台的设计与实现(编号:49116136).zip
- JavaWeb图书管理系统(编号:29027118)(1).zip
- springboot4S店车辆管理系统 LW PPT.zip
- spingboot茶文化推广系统(编号:3018432).zip