Jump to content

Copy-paste error


velma

Recommended Posts

Posted

Hi,

I'm getting crashes or truncated filenames when trying to copy data from the "Files" tab.

Steps to reproduce:

1. Download http://www.nyaatorrents.org/?page=download&tid=38525 (1.5 MB)

2. In the "Files" tab, press ctrl-a to select all, then ctrl-c to copy

3. Paste text somewhere

Observed behaviour:

Computer A: utorrent crashes after pressing ctrl-c in step 2. The dump that was saved is at http://home.exetel.com.au/velma/12639-utorrent.9ae8.dmp

Computer B: can copy and paste, but some of the filenames are truncated - for example, the last two characters of [堕武者+ultraviolence+]/2008.08.16 東方自家中毒~Vomiting opposite mirror [C74]/堕武者+ultraviolence+ - 三代目西園寺メリー.ogg are missing.

µTorrent version:

1.8.1

Am I doing something wrong?

I hope this is a fixable µTorrent bug rather than a Windows limitation - it'd be nice to be able to get a list of completed files. Incidentally, if it's not already the case then I think completion percentages should be rounded down rather than up, so you know that a file at 100.0% really is finished.

Posted
[堕武者+ultraviolence+]/2008.08.16 東方自家中毒~Vomiting opposite mirror [C74]/堕武者+ultraviolence+ - 三代目西園寺メリー.ogg

I like your torrents! :D

Anyway I tested: uT opens the torrent but takes time (not responding during 1 or 2s) because the torrent is really HUGE!! 40GB!!

Are you sure you have enough free bytes on your HD ?

EDIT: Yep that crashes my uT too when I pasted contents of Files tab... :/

  • 2 weeks later...
Posted
Are you sure you have enough free bytes on your HD ?

Not yet, but I'll make space somehow. =)

Anyway, I worked around the problem by writing a python script to list the completed files. I post it here just in case someone might want to use or distribute it:

#!/usr/bin/env python
#
# Usage: btdone torrentfile savedir
#
# btdone - print all files from "torrentfile" that have been completely
# downloaded to "savedir"
#
# Requires libtorrent python bindings from rasterbar.com (also included with
# the deluge bittorrent client). Shows hashing progress on stderr using evil
# carriage returns. If you specify the wrong savedir, it will recreate the
# directory structure of your torrent there, which may be confusing. Version
# 1, November 2008.

try:
import deluge.libtorrent as lib
except ImportError:
import libtorrent as lib
from time import sleep
from sys import stderr, argv
from os import path

def alert_type(a):
return str(type(a)).split("'")[1].split(".")[-1]

def list_completed(t, savedir):
files = t.get_torrent_info().files()
done = filter(lambda (f, p): f.size == p, zip(files, t.file_progress()))
print >> stderr, "%d of %d files completed:" % (len(done), len(files))
for f, p in done:
print path.join(savedir, f.path)

def main():
if len(argv) != 3:
print >> stderr, "usage: btdone torrentfile savedir"
return 1

grr = lib.fingerprint("NO", 0, 0, 0, 0)
s = lib.session(grr, 0) # No features, thanks
s.set_alert_mask(lib.alert.category_t.all_categories)

t = s.add_torrent({
"ti": lib.torrent_info(argv[1]),
"save_path": argv[2],
"paused": True,
"auto_managed": False,
})

while 1:
a = s.pop_alert()

if not a:
print >> stderr, "progress: %f / 1.0\r" % t.status().progress,
sleep(1)
continue

typ = alert_type(a)
if typ == "state_changed_alert" and str(a.state) == "downloading":
list_completed(t, argv[2])
return
print >> stderr, "%s: %s" % (typ, a)

if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
pass

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...