def update_youtube_dl_core(url,name,action_type):
#credit to ruuk for most of the download code
import tarfile
if action_type=='download':
newVersion=note_ytdl_versions()
LATEST_URL=YTDL_LATEST_URL_TEMPLATE.format(newVersion)
profile = xbmc.translatePath(profile_path) #xbmc.translatePath(addon.getAddonInfo('profile')).decode('utf-8')
archivePath = os.path.join(profile,'youtube_dl.tar.gz')
extractedPath = os.path.join(profile,'youtube-dl')
extracted_core_path=os.path.join(extractedPath,'youtube_dl')
#ytdl_core_path xbmc.translatePath( addon_path+"/resources/lib/youtube_dl/" )
try:
if os.path.exists(extractedPath):
shutil.rmtree(extractedPath, ignore_errors=True)
update_dl_status('temp files removed')
update_dl_status('Downloading {0} ...'.format(newVersion))
log(' From: {0}'.format(LATEST_URL))
log(' to: {0}'.format(archivePath))
urllib.urlretrieve(LATEST_URL,filename=archivePath)
if os.path.exists(archivePath):
update_dl_status('Extracting ...')
with tarfile.open(archivePath,mode='r:gz') as tf:
members = [m for m in tf.getmembers() if m.name.startswith('youtube-dl/youtube_dl')] #get just the files from the youtube_dl source directory
tf.extractall(path=profile,members=members)
else:
update_dl_status('Download failed')
except Exception as e:
update_dl_status('Error:' + str(e))
update_dl_status('Updating...')
if os.path.exists(extracted_core_path):
log( ' extracted dir exists:'+extracted_core_path)
if os.path.exists(ytdl_core_path):
log( ' destination dir exists:'+ytdl_core_path)
shutil.rmtree(ytdl_core_path, ignore_errors=True)
update_dl_status(' Old ytdl core removed')
xbmc.sleep(1000)
try:
shutil.move(extracted_core_path, ytdl_core_path)
update_dl_status(' New core copied')
xbmc.sleep(1000)
update_dl_status('Update complete')
xbmc.Monitor().waitForAbort(2.0)
#ourVersion=ytdl_get_version_info('local')
setSetting('ytdl_btn_check_version', "")
setSetting('ytdl_btn_download', "")
except Exception as e:
update_dl_status('Failed...')
log( 'move failed:'+str(e))
elif action_type=='checkversion':
note_ytdl_versions()
评论列表
文章目录