[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