Skip to content

如何增加目前还不支持的站点配置

Rick Lee edited this page Feb 8, 2023 · 5 revisions

站点配置规则

在配置文件中,比较复杂的是目标站点的相关配置,以HDHome的配置为例,说明一下具体的配置规则。在进行站点配置时需要遵循以下几个原则。

  • 在获取到各个站点的数据后,会对数据按统一格式进行规范。视频的属性分成了categoryvideoTypevideoCodecaudioCodecsourceresolution
  • 上传页面默认只有分类是多属性混合的。内站的分类经常是category和其他几个视频的属性混合在一起的,比如电影 Remux就是category和videoType混合在一起的一个例子。其他属性的话一般都比较明确,可以跟规范数据中定义的属性直接进行匹配。但是也有特殊的情况,category可以直接匹配,但是videoType是多个属性混合在一起,比如BHD。这个时候需要将category和videoType的值进行对调。后续筛选的话都是默认对category进行筛选。
  • 筛选的目的是category配合其他属性,将站点上传页表单中分类的唯一值筛选出来,并对下拉选择框进行赋值。所以即便其他属性可以直接匹配,但是为了配合category筛选出唯一的一个值,需要其他属性除了配置自己的唯一值外,还需要将属性对应的category的值也加上。比如HDH的上传表单里,2160P对应的option value是1,需要将这个值放在数组的第一位(很重要)。数组后几位也需要将分类中的Movies UHD Blu-rayMovies 2160p这两个值加入数组内。因为这两个分类的视频分辨率就是2160P。其他属性的配置也是同理,直到可以互相取交集取到唯一的分类为止。
  • 如果规范数据中的几个属性在站点内没有对应的表单需要填入,则不需要配置selector属性,只需要配置map即可。map里遵循的原则同上一条。
  • 每个属性中map下的属性不同的站点可能会有不同的增减,比如BHD中,bluray又被详细分成了BD100、BD66、BD50等,这个时候在map中加入这些项即可。在对应站点target数据处理中也需要做好对应的处理。
  • 内站中有些站需要勾选标签,目前仅支持了国语中字粤语HDR10HDR10+DolbyVisionDIY。配置中标签属性跟上对应的CSS选择器即可。
  • 每新增一个站点,需要增加对应的快速检索配置,具体配置方式见示例。
    • icon的base64生成方式: 在新建完对应站点的配置文件后,执行命令:node ./scripts/icoFetcher.js HDHome(站点配置文件名)
    • seedDomSelector可以指定脚本生成的DOM的插入位置

YAML示例

 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'