-
-
Notifications
You must be signed in to change notification settings - Fork 40
如何增加目前还不支持的站点配置
Rick Lee edited this page Feb 8, 2023
·
5 revisions
在配置文件中,比较复杂的是目标站点的相关配置,以HDHome的配置为例,说明一下具体的配置规则。在进行站点配置时需要遵循以下几个原则。
- 在获取到各个站点的数据后,会对数据按统一格式进行规范。视频的属性分成了
category
、videoType
、videoCodec
、audioCodec
、source
、resolution
。 - 上传页面默认只有分类是多属性混合的。内站的分类经常是category和其他几个视频的属性混合在一起的,比如
电影 Remux
就是category和videoType混合在一起的一个例子。其他属性的话一般都比较明确,可以跟规范数据中定义的属性直接进行匹配。但是也有特殊的情况,category可以直接匹配,但是videoType是多个属性混合在一起,比如BHD。这个时候需要将category和videoType的值进行对调。后续筛选的话都是默认对category进行筛选。 - 筛选的目的是category配合其他属性,将站点上传页表单中分类的唯一值筛选出来,并对下拉选择框进行赋值。所以即便其他属性可以直接匹配,但是为了配合category筛选出唯一的一个值,需要其他属性除了配置自己的唯一值外,还需要将属性对应的category的值也加上。比如HDH的上传表单里,2160P对应的option value是1,需要将这个值放在数组的第一位(很重要)。数组后几位也需要将分类中的
Movies UHD Blu-ray
和Movies 2160p
这两个值加入数组内。因为这两个分类的视频分辨率就是2160P。其他属性的配置也是同理,直到可以互相取交集取到唯一的分类为止。 - 如果规范数据中的几个属性在站点内没有对应的表单需要填入,则不需要配置
selector
属性,只需要配置map即可。map里遵循的原则同上一条。 - 每个属性中map下的属性不同的站点可能会有不同的增减,比如BHD中,bluray又被详细分成了BD100、BD66、BD50等,这个时候在map中加入这些项即可。在对应站点target数据处理中也需要做好对应的处理。
- 内站中有些站需要勾选标签,目前仅支持了
国语
、中字
、粤语
、HDR10
、HDR10+
、DolbyVision
、DIY
。配置中标签属性跟上对应的CSS选择器即可。 - 每新增一个站点,需要增加对应的快速检索配置,具体配置方式见示例。
- icon的base64生成方式: 在新建完对应站点的配置文件后,执行命令:
node ./scripts/icoFetcher.js HDHome(站点配置文件名)
- seedDomSelector可以指定脚本生成的DOM的插入位置
- icon的base64生成方式: 在新建完对应站点的配置文件后,执行命令:
HDHome:
url: 'https://hdhome.org'
host: hdhome.org
siteType: NexusPHP
icon: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAAB3RJTUUH5QQKBykVPLQLsAAABCVJREFUOMuVlctvVVUYxX97n3PPvb0t0BZKSKW0FdpSDCAkViMmjU9kAImaMDVGnOo/4IApGo0xccLQmYkgJhhfCSA4sgUJjz5JsbVwS/q6lN7bc/brc3AanGiiO9mjb+1k7d/KXlvxP9ax04tsfyKmMucatGYrsAysnHln82ON+rfDB967RXU+Zc/hroZSSTeXErVNKfq0Ym8cq6cizQ7rZKyeyYdxxFQ9Fc69u5kYYLxi8Q4aSiq5Mp2VhmZse93SGxS7g7BHK/qiiO44Ui1xRBxppZUC6+TpWMvVjw4WP/n6QeAcoE58s8xCVXZtKKmXTwyUD+/cHHWlTppTK80La7Lxh8ksWloLaKUoFWCwK+HJlhgBRIRI8WtXS3S8oFWlIdHElYWwt6msT0UFdeTStGEpjTnSWySJQIBqKpwfz/AiiFWMzjs2FTWD3QUmFz0/T2StFzxxMcrpxcAhYJ8XmJh3LNQCg90J09VAZ3PEoc4CN+Ys4wsOreBmxZFZ2L8t5uo9y6W7ZkOtJluBPwG0dVzNrCxlRjAOjBVEYHjWMjRr2VLWvNidUECRGcE6wTjBeGGpFgieFgV9CnjliwW0MWHEmjBjTMCagLUCwKO1wPmRlPlVz0BHgYPtMcYEjBXcusYHwXtpEpE9v99ew3tBX3x/S81YGXEu4HzA+wDrwEcrhh/HUwoaXu8t0lZWWJtrRCB4wftACNK/qzPZGIKgj56ex1q5YYxYawRrBRHBeyHNhJ9GUkYfOHraYl7aVUS84JyAgPe52+ClVylpQQT9qBbwPoxZEx46G3A2dxg8eBe4v+w4c61O3QRe6yuye0uMMYIA3gnWBLwLHRJkByLoNBMyIxVj5K5ZZygCzkvOzAhXJte4OJbS2hjxxv4GmhIIQXKNDTgnjc5Jf6wCsXMQhCpaJpSSZx4Dd4I1gkJYyeCroRr7ticMdBWp1sPfmkxQSmIvau9vS41o74VStlZzVkZsFoIxOXDvBJMFjMkxjM4azg7XiDS82l9iY0njbH5lawLehv7u0mqLvn6ynVUSrJMxa+WRMzlw5/OArMl3lga+HV5leCqjIdEkETgnmPW5s7IteGnXkKflvUxYK8utZU0hgnKs8OshORvwLlBZcnx5eYVq3aOUwjtZnwvOyR8SWIwBerYWKBfV7As9xeXne0pdm8qa48810dEa8fn3Ve4vO7TK3+rlkTX57lotvPVsky4X9YzzXItidV0JZ0Pq52KAYwfKbGiMaosP7egvt+sHLt6s5Q6CSGokeE8mmorSTNaMjF0YSWfeHGgqHT3YePnkmepQT2diAZn8uD0v2Ia3p+hrU9xbkcGCklME2kQxh2IyKeibkeIWSk2pSC8prR4iuDufdvxjMT9u7O4PpkGhEXYi0opS0yjmAX/3s87//E38BWXDuj9j0ViVAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTA0LTEwVDA3OjQxOjIxKzAwOjAws0DWvgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wNC0xMFQwNzo0MToyMSswMDowMMIdbgIAAAAASUVORK5CYII=
asSource: false
asTarget: true
uploadPath: /upload.php
seedDomSelector: '#top~table:first>tbody>tr:nth-child(5)'
# 快速检索相关配置
search:
# 检索路径
path: /browse.php
# imdb检索对应的下拉框option的value
imdbOptionKey: '4'
# 名称检索对应的下拉框option的value
nameOptionKey: '0'
# imdb替换器
replaceKey: ['tt','imdb']
# 检索需要携带的参数 默认按种子大小 从大到小排序
params:
# 携带检索参数的key
search: '{imdb}'
# 如果imdb跟名称检索所对应的检索key不一致 ,则需要单独增加名称检索key
search: '{name}'
sort: '5'
type: desc
c: M
# 检索类型
search_area: '{optionKey}'
# 配置检索结果对应字段的选择器,用于检索时判断是否是同一个种子
result:
list: '.torrents>tbody>tr'
url: '.torrentname td a[href*="details.php?id="]'
name: '.torrentname td a[href*="details.php?id="]'
size: 'td:nth-child(5)'
# 标题
name:
# 对应输入框或下拉选择框的选择器
selector: '#name'
# 副标题
subtitle:
selector: 'input[name="small_descr"]'
# 简介
description:
selector: '#descr'
# imdb地址
imdb:
selector: 'input[name="url"][type="text"]'
# 豆瓣地址 没有的站点可以省略
douban:
selector: 'input[name="douban_id"]'
# 是否匿名发布
anonymous:
selector: 'input[name="uplver"]'
# 标签checkbox
tags:
chineseAudio: '#tag_gy'
DIY: '#tag_diy'
cantoneseAudio: '#tag_yy'
chineseSubtitle: '#tag_zz'
HDR: '#tag_hdr10'
HDR10+: '#tag_hdrm'
DolbyVision: '#tag_db'
# 分类,电影剧集等
category:
selector: '#browsecat'
map:
movie:
- '411'
- '412'
tv:
- '425'
- '426'
tvPack:
- '432'
- '433'
documentary:
- '417'
- '418'
concert: '441'
sport:
- '442'
- '443'
cartoon:
- '444'
- '445'
variety: []
# 视频编码
videoCodec:
selector: 'select[name="codec_sel"]'
map:
h264: '1'
hevc: '12'
x264: '1'
x265: '2'
h265: '2'
mpeg2: '4'
mpeg4:
- '5'
- '412'
- '418'
- '426'
- '433'
- '445'
vc1: '3'
xvid: '5'
dvd: '5'
# 视频来源
source:
selector: 'select[name="source_sel"]'
map:
uhdbluray: '9'
bluray: '1'
hdtv: '4'
dvd: '3'
web: '7'
vhs: '8'
hddvd: '8'
# 音频编码
audioCodec:
selector: 'select[name="audiocodec_sel"]'
map:
aac: '6'
ac3: '15'
dd: '15'
dd+: '15'
dts: '3'
truehd: '13'
lpcm: '14'
dtshdma: '11'
atmos: '12'
dtsx: '17'
# 视频类型 主要为以下几种类型
videoType:
selector: 'select[name="medium_sel"]'
map:
uhdbluray:
- '10'
- '499'
bluray:
- '1'
- '450'
remux:
- '3'
- '415'
encode:
- '7'
- '411'
web:
- '11'
- '411'
hdtv:
- '5'
- '412'
- '413'
dvd:
- ''
- '411'
dvdrip:
- '7'
- '411'
other: ''
# 分辨率
resolution:
selector: 'select[name="standard_sel"]'
map:
2160p:
- '1'
- '499'
- '416'
1080p:
- '2'
- '414'
1080i:
- '3'
- '424'
720p:
- '4'
- '413'
576p:
- '5'
- '411'
480p:
- '5'
- '411'