मैंने manual के माध्यम से पढ़ा है और मुझे जवाब नहीं मिल रहा है। एक चुंबक लिंक को देखते हुए मैं एक धार फ़ाइल उत्पन्न करना चाहता हूं ताकि मेटाडेटा को फिर से लोड करने से बचने के लिए इसे अगले स्टार्टअप पर लोड किया जा सके। मैंने तेजी से फिर से शुरू करने की सुविधा की कोशिश की है, लेकिन मुझे अभी भी मेटा डेटा प्राप्त करना है जब मैं इसे करता हूं और इसमें काफी समय लग सकता है। जिन उदाहरणों को मैंने देखा है वे एक नए धार के लिए धार फ़ाइलों को बनाने के लिए हैं, जहां मैं एक चुंबक यूरी से मेल खाता हूं।लिबोरोरेंट - एक चुंबक लिंक देखते हुए, आप एक धार फ़ाइल कैसे उत्पन्न करते हैं?
उत्तर
समाधान यहाँ पाया जाता है:
http://code.google.com/p/libtorrent/issues/detail?id=165#c5
बनाने देखें धार:
http://www.rasterbar.com/products/libtorrent/make_torrent.html
पहली पंक्तियों को संशोधित करें:
file_storage fs;
// recursively adds files in directories
add_files(fs, "./my_torrent");
create_torrent t(fs);
इस के लिए:
torrent_info ti = handle.get_torrent_info()
create_torrent t(ti)
"संभाल" यहां से है:
torrent_handle add_magnet_uri(session& ses, std::string const& uri add_torrent_params p);
इसके अलावा धार आप यह सुनिश्चित करें कि मेटाडाटा डाउनलोड किया गया है करना है बनाने से पहले, इस फोन करके करना handle.has_metadata()
।
अद्यतन
libtorrent अजगर एपीआई की तरह लगता है एपीआई महत्वपूर्ण ग की ++ और कुछ है कि मैग्नेट से धार बनाने के लिए आवश्यक है याद आ रही है, उदाहरण के ऊपर अजगर कारण में काम नहीं करेगा create_torrent
अजगर वर्ग के रूप में torrent_info स्वीकार नहीं करता है पैरामीटर (सी ++ यह उपलब्ध है)।
तो मैं इसे दूसरे तरीके से करने की कोशिश की, लेकिन यह भी एक ईंट की दीवार है कि यह असंभव बना देता है का सामना करना पड़ा, यहाँ कोड है:
torfile.set_hash(i, hash)
:
if handle.has_metadata():
torinfo = handle.get_torrent_info()
fs = libtorrent.file_storage()
for file in torinfo.files():
fs.add_file(file)
torfile = libtorrent.create_torrent(fs)
torfile.set_comment(torinfo.comment())
torfile.set_creator(torinfo.creator())
for i in xrange(0, torinfo.num_pieces()):
hash = torinfo.hash_for_piece(i)
torfile.set_hash(i, hash)
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())
f = open(magnet_torrent, "wb")
f.write(libtorrent.bencode(torfile.generate()))
f.close()
इस लाइन पर फेंक दिया कोई त्रुटि है यह हैश को const char*
होने की उम्मीद है लेकिन torrent_info.hash_for_piece(int)
कक्षा big_number
देता है जिसमें इसे वापस कॉन्स्ट char * में परिवर्तित करने के लिए कोई एपीआई नहीं है।
जब मुझे कुछ समय लगता है तो मैं इस लापता एपीआई बग को libtorrent डेवलपर्स को रिपोर्ट करूंगा, क्योंकि वर्तमान में पाइथन बाइंडिंग का उपयोग करते समय चुंबक उरी से एक .torrent फ़ाइल बनाना असंभव है।
torrent_info.orig_files()
पाइथन बाइंडिंग में भी गायब है, मुझे यकीन नहीं है कि torrent_info.files()
पर्याप्त है।
अद्यतन 2
मैं इस पर एक मुद्दा बना लिया है, यह यहाँ देखें: http://code.google.com/p/libtorrent/issues/detail?id=294
स्टार यह तो वे जल्दी ठीक करें।
अद्यतन 3
अब यह तय हो गई है, वहाँ एक 0.16.0 रिलीज है। खिड़कियों के लिए द्विआधारी भी उपलब्ध हैं।
सभी कड़ी मेहनत के लिए बहुत बहुत धन्यवाद! – ciferkey
यदि resume data को सहेजना आपके लिए काम नहीं करता है, तो आप मौजूदा कनेक्शन से जानकारी का उपयोग कर एक नई धार फ़ाइल उत्पन्न करने में सक्षम हैं।
fs = libtorrent.file_storage()
libtorrent.add_files(fs, "somefiles")
t = libtorrent.create_torrent(fs)
t.add_tracker("http://10.0.0.1:312/announce")
t.set_creator("My Torrent")
t.set_comment("Some comments")
t.set_priv(True)
libtorrent.set_piece_hashes(t, "C:\\", lambda x: 0), libtorrent.bencode(t.generate())
f=open("mytorrent.torrent", "wb")
f.write(libtorrent.bencode(t.generate()))
f.close()
मुझे शक है कि यह फिर से शुरू इस उद्देश्य के लिए विशेष रूप से बनाया समारोह की तुलना में तेजी कर देंगे।
कोशिश इस कोड http://code.google.com/p/libtorrent/issues/attachmentText?id=165&aid=-5595452662388837431&name=java_client.cpp&token=km_XkD5NBdXitTaBwtCir8bN-1U%3A1327784186190 यह add_magnet_uri जो मुझे लगता है कि का उपयोग करता है यह देखने के लिए आपको क्या चाहिए
बस आधुनिक libtorrent अजगर पैकेज का उपयोग त्वरित अपडेट देना चाहते थे: libtorrent अब parse_magnet_uri
विधि है जो आप एक धार संभाल उत्पन्न करने के लिए उपयोग कर सकते हैं:
import libtorrent, os, time
def magnet_to_torrent(magnet_uri, dst):
params = libtorrent.parse_magnet_uri(magnet_uri)
session = libtorrent.session()
handle = session.add_torrent(params)
print "Downloading metadata..."
while not handle.has_metadata():
time.sleep(0.1)
torrent_info = handle.get_torrent_info()
torrent_file = libtorrent.create_torrent(torrent_info)
torrent_path = os.path.join(dst, torrent_info.name() + ".torrent")
with open(torrent_path, "wb") as f:
f.write(libtorrent.bencode(torrent_file.generate()))
print "Torrent saved to %s" % torrent_path
- 1. आप एक धार फ़ाइल सूचकांक कैसे बनाते हैं?
- 2. कैसे आप वर्ग का एक उदाहरण को देखते हुए WPF
- 3. एक लंबे एक्सेल प्रदर्शन करते समय आप इनो सेटअप को जमे हुए क्यों नहीं देखते हैं?
- 4. आप एक लिंक के साथ डेटा कैसे पोस्ट करते हैं
- 5. आप आरएसएस फ़ीड कैसे उत्पन्न करते हैं?
- 6. रेल - टेक्स्ट के ब्लॉक को देखते हुए, ऑटो-लिंक लिंक
- 7. आप वेबसाइट नेविगेशन कैसे उत्पन्न करते हैं?
- 8. एक धार फ़ाइल से SHA1 हैश निकालें
- 9. पर्ल: एक मनमानी स्ट्रिंग को देखते हुए, आप पहले एन बिट्स को कैसे निकालते हैं?
- 10. डब्लूएसडीएल फ़ाइल को देखते हुए, एक साधारण जावा क्लाइंट
- 11. क्लोजर में आप एक सूची को यादृच्छिक कैसे करते हैं?
- 12. Git का उपयोग करते हुए एक फ़ाइल
- 13. आप एक swf फ़ाइल को कैसे संकुचित करते हैं
- 14. एक स्ट्रिंग को देखते हुए, एक रेगेक्स उत्पन्न करें जो * समान * स्ट्रिंग्स
- 15. आप एक लिंक में एक div टैग कैसे बनाते हैं
- 16. आप कैसे देखते हैं कि किस प्रतिबद्ध ने रेपो से एक फ़ाइल हटा दी है?
- 17. MATLAB में आप दोहरी टोन फ्रीक्वेंसी कैसे उत्पन्न करते हैं?
- 18. आप एक बग ट्रैकर में क्या देखते हैं?
- 19. जब आप अनुवादित पाठ में लिंक करते हैं तो आप गेटटेक्स्ट का उपयोग कैसे करते हैं?
- 20. कन्करेंसी और मुद्दों देखते हुए जब CFM एक सीएफसी
- 21. आप फ़ंक्शन से "ब्रेक" कैसे करते हैं?
- 22. एक .po फ़ाइल कैसे उत्पन्न करें?
- 23. एक एंड्रॉइड संगीत प्लेलिस्ट नाम को देखते हुए, प्लेलिस्ट में गाने कैसे ढूंढ सकते हैं?
- 24. एक यूटीआई (वर्दी टाइप आइडेंटिफायर) को देखते हुए,
- 25. आप ईओटी वेबफॉन्ट फ़ाइलों को कैसे देखते हैं?
- 26. आप सी # में यादृच्छिक संख्या कैसे उत्पन्न करते हैं?
- 27. पूर्णांक की एक अनियमित सूची को देखते हुए,
- 28. कैसे एक फ़ाइल जो नई लाइनों, Textmate का उपयोग किया गया को देखते हुए Textmate
- 29. आप विजुअल स्टूडियो लिंक त्रुटियों को "डीकोड" कैसे करते हैं?
- 30. कोर ग्राफिक्स में आप आरजीबीए छवि कैसे उत्पन्न करते हैं?
दी, प्रलेखन खराब है (हालांकि अजीब प्रयोग करने योग्य)। लेकिन, मेटाडेटा एक्सटेंशन http://www.rasterbar.com/products/libtorrent/manual.html#add-extension के साथ क्या गलत है? –