批量种子转磁力
有很长一段时间,我的游戏都来自Fitgirl Repack这个网站。这个网站从籍籍无名到公认的互联网最大的盗版游戏分享窝点,仅仅花了短短的数年时间。
这个网站分享的游戏属于高压版。所谓高压板就是将游戏数据采用高比率压缩包的形式进行分享。使得需要传输的数据,比官方的安装包更小(当然,同时也会移除很多不必要的游戏素材)。不知道有没有朋友还记得小时候买过的盗版光碟【藏经阁】,他们就喜欢采用这种“压完再压,压了又压”的高压缩模式分发盗版游戏。当年的手法比较粗暴,就是换用不同的压缩软件,例如7z\uhar进行反复压缩。
但是这种高压版的游戏有一个问题,就是安装过程非常容易出错。高比率压缩包的容错率更低,安装和解压的时间也更长。有的时候一个游戏可能需要花上五六个小时安装。更让人崩溃的是,当你安装完成后,进行文件校验时,会发现数不清的文件校验错误。这时候你已经丧失玩耍的心情,只想关掉电脑,埋头睡个大觉。
后来,我又发现了另外一家做盗版游戏分发的组织,Dodi Repacks。这家的安装包呢,就简单明快的多,选择好目录,开始解压。解压完毕,就可以开始愉快的玩耍了。即便是个头较大的游戏(我指的是50gb以上),安装时间都在20分钟左右。相对来说Dodi的安装包并没有比Fitgirl大出很多,让人不禁费解,所谓的高压,到底压了些什么?
Dodi比不上Fitgirl的一点是:没有开放磁力链的下载。你需要跳转到第三方的种子存储网站进行下载。因此你不得不忍受漫长的广告和反人类的人机验证措施,才能够下载相应的游戏种子。
为了规避反盗版,Dodi还使用乱码重写了种子的文件名。我比较喜欢收藏这些种子,以备不时之需,为此写了一段代码。将乱码的种子文件名替换为种子信息中的 display name。
不过既然都做到这儿了,何不再顺便生成一段磁力链接呢?说说干就干,完整的代码如下:
import os import bencode import hashlib # 指定torrent文件所在的目录 torrent_dir = 'torrents' # 定义一个函数来生成magnet链接 def torrent_to_magnet(torrent_file_path): with open(torrent_file_path, 'rb') as torrent_file: torrent_data = bencode.bdecode(torrent_file.read()) # 从torrent文件中获取需要的信息 info_bts = bencode.bencode(torrent_data['info']) info_hash = hashlib.sha1(info_bts).hexdigest() # 编码info字典为字节串,然后转换为十六进制字符串 # 构建magnet链接 display_name = torrent_data['info']['name'] magnet_link = f'magnet:?xt=urn:btih:{info_hash}&dn={display_name}' return magnet_link, display_name # 遍历目录,读取所有torrent文件,并生成magnet链接 magnet_links_info = [] for root, dirs, files in os.walk(torrent_dir): for file in files: if file.endswith('.torrent'): file_path = os.path.join(root, file) # p批量转换为Magnet try: magnet_link, display_name = torrent_to_magnet(file_path) magnet_links_info.append((magnet_link, display_name)) except Exception as e: print(f'Error processing {file_path}: {e}') # 重命名文件 try: os.rename(file_path, os.path.join(root, display_name + '.torrent')) print(f"文件已从 {file} 重命名为 {display_name}") except OSError as e: print(f"重命名失败: {e}") # 将magnet链接和标题写入HTML页面 html_content = '<!DOCTYPE html><html><head><title>Magnet Links</title></head><body>' html_content += '<h1>Magnet Links</h1>' for link, title in magnet_links_info: html_content += f'<p><a href="{link}">{title}</a></p>' html_content += '</body></html>' # 将HTML内容写入文件 output_html_path = 'magnet_links.html' with open(output_html_path, 'w', encoding='utf-8') as html_file: html_file.write(html_content) print(f'Magnet links with titles have been written to {output_html_path}')
如果运行失败,尝试安装 bencode.py
pip installl bencode.py
发表评论