the forums at degreez.net

It is currently Thu Mar 28, 2024 8:51 am

All times are UTC - 7 hours [ DST ]




Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 233 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13, 14, 15, 16  Next
Author Message
 Post subject: Re: File Extentions
PostPosted: Mon Nov 08, 2004 3:14 pm 
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..


Top
  
 
 Post subject: Rate Settings
PostPosted: Wed Nov 10, 2004 8:36 am 
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!


Top
  
 
 Post subject: Suggestions
PostPosted: Thu Nov 11, 2004 4:50 am 
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.


Top
  
 
 Post subject:
PostPosted: Mon Nov 15, 2004 10:03 pm 
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).


Top
  
 
 Post subject: ideas
PostPosted: Tue Nov 16, 2004 11:21 am 
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.


Top
  
 
 Post subject:
PostPosted: Fri Nov 19, 2004 11:56 am 
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.


Top
  
 
 Post subject: saving Torrents
PostPosted: Fri Nov 19, 2004 2:41 pm 
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.


Top
  
 
 Post subject: Feature requests
PostPosted: Tue Nov 23, 2004 1:58 pm 
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-


Top
  
 
 Post subject: Close when complete
PostPosted: Tue Nov 23, 2004 2:08 pm 
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


Top
  
 
 Post subject:
PostPosted: Wed Nov 24, 2004 1:01 pm 
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.)


Top
  
 
 Post subject:
PostPosted: Wed Nov 24, 2004 2:13 pm 
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)


Top
  
 
 Post subject:
PostPosted: Thu Nov 25, 2004 3:21 pm 
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()


Top
  
 
 Post subject: Timing, timing, timing
PostPosted: Sun Nov 28, 2004 10:30 pm 
Offline

Joined: Tue Mar 23, 2004 10:44 pm
Posts: 36
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.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Dec 01, 2004 3:58 am 
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.


Top
  
 
 Post subject:
PostPosted: Thu Dec 02, 2004 2:59 am 
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.


Top
  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 233 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13, 14, 15, 16  Next

All times are UTC - 7 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 32 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group