the forums at degreez.net
http://forums.degreez.net/

Suggestions?
http://forums.degreez.net/viewtopic.php?f=1&t=14
Page 12 of 16

Author:  Guest [ Mon Nov 08, 2004 3:14 pm ]
Post subject:  Re: File Extentions

Clunk wrote:
I was wondering if it would be possible to add a temporary file extention to files before they are complete?
eg FileName.avi.tornado

Just to show which torrents are complete and which are downloading/seeding

This would become even more useful when the multiple torrent function functionallity is implemented

Also it would allow automated transfer of completed torrents torrents to a seperate directory/drive and reduce file fragmentation


This sounds very similar to the outdated BT++. now that would be nice to see, Shadow's smooth engine into BT++'s download manager shell.
Maybe these programmers should compare notes a bit more..

Author:  RIP! [ Wed Nov 10, 2004 8:36 am ]
Post subject:  Rate Settings

Hi,

I am sure this has been brought up, but I didn't see it in a quick scan through of search but it would be nice if BT would save your UL settings that you set manually. ?

Thanks, RIP!

Author:  Salzamar! [ Thu Nov 11, 2004 4:50 am ]
Post subject:  Suggestions

i've always been cheezed off when i see 30+ seeds on the status page, but only 1 of them is actually willing to share. Maybe the number available shouldn't show those seeds that aren't willing to upload.

so instead of always seeing 8 peers / 35 seeds
it would show the 'true' 8 peers / 1 seed.

Author:  Guest [ Mon Nov 15, 2004 10:03 pm ]
Post subject: 

What about a 'tiny' IP filter engine? I only need to stuff in some 700 IP ranges and I'm all happy.

A simple format would cover it completely - "start,end" and that's it (also keeps the memory usage down to a minimum).

Author:  Salzamar! [ Tue Nov 16, 2004 11:21 am ]
Post subject:  ideas

Well, since some amatures keep thinking that the Superseed will make the download faster, maybe you could make using it a more selective process.

time the program to only allow superseed to be turned on if there's 100% of the file. that way it wil actually be used for -seeding-...

just a thot.

Author:  Guest [ Fri Nov 19, 2004 11:56 am ]
Post subject: 

how about the ability to save the torrent you are currently downloading from within the torrent?
For example, I download a torrent, then the next day i forget where i got it, and have to restart my computer. Now i could look thru all my torrent sites, or i could tell bittornado to save the .torrent to file so i can resume it without spending 30 minutes trying to find a day old torrent.

Author:  some_guy [ Fri Nov 19, 2004 2:41 pm ]
Post subject:  saving Torrents

Try saving the torrent to yer drive before you start it, silly. and if its a PHP link, then use Getright to capture them. that way you keep an archive of all the torrents.

Author:  owenja [ Tue Nov 23, 2004 1:58 pm ]
Post subject:  Feature requests

First off, I agree with your idea of making a seperate feature request forum, Shadow. 12 pages is a bit much.

Anyway, my biggest feature request is the ability to scan for pieces in (an) external file(s). For me, there are two situations I would use this in. The first is when the fileset is available via bittorrent as well as from another source, like http or direct connect, for example. When I finish a file from one of those, it would be very nice to be able to import it into the torrent without quitting, putting it in by hand, and restarting.

The other situation I'd use it in is when I have the same torrent running on two different computers. For example, my connection at school is way faster than my connection at home, so I download as much as I can at school and bring it home. A while back I wrote a tiny program to do a byte-by-byte merge of two files, but between not filling undownloaded space with 0's any more and the allocate-as-you-go scheme, it doesn't work so well now.


Another request I have is to have a bitmap of what pieces are done in the details window. Ideally when you mouse over it it'd say what file(s) that piece contains, and when you mouse over a file in the list it'd highlight which pieces contain it. That could be step 2 or whatever, and this is mostly a cosmetic request instead of a functional one.

Lastly, I'd like the ability to prioritize files or segments. As a rule, when a torrent contains a text file, I want to read it as soon as possible instead of halfway through the download. It would also be nice to tell the client to try to finish the file that's at 99% so I can open it sooner rather than later.

Thanks
-Jason-

Author:  Guest [ Tue Nov 23, 2004 2:08 pm ]
Post subject:  Close when complete

A check-box to close BitTornado when downloads complete would be great. That way I can set up scripts for multiple torrents. I understand that some people would use this to cheat so how about "close when download finishes AND ratio is at least .500" Just a thought.

MammonLord

Author:  Guest [ Wed Nov 24, 2004 1:01 pm ]
Post subject: 

dikki wrote:
BTW, I came here to suggest one feature, it'd be damn easy to write: could you make btlaunchmany.bittornado write out the ammount of downloaded and uploaded data not only for each torrent, but the common dl'ed and ul'd data?


I was bored enough to patch that in... :)
Code:
diff -urN BitTornado-0.3.7/BitTornado/launchmanycore.py BitTornado-CVS/BitTornado/launchmanycore.py
--- BitTornado-0.3.7/BitTornado/launchmanycore.py       2004-07-10 11:48:22.000000000 -0400
+++ BitTornado-CVS/BitTornado/launchmanycore.py 2004-10-03 12:44:05.000000000 -0400
@@ -163,6 +163,8 @@
             self.downloads = {}
             self.counter = 0
             self.doneflag = Event()
+            self.uptotal0 = 0
+            self.dntotal0 = 0

             self.hashcheck_queue = []
             self.hashcheck_current = None
@@ -230,6 +232,8 @@
     def stats(self):
         self.rawserver.add_task(self.stats, self.stats_period)
         data = []
+        data.append(( 0, 0, 0, 0, 0, 0, 0, 0, 0, self.uptotal0, self.dntotal0, 0, 0, 0 ))
+
         for hash in self.torrent_list:
             cache = self.torrent_cache[hash]
             if self.config['display_path']:
@@ -294,6 +298,12 @@
             self.doneflag.set()

     def remove(self, hash):
+        d = self.downloads[hash]
+        stats = d.statsfunc()
+        s = stats['stats']
+        self.uptotal0 += s.upTotal
+        self.dntotal0 += s.downTotal
+
         self.torrent_list.remove(hash)
         self.downloads[hash].shutdown()
         del self.downloads[hash]
diff -urN BitTornado-0.3.7/btlaunchmany.py BitTornado-CVS/btlaunchmany.py
--- BitTornado-0.3.7/btlaunchmany.py    2004-05-17 10:30:02.000000000 -0400
+++ BitTornado-CVS/btlaunchmany.py      2004-10-03 12:50:09.000000000 -0400
@@ -49,6 +49,8 @@
 class HeadlessDisplayer:
     def display(self, data):
         print ''
+        ( name, status, progress, peers, seeds, seedsmsg, dist,
+          uprate, dnrate, upamt, dnamt, size, t, msg ) = data.pop(0)
         if not data:
             self.message('no torrents')
         for x in data:
diff -urN BitTornado-0.3.7/btlaunchmanycurses.py BitTornado-CVS/btlaunchmanycurses.py
--- BitTornado-0.3.7/btlaunchmanycurses.py      2004-06-17 14:06:52.000000000 -0400
+++ BitTornado-CVS/btlaunchmanycurses.py        2004-10-03 12:50:06.000000000 -0400
@@ -123,14 +123,14 @@
         self.headerpan = curses.panel.new_panel(self.headerwin)
         self.headerwin.scrollok(0)

-        self.totalwin = curses.newwin(1, self.mainwinw+1,
+        self.totalwin = curses.newwin(2, self.mainwinw+1,
                                       self.mainwinh+1, self.mainwinx)
         self.totalpan = curses.panel.new_panel(self.totalwin)
         self.totalwin.scrollok(0)

-        self.statuswinh = self.scrh-4-self.mainwinh
+        self.statuswinh = self.scrh-5-self.mainwinh
         self.statuswin = curses.newwin(self.statuswinh, self.mainwinw+1,
-                                       self.mainwinh+3, self.mainwinx)
+                                       self.mainwinh+4, self.mainwinx)
         self.statuspan = curses.panel.new_panel(self.statuswin)
         self.statuswin.scrollok(0)

@@ -220,6 +220,8 @@
             self._remake_window()

         self.mainwin.erase()
+        ( name, status, progress, peers, seeds, seedsmsg, dist,
+          uprate, dnrate, totalupamt, totaldnamt, size, t, msg ) = data.pop(0)
         if data:
             self._display_data(data)
         else:
@@ -231,9 +233,13 @@
               uprate, dnrate, upamt, dnamt, size, t, msg ) in data:
             totalup += uprate
             totaldn += dnrate
+            totalupamt += upamt
+            totaldnamt += dnamt

         totalup = '%s/s' % fmtsize(totalup)
         totaldn = '%s/s' % fmtsize(totaldn)
+        totalupamt = '%s' % fmtsize(totalupamt)
+        totaldnamt = '%s' % fmtsize(totaldnamt)

         self.totalwin.erase()
         self.totalwin.addnstr(0, self.mainwinw-27, 'Totals:', 7, curses.A_BOLD)
@@ -241,6 +247,10 @@
                               totaldn, 10, curses.A_BOLD)
         self.totalwin.addnstr(0, self.mainwinw-10 + (10-len(totalup)),
                               totalup, 10, curses.A_BOLD)
+        self.totalwin.addnstr(1, self.mainwinw-20 + (10-len(totaldnamt)),
+                              totaldnamt, 10, curses.A_BOLD)
+        self.totalwin.addnstr(1, self.mainwinw-10 + (10-len(totalupamt)),
+                              totalupamt, 10, curses.A_BOLD)

         curses.panel.update_panels()
         curses.doupdate()

(Passing the values in data[] is a bit of a hack, but I couldn't see any obvious way to get the stats to the frontend. Oh well. And I only patched btlaunchmany.py so it doesn't break, I didn't patch it to display the totals.)

Author:  Guest [ Wed Nov 24, 2004 2:13 pm ]
Post subject: 

I was looking at this post, and added a bit to change the max upload rate in btlaunchmanycurses.py - hit + or - to increase / decrease, 0 to reset to unlimited. It should be possible to add manual reannounce and other things by adding to the "if kcmd ..." block in btlaunchmanycore.py.
Code:
diff -urN BitTornado-CVS/BitTornado/launchmanycore.py BitTornado-0.3.8/BitTornado/launchmanycore.py
--- BitTornado-CVS/BitTornado/launchmanycore.py 2004-07-10 11:48:22.000000000 -0400
+++ BitTornado-0.3.8/BitTornado/launchmanycore.py       2004-11-24 13:57:51.000000000 -0500
@@ -163,6 +163,8 @@
             self.downloads = {}
             self.counter = 0
             self.doneflag = Event()
+            self.uptotal0 = 0
+            self.dntotal0 = 0

             self.hashcheck_queue = []
             self.hashcheck_current = None
@@ -230,6 +232,8 @@
     def stats(self):
         self.rawserver.add_task(self.stats, self.stats_period)
         data = []
+        data.append(( 0, 0, 0, 0, 0, 0, 0, self.config['max_upload_rate'], 0, self.uptotal0, self.dntotal0, 0, 0, 0 ))
+
         for hash in self.torrent_list:
             cache = self.torrent_cache[hash]
             if self.config['display_path']:
@@ -289,11 +293,33 @@

             data.append(( name, status, progress, peers, seeds, seedsmsg, dist,
                           uprate, dnrate, upamt, dnamt, size, t, msg ))
-        stop = self.Output.display(data)
-        if stop:
+        kcmd = self.Output.display(data)
+        nr = self.config['max_upload_rate']
+        if kcmd in (ord('q'),ord('Q')):
             self.doneflag.set()
+        elif kcmd == ord('+'):
+            nr += 1
+        elif kcmd == ord('-'):
+            nr -= 1
+        elif kcmd == ord('0'):
+            nr = 0
+
+        if nr != self.config['max_upload_rate']:
+            if nr < 1:
+                nr = 0
+            elif nr < 3:
+                nr = 3
+            self.config['max_upload_rate'] = nr
+            self.ratelimiter.set_upload_rate(nr)
+

     def remove(self, hash):
+        d = self.downloads[hash]
+        stats = d.statsfunc()
+        s = stats['stats']
+        self.uptotal0 += s.upTotal
+        self.dntotal0 += s.downTotal
+
         self.torrent_list.remove(hash)
         self.downloads[hash].shutdown()
         del self.downloads[hash]
diff -urN BitTornado-CVS/btlaunchmany.py BitTornado-0.3.8/btlaunchmany.py
--- BitTornado-CVS/btlaunchmany.py      2004-10-05 12:12:52.000000000 -0400
+++ BitTornado-0.3.8/btlaunchmany.py    2004-11-19 18:01:06.000000000 -0500
@@ -49,6 +49,8 @@
 class HeadlessDisplayer:
     def display(self, data):
         print ''
+        ( name, status, progress, peers, seeds, seedsmsg, dist,
+          uprate, dnrate, upamt, dnamt, size, t, msg ) = data.pop(0)
         if not data:
             self.message('no torrents')
         for x in data:
diff -urN BitTornado-CVS/btlaunchmanycurses.py BitTornado-0.3.8/btlaunchmanycurses.py
--- BitTornado-CVS/btlaunchmanycurses.py        2004-10-05 12:15:28.000000000 -0400
+++ BitTornado-0.3.8/btlaunchmanycurses.py      2004-11-24 14:03:29.000000000 -0500
@@ -126,14 +126,14 @@
         self.headerpan = curses.panel.new_panel(self.headerwin)
         self.headerwin.scrollok(0)

-        self.totalwin = curses.newwin(1, self.mainwinw+1,
+        self.totalwin = curses.newwin(2, self.mainwinw+1,
                                       self.mainwinh+1, self.mainwinx)
         self.totalpan = curses.panel.new_panel(self.totalwin)
         self.totalwin.scrollok(0)

-        self.statuswinh = self.scrh-4-self.mainwinh
+        self.statuswinh = self.scrh-5-self.mainwinh
         self.statuswin = curses.newwin(self.statuswinh, self.mainwinw+1,
-                                       self.mainwinh+3, self.mainwinx)
+                                       self.mainwinh+4, self.mainwinx)
         self.statuspan = curses.panel.new_panel(self.statuswin)
         self.statuswin.scrollok(0)

@@ -223,6 +223,8 @@
             self._remake_window()

         self.mainwin.erase()
+        ( name, status, progress, peers, seeds, seedsmsg, dist,
+          maxupr, dnrate, totalupamt, totaldnamt, size, t, msg ) = data.pop(0)
         if data:
             self._display_data(data)
         else:
@@ -234,21 +236,34 @@
               uprate, dnrate, upamt, dnamt, size, t, msg ) in data:
             totalup += uprate
             totaldn += dnrate
+            totalupamt += upamt
+            totaldnamt += dnamt

         totalup = '%s/s' % fmtsize(totalup)
         totaldn = '%s/s' % fmtsize(totaldn)
+        totalupamt = '%s' % fmtsize(totalupamt)
+        totaldnamt = '%s' % fmtsize(totaldnamt)

         self.totalwin.erase()
-        self.totalwin.addnstr(0, self.mainwinw-27, 'Totals:', 7, curses.A_BOLD)
+        if maxupr:
+            totalstr = 'Totals (MaxUL %sKB/s):' % maxupr
+        else:
+            totalstr = 'Totals (MaxUL unl):'
+        self.totalwin.addnstr(0, self.mainwinw-45 + (25-len(totalstr)),
+                              totalstr, 25, curses.A_BOLD)
         self.totalwin.addnstr(0, self.mainwinw-20 + (10-len(totaldn)),
                               totaldn, 10, curses.A_BOLD)
         self.totalwin.addnstr(0, self.mainwinw-10 + (10-len(totalup)),
                               totalup, 10, curses.A_BOLD)
+        self.totalwin.addnstr(1, self.mainwinw-20 + (10-len(totaldnamt)),
+                              totaldnamt, 10, curses.A_BOLD)
+        self.totalwin.addnstr(1, self.mainwinw-10 + (10-len(totalupamt)),
+                              totalupamt, 10, curses.A_BOLD)

         curses.panel.update_panels()
         curses.doupdate()

-        return inchar in (ord('q'),ord('Q'))
+        return inchar #in (ord('q'),ord('Q'))

     def message(self, s):
         self.messages.append(strftime('%x %X - ',localtime(time()))+s)

Author:  Guest [ Thu Nov 25, 2004 3:21 pm ]
Post subject: 

One more fix so it doesn't crash when there's an error:
Code:
diff -urN BitTornado-0.3.8a/BitTornado/launchmanycore.py BitTornado-CVS/BitTornado/launchmanycore.py
--- BitTornado-0.3.8a/BitTornado/launchmanycore.py      2004-11-25 15:25:18.000000000 -0500
+++ BitTornado-CVS/BitTornado/launchmanycore.py 2004-11-25 15:05:37.000000000 -0500
@@ -314,11 +314,14 @@


     def remove(self, hash):
-        d = self.downloads[hash]
-        stats = d.statsfunc()
-        s = stats['stats']
-        self.uptotal0 += s.upTotal
-        self.dntotal0 += s.downTotal
+        try:
+            d = self.downloads[hash]
+            stats = d.statsfunc()
+            s = stats['stats']
+            self.uptotal0 += s.upTotal
+            self.dntotal0 += s.downTotal
+        except:
+            pass

         self.torrent_list.remove(hash)
         self.downloads[hash].shutdown()

Author:  Holy Moly [ Sun Nov 28, 2004 10:30 pm ]
Post subject:  Timing, timing, timing

Along with the idea of an internal shutdown mechanism, how about being able to set the client to increase/decrease ul/dl speed after a certain amount of time, a certain time or after a certain amount of data has been uploaded/downloaded.

Author:  Guest [ Wed Dec 01, 2004 3:58 am ]
Post subject: 

I'm suggesting the next UI to support multiple torrents download/upload. Something like Azureus.

I'm been backing Bittornado since it was earlier Shadows Experimental client. I am STILL reluctant to change to other bt clients, because i find bittornado has still the best core.

Bram Cohen may have created bittorrent. But i say TheShadows improved BT.

Author:  Guest [ Thu Dec 02, 2004 2:59 am ]
Post subject: 

this is similar to Holy Moly's idea but perhaps simpler: download scheduler (to start and stop download at a particular time)

also, an ability to prioritize downloads for several *.torrent files would be nice.

Page 12 of 16 All times are UTC - 7 hours [ DST ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/