当前访客身份:游客 [ 登录 | 加入 OSCHINA ]

代码分享

当前位置:
代码分享 » Python  » 网络编程
分享到: 
收藏 +0
2
1、读取文件1.txt一行一个maglnk,平均生成一个torrent要30s+,不知道是我机器的配置问题还是怎样 
<br /> 2、注释掉的部分是因为py对libt的封装里没有封装好这个函数,c++源码有原型函数是可用的 
<br /> 3、不知没有piece的hash究竟影响多大 
<br /> 这个是rasterbar的libtorrent ,和rakshasa的libTorrent不是一回事
标签: LibTorrent

代码片段(1) [全屏查看所有代码]

1. [代码][Python]代码     跳至 [1] [全屏预览]

import libtorrent as lt
import time

def magnet2t(link,tfile):
    sess = lt.session()
    params = {
             "save_path": './tfile/',
             "storage_mode":lt.storage_mode_t.storage_mode_sparse,
             "paused": True,
             "auto_managed": True,
             "duplicate_is_error": True
           }

    handle = lt.add_magnet_uri(sess, link, params)

    while (not handle.has_metadata()):
        time.sleep(5)
        print handle.has_metadata()
 
    torinfo = handle.get_torrent_info()
 
    fs = lt.file_storage()
    for f in torinfo.files():
        fs.add_file(f)

    torfile = lt.create_torrent(fs)
    torfile.set_comment(torinfo.comment())
    torfile.set_creator(torinfo.creator())
    
    #for i in xrange(0, torinfo.num_pieces()):
    #    hashes = torinfo.hash_for_piece(i)
    #    torfile.set_hash(i, hashes)

    for url_seed in torinfo.url_seeds():
        torfile.add_url_seed(url_seed)

    for http_seed in torinfo.http_seeds():
        torfile.add_http_seed(http_seed)

    for node in torinfo.nodes():
        torfile.add_node(node)

    for tracker in torinfo.trackers():
        torfile.add_tracker(tracker)

    torfile.set_priv(torinfo.priv())
 
    t = open(tfile, "wb")
    t.write(lt.bencode(torfile.generate()))
    t.close()
    print '%s  generated!'% tfile

def main():
    f= open('1.txt','r')
    magnet_list = f.read().split('\n')
    f.close()
    for i in range(len(magnet_list)):
        if magnet_list[i] != '':
            magnet2t(magnet_list[i],'%s.torrent'% str(i))
    

if __name__ == '__main__':
    main()
        


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(7)

  • 1楼:该用户已被和谐 发表于 2014-03-26 00:52 回复此评论
    hi, 咨询个问题, 我在通过 magnet 下载 metadata 的时候一直卡在 has_metadata 这个阶段 , 一直无法获得值. 磁力链是可以通过迅雷等工具打开的,不知道这个还需要哪些额外的环境?例如独立 IP,开放端口之类的.
  • 2楼:ninewan 发表于 2014-04-01 12:44 回复此评论

    引用来自“该用户已被和谐”的评论

    hi, 咨询个问题, 我在通过 magnet 下载 metadata 的时候一直卡在 has_metadata 这个阶段 , 一直无法获得值. 磁力链是可以通过迅雷等工具打开的,不知道这个还需要哪些额外的环境?例如独立 IP,开放端口之类的.

    我也卡在这,你解决了吗

  • 3楼:王明明 发表于 2015-05-29 09:32 回复此评论

    引用来自“该用户已被和谐”的评论

    hi, 咨询个问题, 我在通过 magnet 下载 metadata 的时候一直卡在 has_metadata 这个阶段 , 一直无法获得值. 磁力链是可以通过迅雷等工具打开的,不知道这个还需要哪些额外的环境?例如独立 IP,开放端口之类的.

    引用来自“ninewan”的评论

    我也卡在这,你解决了吗

    也许是此hash在DHT中并没有在线的客户端? 因为迅雷等工具是以前缓存的种子文件
  • 4楼:蓝翔招生办 发表于 2015-07-26 14:31 回复此评论
    上面的问题有解吗
  • 5楼:蓝翔招生办 发表于 2015-07-26 14:32 回复此评论

    引用来自“该用户已被和谐”的评论

    hi, 咨询个问题, 我在通过 magnet 下载 metadata 的时候一直卡在 has_metadata 这个阶段 , 一直无法获得值. 磁力链是可以通过迅雷等工具打开的,不知道这个还需要哪些额外的环境?例如独立 IP,开放端口之类的.
    请问你这问题搞定了吗
  • 6楼:该用户已被和谐 发表于 2015-07-27 09:07 回复此评论

    引用来自“该用户已被和谐”的评论

    hi, 咨询个问题, 我在通过 magnet 下载 metadata 的时候一直卡在 has_metadata 这个阶段 , 一直无法获得值. 磁力链是可以通过迅雷等工具打开的,不知道这个还需要哪些额外的环境?例如独立 IP,开放端口之类的.

    引用来自“蓝翔招生办”的评论

    请问你这问题搞定了吗
    参考一下吧,很久以前的了,我也不记得了。 http://blog.csdn.net/treesky/article/details/24511865
  • 7楼:it码农女王 发表于 2018-10-18 13:05 回复此评论
    请问大家这个问题都解决啦吗?怎么解决的
开源从代码分享开始 分享代码
Eric_isbug的其它代码 全部(3)...