33
33
tempfolder = os .path .join (addondata , 'temp/' )
34
34
picons_dest = xbmc .translatePath (xbmcaddon .Addon ().getSetting ('pdest' ))
35
35
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'
37
37
latest_json = urllib .urlopen (url_latest )
38
38
log_json = os .path .join (addondata , 'data/log.json' )
39
39
log3rdparty = os .path .join (addondata , 'data/3rdparty.log' )
48
48
exturl = xbmcaddon .Addon ().getSetting ('purl' )
49
49
now = datetime .datetime .now ()
50
50
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' )
51
53
52
54
def compare_release (url_latest , picons_file , picons_source_value ):
53
55
ljson = json .loads (latest_json .read ())
@@ -62,24 +64,21 @@ def compare_release(url_latest, picons_file, picons_source_value):
62
64
delete_file (log_json )
63
65
urlpicons = ljson ['Picons' ]['url' ]
64
66
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 )
67
68
else :
68
69
return
69
70
else :
70
71
if dialog .yesno ('Picons Downloader Update' , 'There is a newer version of the icons pack available.' , 'Do you want to download anyway?' ):
71
72
delete_file (log_json )
72
73
urlpicons = ljson ['Picons' ]['url' ]
73
74
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 )
76
76
else :
77
77
return
78
78
else :
79
79
urlpicons = ljson ['Picons' ]['url' ]
80
80
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 )
83
82
84
83
def url_external (sel_purl ):
85
84
if addon .getSetting ('pdest' ) == '' :
@@ -118,7 +117,6 @@ def subprocess_cmd(command):
118
117
print proc_stdout
119
118
120
119
def downloader (url ,dest , header ):
121
-
122
120
dp .create (header ,"Downloading" ,"Please Wait..." )
123
121
urllib .urlretrieve (url ,dest ,lambda nb , bs , fs , url = url : _pbhook (nb ,bs ,fs ,url ,dp ))
124
122
@@ -141,7 +139,7 @@ def extract_xz(_in):
141
139
subprocess_cmd (extract )
142
140
143
141
def extract_zstd (_in ):
144
- extract = '%s%s %s %s' % (addonfolder , zstd ,'-d' , _in )
142
+ extract = '%s%s %s %s' % (addonfolder , zstd , '-d' , _in )
145
143
subprocess_cmd (extract )
146
144
147
145
def extract_tar (picons , _out ):
@@ -171,26 +169,50 @@ def extract_zip(_in, _out, dp, header):
171
169
return False
172
170
return True
173
171
174
- def picons_get (url_base , urljson ):
172
+ def picons_get (url_base , urljson , picons_file ):
175
173
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 )
178
177
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 )
184
197
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.' )
194
216
195
217
def picons_ext (url ):
196
218
parsed = urlparse (exturl )
0 commit comments