[Debtorrent-commits] r53 - in /debtorrent/trunk: ./ DebTorrent/BT1/track.py DebTorrent/download_bt1.py DebTorrent/launchmanycore.py DebTorrent/parsedir.py btdownloadheadless.py

camrdale-guest at users.alioth.debian.org camrdale-guest at users.alioth.debian.org
Fri May 18 19:54:26 UTC 2007


Author: camrdale-guest
Date: Fri May 18 19:54:26 2007
New Revision: 53

URL: http://svn.debian.org/wsvn/debtorrent/?sc=1&rev=53
Log:
Update status parsing to work better with saveas options.
Add status parsing to btlaunchamny.

Modified:
    debtorrent/trunk/   (props changed)
    debtorrent/trunk/DebTorrent/BT1/track.py
    debtorrent/trunk/DebTorrent/download_bt1.py
    debtorrent/trunk/DebTorrent/launchmanycore.py
    debtorrent/trunk/DebTorrent/parsedir.py
    debtorrent/trunk/btdownloadheadless.py

Propchange: debtorrent/trunk/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri May 18 19:54:26 2007
@@ -1,1 +1,3 @@
 *.pyc
+.project
+.pydevproject

Modified: debtorrent/trunk/DebTorrent/BT1/track.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/track.py?rev=53&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/track.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/track.py Fri May 18 19:54:26 2007
@@ -1030,7 +1030,7 @@
                           self.allowed_dir_files, self.allowed_dir_blocked,
                           [".dtorrent"] )
             ( self.allowed, self.allowed_dir_files, self.allowed_dir_blocked,
-                added, garbage2 ) = r
+                added, garbage2, garbage3 ) = r
             
             self.state['allowed'] = self.allowed
             self.state['allowed_dir_files'] = self.allowed_dir_files

Modified: debtorrent/trunk/DebTorrent/download_bt1.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/download_bt1.py?rev=53&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/download_bt1.py (original)
+++ debtorrent/trunk/DebTorrent/download_bt1.py Fri May 18 19:54:26 2007
@@ -53,6 +53,8 @@
 except:
     True = 1
     False = 0
+
+DEBUG = True
 
 defaults = [
     ('max_uploads', 7,
@@ -180,6 +182,10 @@
         "minutes between automatic flushes to disk (0 = disabled)"),
     ('dedicated_seed_id', '',
         "code to send to tracker identifying as a dedicated seed"),
+    ('status_to_download', 0,
+        'determines which packages to download based on /var/lib/dpkg/status ' +
+        '(0 = disabled [download all or use --priority], 1 = download updated versions of installed packages, ' +
+         '2 = download all installed packages)'),
     ]
 
 argslistheader = 'Arguments are:\n\n'
@@ -440,11 +446,11 @@
                     pieces.append(p[2])
                     if (get_priority and p[3] and installed_versions.has_key(p[3])):
                         if status_to_download == 2:
-                            priority[path.join(uniconvert(name, encoding), temp)] = 1
+                            priority[temp] = 1
                         elif (status_to_download == 1 and p[4]):
                             ret = system('dpkg --compare-versions "' + installed_versions[p[3]] + '" lt "' + p[4] + '"')
                             if ret == 0:
-                                priority[path.join(uniconvert(name, encoding), temp)] = 1
+                                priority[temp] = 1
                 p = [None, None, None, None, None]
             if line[:9] == "Filename:":
                 p[1] = line[10:]
@@ -646,17 +652,22 @@
         disabled_files = None
         if self.selector_enabled:
             if self.status_priority is not None:
+                if DEBUG:
+                    print 'original priority:', str(self.status_priority)
                 if len(self.status_priority) == 0:
                     self._failed('Nothing to download')
                     if self.doneflag.isSet():
                         return None
-                status_priority = []
+                updated_priority = {}
+                for k, v in self.status_priority.items():
+                    updated_priority[path.join(self.filename,k)] = v
+                if DEBUG:
+                    print 'updated priority:', str(updated_priority)
+                self.status_priority = []
                 for file, length in self.files:
-                    status_priority.append(self.status_priority.get(file, -1))
-                if len(status_priority) == len(self.files):
-                    self.status_priority = status_priority
-                else:
-                    self.status_priority = None
+                    self.status_priority.append(updated_priority.get(file, -1))
+                if DEBUG:
+                    print 'final priority:', str(self.status_priority)
             self.priority = self.config['priority']
             if self.priority:
                 try:

Modified: debtorrent/trunk/DebTorrent/launchmanycore.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/launchmanycore.py?rev=53&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/launchmanycore.py (original)
+++ debtorrent/trunk/DebTorrent/launchmanycore.py Fri May 18 19:54:26 2007
@@ -49,7 +49,7 @@
     return '%d:%02d:%02d' % (h, m, s)
 
 class SingleDownload:
-    def __init__(self, controller, hash, response, config, myid):
+    def __init__(self, controller, hash, response, config, myid, status_priority = None):
         self.controller = controller
         self.hash = hash
         self.response = response
@@ -71,7 +71,8 @@
 
         d = BT1Download(self.display, self.finished, self.error,
                         controller.exchandler, self.doneflag, config, response,
-                        hash, myid, self.rawserver, controller.listen_port)
+                        hash, myid, self.rawserver, controller.listen_port,
+                        status_priority)
         self.d = d
 
     def start(self):
@@ -217,17 +218,18 @@
                                 
         r = parsedir(self.torrent_dir, self.torrent_cache,
                      self.file_cache, self.blocked_files,
-                     return_metainfo = True, errfunc = self.Output.message)
+                     return_metainfo = True, errfunc = self.Output.message, 
+                     status_to_download = self.config['status_to_download'])
 
         ( self.torrent_cache, self.file_cache, self.blocked_files,
-            added, removed ) = r
+            added, removed, status_priorities ) = r
 
         for hash, data in removed.items():
             self.Output.message('dropped "'+data['path']+'"')
             self.remove(hash)
         for hash, data in added.items():
             self.Output.message('added "'+data['path']+'"')
-            self.add(hash, data)
+            self.add(hash, data, status_priorities.get(hash, None))
 
     def stats(self):            
         self.rawserver.add_task(self.stats, self.stats_period)
@@ -300,7 +302,7 @@
         self.downloads[hash].shutdown()
         del self.downloads[hash]
         
-    def add(self, hash, data):
+    def add(self, hash, data, status_priority = None):
         c = self.counter
         self.counter += 1
         x = ''
@@ -308,7 +310,8 @@
             x = mapbase64[c & 0x3F]+x
             c >>= 6
         peer_id = createPeerID(x)
-        d = SingleDownload(self, hash, data['metainfo'], self.config, peer_id)
+        d = SingleDownload(self, hash, data['metainfo'], self.config, 
+                           peer_id, status_priority)
         self.torrent_list.append(hash)
         self.downloads[hash] = d
         d.start()

Modified: debtorrent/trunk/DebTorrent/parsedir.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/parsedir.py?rev=53&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/parsedir.py (original)
+++ debtorrent/trunk/DebTorrent/parsedir.py Fri May 18 19:54:26 2007
@@ -23,7 +23,7 @@
 
 def parsedir(directory, parsed, files, blocked,
              exts = ['dtorrent','Packages'], 
-             return_metainfo = False, errfunc = _errfunc):
+             return_metainfo = False, errfunc = _errfunc, status_to_download = 0):
     if NOISY:
         errfunc('checking dir')
     dirs_to_check = [directory]
@@ -54,6 +54,7 @@
     to_add = []
     added = {}
     removed = {}
+    status_priorities = {}
     # files[path] = [(modification_time, size), hash], hash is 0 if the file
     # has not been successfully parsed
     for p,v in new_files.items():   # re-add old items and check for changes
@@ -92,7 +93,7 @@
         if NOISY:
             errfunc('adding '+p)
         try:
-            d = get_response(p, '', errfunc)
+            (d, status_priority) = get_response(p, '', status_to_download, errfunc)
             h = sha(bencode(d['info'])).digest()
             new_file[1] = h
             if new_parsed.has_key(h):
@@ -136,6 +137,7 @@
             errfunc('... successful')
         new_parsed[h] = a
         added[h] = a
+        status_priorities[h] = status_priority
 
     for p,v in files.items():       # and finally, mark removed torrents
         if not new_files.has_key(p) and not blocked.has_key(p):
@@ -145,5 +147,5 @@
 
     if NOISY:
         errfunc('done checking')
-    return (new_parsed, new_files, new_blocked, added, removed)
+    return (new_parsed, new_files, new_blocked, added, removed, status_priorities)
 

Modified: debtorrent/trunk/btdownloadheadless.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/btdownloadheadless.py?rev=53&op=diff
==============================================================================
--- debtorrent/trunk/btdownloadheadless.py (original)
+++ debtorrent/trunk/btdownloadheadless.py Fri May 18 19:54:26 2007
@@ -148,10 +148,6 @@
         defaultsToIgnore = ['responsefile', 'url', 'priority']
         configdir.setDefaults(defaults,defaultsToIgnore)
         configdefaults = configdir.loadConfig()
-        defaults.append(('status_to_download', 0,
-        'determines which packages to download based on /var/lib/dpkg/status ' +
-        '(0 = disabled [download all or use --priority], 1 = download updated versions of installed packages, ' +
-         '2 = download all installed packages)'))
         defaults.append(('save_options',0,
          "whether to save the current options as the new default configuration " +
          "(only for btdownloadheadless.py)"))




More information about the Debtorrent-commits mailing list