easy-seed PT一键转种

easy seeding for different trackers

当前为 2021-03-16 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

作者
techmovie
评分
0 0 0
版本
1.0.3
创建于
2021-03-14
更新于
2021-03-16
大小
70.3 KB
许可证
暂无
适用于

easy-seed

安装地址

关于

支持国内外主流PT站的转载种子脚本,尽可能减少不必要的重复工作,让发种更易上手。

功能

  • 支持国内外不同架构的站点互转,自动填写简介、视频参数等信息
  • 一些站点规则要求截图必须为缩略图,增加了原图转缩略图功能
  • 外站向内站转载时,需要补充豆瓣简介,增加了根据IMDB获取豆瓣简介的功能
  • 可以通过站点的yaml统一配置来进行上传页的内容填写,新增支持站点更容易。详见构建部分的站点配置规则
  • 支持部分站点对当前资源的快速检索

注意事项

  • 目前对音乐、MV、动漫以及软件书籍的种子转载不支持(分类可能不会自动填写)
  • 柠檬的上传页只支持电影、剧集、纪录片和MV类别的转载
  • 内站的简介中会有一些跟视频截图无关的图片,虽然做了一些过滤,转载到外站后这些无关的图片可能仍会保留下来,需要手动删除。
  • 大部分外站需要完整的MediaInfo,而部分内站的官组都没提供,转载到外站时,需要手动获取MediaInfo
  • 由于TTG的图片加载策略,需要等页面完全加载完整后再点击转载到其他站,否则种子信息会获取不完整。
  • 由于部分内站上传页的分类填写过于混乱,会有部分种子分类填写不上的问题,欢迎提Issue

后续计划

  • 增加FL、HDT、KG的支持
  • 国内很多站点由于没有账号或者发布权限,欢迎大佬帮忙测试以及提PR
  • 快速检索列表改为从yaml配置里获取

构建

npm run build 生成新脚本。

本地调试

  • 首先要修改Tampermonkey扩展,允许访问文件网址。
  • 在浏览器的Tampermonkey扩展中新建一个空白的用户脚本,将以下内容复制进去。然后将@require下的文件路径改为自己本地工程中.cache/easy-seed.user.js所在的绝对路径。
// ==UserScript==
// @name         Debug
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @require      https://cdn.bootcss.com/jquery/1.7.1/jquery.min.js
// @match        https://passthepopcorn.me/torrents.php?id=*
// @match        http://*/details.php?id=*
// @match        https://*/details.php?id=*
// @match        https://totheglory.im/t/*
// @match        https://beyond-hd.me/torrents/*
// @match        https://lemonhd.org/upload_*
// @match        https://lemonhd.org/details*
// @match        https://blutopia.xyz/torrents/*
// @match        https://blutopia.xyz/torrents?imdb=*
// @match        https://blutopia.xyz/upload/*
// @match        https://*/upload*
// @match        http://*/upload*
// @grant        GM_addStyle
// @grant        GM_xmlhttpRequest
// @require      file:///Users/USER_NAME/../easy-seed/.cache/easy-seed.user.js
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
})();
  • npm run dev 启动工程,有文件改动,.cache目录下的脚本会自动更新,刷新浏览器即可。

站点配置规则

在配置文件中,比较复杂的是目标站点的相关配置,以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数据处理中也需要做好对应的处理。
 HDHome:
    url: 'https://hdhome.org'
    host: hdhome.org
    siteType: NexusPHP
    asSource: false
    asTarget: true
    uploadPath: /upload.php
    searchPath: /torrents.php
    searchKey: search
    searchParam:
      search_area: '{key}'
      sort: '5'
      type: desc
    # 标题
    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'