前言
因特网中继聊天(Internet Relay Chat),一般称为互联网中继聊天,简称:IRC。它是由芬兰人Jarkko Oikarinen于1988年首创的一种网络聊天协议。IRC的工作原理非常简单,您只要在自己的PC
上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上即可。它的特点是速度非常之快,聊天时几乎没有延迟的现象,并且只占用很小的带宽资源。所有用户可以在一个被称为"Channel"(频道)的地方就某一话题进行交谈或密谈。每个IRC的使用者都有一个Nickname(昵称)。
国外站点多使用该工具作为群组聊天、站务处理与种子发布,其中种子发布相比RSS更具有时效性。大部分用户多使用irssi作为订阅工具或干脆使用自带IRC功能的rutorrent作为客户端,鲜有使用FlexGet的irc插件。
本文讲解如何使用FlexGet订阅IRC
安装FlexGet的IRC插件
某些Docker已经预装该插件,可以跳过该步骤
未安装的请使用ssh连接到机器,输入
pip install irc_bot
请注意机器上是否同时安装了Python2与Python3,FlexGet是基于Python3的,那么命令也需要变更为
pip3 install irc_bot
这样就完成了FlexGet的IRC插件安装
站点模板
感谢autodl-community/autodl-trackers
项目,其提供了众多站点的IRC模板,方便直接调用而不需要自己编写。
首先将整个项目下载,点击 Code - Download ZIP
打开下载到的压缩包,进入trackers文件夹,按需将对应站点文件解压出来
以FiList为例,找到FlexGet配置文件所在目录,在该目录下新建trackers文件夹,将FiList.tracker解压至该文件夹下
IRC登录
各个站点登录IRC的方式各有不同,而且大部分站点仅允许机器人进入announce频道,请注意不要让机器人进错频道,否则后果自负!不过配置文件内一般都指定了announce频道名,以上只是提醒
同时有的站点的announce频道为公开频道;有的站点的为私密频道,需要借助key或提前注册好nickname以便机器人进入频道
以FiList为例,该站的IRC配置请访问 https://filist.io/irc.php 获取,提供了诸如地址、端口、登录命令等信息
配置模板
由于各站Announce的格式不同,配置模板所需要的参数以及能获取到的参数也有所不同
以Fi**List.tracker为例
<settings></settings>
<settings> <description text="Go to http://fi**list.io/getrss.php to get the RSS feed link. Paste it (Ctrl+V) into the text box below to automatically extract passkey."/> <passkey/> </settings>
需要
passkey
作为下载种子凭证该站的
passkey
可以在种子链接、RSS生成页或者Profile中获取<var name=""/>
torrentName:Announce中截取的种子名,通过关键词可以从中过滤出你想要的例如分辨率/编码格式等信息
category:Announce中截取的分类名,站点的搜索箱分类即为此处分类
想要调用这些参数,必须以
irc_
作为开头,例如irc_torrentname
以及irc_category
根据自身需求在配置中调用并过滤这些参数,实现订阅目标
FlexGet配置
在配置文件任意位置新起一行,添加如下内容,该段内容与 task
同级
如果你还不知道YAML规范,建议先找个教程阅读学习
irc:
fl_irc:
passkey: '你的passkey'
nickname: '你的站点用户名_bot'
# 引用先前下载的模板、使用ssl端口链接以及加入announce频道
tracker_file: 'fi**list.tracker'
port: 6697
use_ssl: yes
channels: ["#announce"]
# 设置任务但不建议条件过多,可能导致什么都无法获取到
task_re:
# TV且Seriale HD分类
- task: fl_tv
patterns:
- regexp: (Seriale HD)
field: irc_category
# freeleech!
- task: fl_freeleech
patterns:
- regexp: true
field: irc_freeleech
# Movie且Bluray或4K Bluray+REMUX
- task: fl_movie
patterns:
- regexp: (Filme (|4K) Blu-Ray)
field: irc_category
- regexp: Remux
field: irc_torrentname
保存配置,以Daemon模式启动FlexGet
flexget daemon start -d --autoreload-config
Docker默认以daemon模式运行,如果是用的是webUI编辑,直接save即可
如果成功你会在日志中看到如下
这代表了成功加入IRC频道
之后还需要在 task
中引用IRC中定义的任务名并发布到下载器
tasks:
fl_tv:
max_reruns: 0
qbittorrent:
host: localhost
port: 8080
username: qbWEBUI用户名
password: qbWEBUI密码
label: 剧集
path: /PT/TV
fl_movie:
max_reruns: 0
transmission:
host: localhost
port: 9091
username: trWEBUI用户名
password: trWEBUI密码
label: 电影
path: /PT/MOVIE
这样任务就会下载到指定客户端及路径中去了
IRC本身就为一个服务,所以不需要另外使用触发器(crontab或schedule)触发
至此,就能使用FlexGet通过IRC自动订阅种子了
最小配置
如果你是第一次使用FlexGet,这里将上面提到的配置整合形成一个最小化能够运行的配置
template:
trDianying:
transmission:
host: localhost
port: 9091
username: trWEBUI用户名
password: trWEBUI密码
path: /PT/MOVIE
qbDianshiju:
qbittorrent:
host: localhost
port: 8080
username: qbWEBUI用户名
password: qbWEBUI密码
path: /PT/TV
irc:
# fi**list站点irc配置
fl_irc:
passkey: '你的passkey'
nickname: '你的站点用户名_bot'
# 引用先前下载的模板、使用ssl端口链接
tracker_file: 'fi**list.tracker'
port: 6697
use_ssl: yes
# 指定加入announce频道
channels: ["#announce"]
# 设置任务但不建议同时条件过多,可能导致什么都无法获取到
task_re:
# TV且Seriale HD分类
- task: fl_tv
patterns:
- regexp: (Seriale HD)
field: irc_category
# freeleech!
- task: fl_freeleech
patterns:
- regexp: true
field: irc_freeleech
# Movie且Bluray或4K Bluray分类+REMUX
- task: fl_movie
patterns:
- regexp: (Filme (|4K) Blu-Ray)
field: irc_category
- regexp: Remux
field: irc_torrentName
#任务模块
tasks:
fl_tv:
max_reruns: 0
template: qbDianshiju
fl_movie:
max_reruns: 0
template: trDianying
特别感谢
autodl-community/autodl-trackers
Cookbook/Users/qvazzler