Skip to content

Commit 003c06c

Browse files
committed
picons check file type exists
1 parent 486b545 commit 003c06c

File tree

2 files changed

+49
-28
lines changed

2 files changed

+49
-28
lines changed

default.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,7 @@ def _ArchiveDirectory(parentDirectory):
204204
zipOut.close()
205205

206206
def picons_param_load():
207-
# url_latest = 'http://cvh.libreelec.tv/picons/latest2.json'
208-
url_latest = 'http://test.mymomentumwebsite.com/latest2.json'
207+
url_latest = 'http://cvh.libreelec.tv/picons/latest2.json'
209208
ljson = requests.get(url_latest).json()
210209
picons_source_list = ['Custom URL']
211210
picons_source_files = ['Custom URL']

picons.py

Lines changed: 48 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
tempfolder = os.path.join(addondata, 'temp/')
3434
picons_dest = xbmc.translatePath(xbmcaddon.Addon().getSetting('pdest'))
3535
pdest = os.path.join(picons_dest)
36-
url_latest = 'http://test.mymomentumwebsite.com/latest2.json'
36+
url_latest = 'http://cvh.libreelec.tv/picons/latest2.json'
3737
latest_json = urllib.urlopen(url_latest)
3838
log_json = os.path.join(addondata, 'data/log.json')
3939
log3rdparty = os.path.join(addondata, 'data/3rdparty.log')
@@ -48,6 +48,8 @@
4848
exturl = xbmcaddon.Addon().getSetting('purl')
4949
now = datetime.datetime.now()
5050
date = '%s-%s-%s' % (now.year,now.month,now.day)
51+
zstd = os.path.join(addonfolder, '/bin/zstd')
52+
zstd_path = os.path.join(addonfolder, 'bin')
5153

5254
def compare_release(url_latest, picons_file, picons_source_value):
5355
ljson = json.loads(latest_json.read())
@@ -62,24 +64,21 @@ def compare_release(url_latest, picons_file, picons_source_value):
6264
delete_file(log_json)
6365
urlpicons = ljson['Picons']['url']
6466
url_base = "%s%s" % (urlpicons, picons_file)
65-
picons_get(url_base, url_latest)
66-
xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(addonname, '"Download finished"', 2000, addonicon))
67+
picons_get(url_base, url_latest, picons_file)
6768
else:
6869
return
6970
else:
7071
if dialog.yesno('Picons Downloader Update', 'There is a newer version of the icons pack available.', 'Do you want to download anyway?'):
7172
delete_file(log_json)
7273
urlpicons = ljson['Picons']['url']
7374
url_base = "%s%s" % (urlpicons, picons_file)
74-
picons_get(url_base, url_latest)
75-
xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(addonname, '"Download finished"', 4000, addonicon))
75+
picons_get(url_base, url_latest, picons_file)
7676
else:
7777
return
7878
else:
7979
urlpicons = ljson['Picons']['url']
8080
url = "%s%s" % (urlpicons, picons_file)
81-
picons_get(url, url_latest)
82-
xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(addonname, '"Download finished"', 4000, addonicon))
81+
picons_get(url, url_latest, picons_file)
8382

8483
def url_external(sel_purl):
8584
if addon.getSetting('pdest') == '':
@@ -118,7 +117,6 @@ def subprocess_cmd(command):
118117
print proc_stdout
119118

120119
def downloader(url,dest, header):
121-
122120
dp.create(header,"Downloading","Please Wait...")
123121
urllib.urlretrieve(url,dest,lambda nb, bs, fs, url=url: _pbhook(nb,bs,fs,url,dp))
124122

@@ -141,7 +139,7 @@ def extract_xz(_in):
141139
subprocess_cmd(extract)
142140

143141
def extract_zstd(_in):
144-
extract = '%s%s %s %s' % (addonfolder, zstd,'-d', _in)
142+
extract = '%s%s %s %s' % (addonfolder, zstd, '-d', _in)
145143
subprocess_cmd(extract)
146144

147145
def extract_tar(picons, _out):
@@ -171,26 +169,50 @@ def extract_zip(_in, _out, dp, header):
171169
return False
172170
return True
173171

174-
def picons_get(url_base, urljson):
172+
def picons_get(url_base, urljson, picons_file):
175173
create_directories(tempfolder)
176-
try:
177-
packageFile = os.path.join(tempfolder, 'picons-snp.tar.zst')
174+
if os.path.exists(zstd_path):
175+
picons_file_ext = picons_file + ".tar.zst"
176+
packageFile = os.path.join(tempfolder, picons_file_ext)
178177
url = url_base + ".tar.zst"
179-
downloader(url,packageFile,header)
180-
create_directories(pdest)
181-
extract_zstd(packageFile)
182-
except:
183-
packageFile = os.path.join(tempfolder, 'picons-snp.tar.xz')
178+
check_file = urllib.urlopen(url)
179+
if check_file.getcode() == 200:
180+
downloader(url,packageFile,header)
181+
create_directories(pdest)
182+
extract_zstd(packageFile)
183+
file_ok = True
184+
elif check_file.getcode() == 404:
185+
picons_file_ext = picons_file + ".tar.xz"
186+
packageFile = os.path.join(tempfolder, picons_file_ext)
187+
url = url_base + ".tar.xz"
188+
downloader(url,packageFile,header)
189+
create_directories(pdest)
190+
extract_xz(packageFile)
191+
file_ok = True
192+
else:
193+
file_ok = False
194+
else:
195+
picons_file_ext = picons_file + ".tar.xz"
196+
packageFile = os.path.join(tempfolder, picons_file_ext)
184197
url = url_base + ".tar.xz"
185-
downloader(url,packageFile,header)
186-
create_directories(pdest)
187-
extract_xz(packageFile)
188-
extract_tar('picons-snp.tar', pdest)
189-
delete_tempfiles()
190-
create_log
191-
create_directories(logfile)
192-
delete_file(logjson)
193-
subprocess_cmd('%s %s %s' % ('wget -O', logjson, urljson))
198+
check_file = urllib.urlopen(url)
199+
if check_file.getcode() == 200:
200+
downloader(url,packageFile,header)
201+
create_directories(pdest)
202+
extract_xz(packageFile)
203+
file_ok = True
204+
else:
205+
file_ok = False
206+
if file_ok == True:
207+
extract_tar(picons_file + '.tar', pdest)
208+
delete_tempfiles()
209+
create_log
210+
create_directories(logfile)
211+
delete_file(logjson)
212+
subprocess_cmd('%s %s %s' % ('wget -O', logjson, urljson))
213+
xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(addonname, '"Download finished"', 4000, addonicon))
214+
else:
215+
dialog.ok('Picons Download Failed!', 'There was an error trying to download the picons.', 'Please try again later.')
194216

195217
def picons_ext(url):
196218
parsed = urlparse(exturl)

0 commit comments

Comments
 (0)