最近常用的公共影视资源网站关闭,迁移到一个新网站,结果丢失了很多资源。我偶然发现有人发了十几个名为“老种子 xx”的帖子,上传了几十个 20 MiB 的 .rar 压缩文件(由于附件大小限制)。我一个个下载下来,虽然是老种子,但用网盘离线下载还是可行的。现在的问题是,我想找出国语音频的作品,该怎么筛选出国语音轨的种子列表。针对这个问题,我问了免费的 GPT4 。它直接帮我写 PowerShell 脚本:
# 获取当前目录下的所有 .rar 文件
$rarFiles = Get-ChildItem -Path . -Filter *.rar
# 存储符合条件的 .torrent 文件的信息
$matchingTorrents = @()
# 正则表达式模式
$pattern = "Mandarin|CHS|CHINESE"
# 遍历所有 .rar 文件
foreach ($rarFile in $rarFiles) {
# 解压 .rar 文件并列出其内容
$contents = & 7z l $rarFile.FullName
# 从内容中查找 .torrent 文件
$torrentFiles = $contents | Where-Object { $_ -match ".torrent" }
# 查找文件名符合模式的 .torrent 文件
foreach ($line in $torrentFiles) {
if ($line -match $pattern) {
# 直接使用文件路径信息(原先 GPT4 给的-replace ".*(\d{2}-\d{2}).* ", "")
$filePath = $line
# 创建一个对象存储 .rar 文件名和 .torrent 文件路径
$torrentInfo = [PSCustomObject]@{
RarFile = $rarFile.FullName
TorrentFile = $filePath
}
# 将对象添加到匹配列表中
$matchingTorrents += $torrentInfo
}
}
}
# 输出匹配的 .torrent 文件信息
$matchingTorrents | Format-Table -AutoSize
将上述脚本保存为一个 PowerShell 文件,例如search_torrents_with_paths.ps1
,然后在 PowerShell 中执行脚本:
.\search_torrents_with_paths.ps1
(我的台式机 Windows10 默认禁止运行脚本,我是在交互式 PowerShell 直接粘贴代码运行的)
后续列表有很多重复数据,为了去重,将文件改名为 .csv 文件并导入 Excel 。我用的是微软在线的免费 Excel ,通过数据功能进行文本拆分、筛选与去重。文件名包含年份,比如 2008 ,可以提取年份数字筛选出 2000 年以后的作品。
关于怎么筛选出豆瓣评分 8 分以上的种子文件,我问过 GPT4 ,通过 Python 的 requests 和使用豆瓣的官方 API 获取数据。因为 GPT4 警告这样做有被封 IP 的风险,我就直接放弃了,只好人工查评分。
用Excel 将文本拆分为列并不会一次就达到想要的效果。原因是文件名不规范,包含很多空格。
文件名有空格可以用批量文件改名软件如 FFRenamePro 将文件名中的空格去掉,然后得到 rarNames.csv 。
而 .rar文件内的 .torrent 文件名有空格,包含很多空格。用 awk 筛选文件名的字段得到 torrentNames.csv 。
最后用Excel打开这两个 .csv 文件放入一个 .csv 文件,A列-rar文件名、B列-相关种子文件名。