Author: elias
Date: Sat May 26 13:32:38 2007
New Revision: 17865
URL: http://svn.gna.org/viewcvs/wesnoth?rev=17865&view=rev
Log:
fixed download option for raw packets from the campaign server
Modified:
trunk/utils/campaigns_client.py
Modified: trunk/utils/campaigns_client.py
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/utils/campaigns_client.py?rev=17865&r1=17864&r2=17865&view=diff
==============================================================================
--- trunk/utils/campaigns_client.py (original)
+++ trunk/utils/campaigns_client.py Sat May 26 13:32:38 2007
@@ -333,14 +333,17 @@
data = self.decode_WML(packet)
return data
- def get_campaign_async(self, name):
+ def get_campaign_async(self, name, raw = False):
"""
This is like get_campaign, but returns immediately, doing server
communications in a background thread.
"""
class MyThread(threading.Thread):
def run(self):
- data = self.cs.get_campaign(self.name)
+ if raw:
+ data = self.cs.get_campaign_raw(self.name)
+ else:
+ data = self.cs.get_campaign(self.name)
self.data = data
self.event.set()
@@ -451,7 +454,8 @@
help = "remove the named campaign from the server, " +
"set the password -P")
optionparser.add_option("-R", "--raw-download",
- help = "download the named campaign as a binary WML packet")
+ action = "store_true",
+ help = "download as a binary WML packet")
optionparser.add_option("-U", "--unpack",
help = "unpack the file UNPACK as a binary WML packet " +
"(specify the campaign path with -c)")
@@ -507,17 +511,20 @@
if re.search(options.download, name):
fetchlist.append(name)
for name in fetchlist:
- mythread = cs.get_campaign_async(name)
+ mythread = cs.get_campaign_async(name, options.raw_download)
while not mythread.event.isSet():
mythread.event.wait(1)
print "%s: %d/%d" % (name, cs.counter, cs.length)
- print "Unpacking %s..." % name
- cs.unpackdir(mythread.data, options.campaigns_dir,
- verbose = options.verbose)
- for message in mythread.data.find_all("message", "error"):
- print message.get_text_val("message")
+ if options.raw_download:
+ file(name, "w").write(mythread.data)
+ else:
+ print "Unpacking %s..." % name
+ cs.unpackdir(mythread.data, options.campaigns_dir,
+ verbose = options.verbose)
+ for message in mythread.data.find_all("message", "error"):
+ print message.get_text_val("message")
elif options.remove:
cs = CampaignBrowser(address)
data = cs.delete_campaign(options.remove, options.password)
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits