瀏覽代碼

fixed a couple of Windows exe update bugs

Filippo Valsorda 13 年之前
父節點
當前提交
f36cd07685
共有 3 個文件被更改,包括 8 次插入6 次删除
  1. 二進制
      youtube-dl
  2. 二進制
      youtube-dl.exe
  3. 8 6
      youtube_dl/__init__.py

二進制
youtube-dl


二進制
youtube-dl.exe


+ 8 - 6
youtube_dl/__init__.py

@@ -60,13 +60,17 @@ def updateSelf(downloader, filename):
 	urlv.close()
 	urlv.close()
 
 
 	if hasattr(sys, "frozen"): #py2exe
 	if hasattr(sys, "frozen"): #py2exe
-		directory = os.path.dirname(filename)
 		exe = os.path.abspath(filename)
 		exe = os.path.abspath(filename)
+		directory = os.path.dirname(exe)
 		if not os.access(directory, os.W_OK):
 		if not os.access(directory, os.W_OK):
 			sys.exit('ERROR: no write permissions on %s' % directory)
 			sys.exit('ERROR: no write permissions on %s' % directory)
 			
 			
 		try:
 		try:
-			urllib.urlretrieve(UPDATE_URL_EXE, exe + '.new')
+			urlh = urllib2.urlopen(UPDATE_URL_EXE)
+			newcontent = urlh.read()
+			urlh.close()
+			with open(exe + '.new', 'wb') as outf:
+				outf.write(newcontent)
 		except (IOError, OSError), err:
 		except (IOError, OSError), err:
 			sys.exit('ERROR: unable to download latest version')
 			sys.exit('ERROR: unable to download latest version')
 			
 			
@@ -75,6 +79,7 @@ def updateSelf(downloader, filename):
 			b = open(bat, 'w')
 			b = open(bat, 'w')
 			
 			
 			print >> b, """
 			print >> b, """
+echo Updating youtube-dl...
 ping 127.0.0.1 -n 5 -w 1000 > NUL
 ping 127.0.0.1 -n 5 -w 1000 > NUL
 move /Y "%s.new" "%s"
 move /Y "%s.new" "%s"
 del "%s"
 del "%s"
@@ -95,11 +100,8 @@ del "%s"
 			sys.exit('ERROR: unable to download latest version')
 			sys.exit('ERROR: unable to download latest version')
 
 
 		try:
 		try:
-			outf = open(filename, 'wb')
-			try:
+			with open(filename, 'wb') as outf:
 				outf.write(newcontent)
 				outf.write(newcontent)
-			finally:
-				outf.close()
 		except (IOError, OSError), err:
 		except (IOError, OSError), err:
 			sys.exit('ERROR: unable to overwrite current version')
 			sys.exit('ERROR: unable to overwrite current version')