|
24 | 24 | from urlparse import urlparse
|
25 | 25 | from os.path import splitext
|
26 | 26 |
|
27 |
| - |
28 | 27 | addon = xbmcaddon.Addon(id='script.module.tvh2kodi')
|
29 | 28 | addonname = addon.getAddonInfo('name')
|
30 | 29 | addonfolder = addon.getAddonInfo('path')
|
|
34 | 33 | tempfolder = os.path.join(addondata, 'temp/')
|
35 | 34 | picons_dest = xbmc.translatePath(xbmcaddon.Addon().getSetting('pdest'))
|
36 | 35 | pdest = os.path.join(picons_dest)
|
37 |
| -zstd = os.path.join(addonfolder, 'bin', 'zstd') |
38 |
| -url_latest = 'http://cvh.libreelec.tv/picons/latest2.json' |
| 36 | +url_latest = 'http://test.mymomentumwebsite.com/latest2.json' |
39 | 37 | latest_json = urllib.urlopen(url_latest)
|
40 |
| -snp_json = os.path.join(addondata, 'data/snp.json') |
41 |
| -srp_json = os.path.join(addondata, 'data/srp.json') |
| 38 | +log_json = os.path.join(addondata, 'data/log.json') |
42 | 39 | log3rdparty = os.path.join(addondata, 'data/3rdparty.log')
|
43 | 40 | logfile = os.path.join(addondata, 'data')
|
44 | 41 | log3rdparty = os.path.join(logfile, '3rdparty.log')
|
45 |
| -logsnpjson = os.path.join(logfile, 'snp.json') |
46 |
| -logsrpjson = os.path.join(logfile, 'srp.json') |
| 42 | +logjson = os.path.join(logfile, 'log.json') |
47 | 43 | exturl = addon.getSetting('purl')
|
48 | 44 | dialog = xbmcgui.Dialog()
|
49 | 45 | header = 'Picons Downloader'
|
|
53 | 49 | now = datetime.datetime.now()
|
54 | 50 | date = '%s-%s-%s' % (now.year,now.month,now.day)
|
55 | 51 |
|
56 |
| -def compare_release_snp(path): |
| 52 | +def compare_release(url_latest, picons_file, picons_source_value): |
57 | 53 | ljson = json.loads(latest_json.read())
|
58 |
| - for key in ljson['Picons']['latest'].keys(): |
59 |
| - latest = key |
60 |
| - if os.path.exists(snp_json): |
61 |
| - with open(snp_json) as release_json: |
| 54 | + picons_src = int(picons_source_value) - 1 |
| 55 | + latest = ljson['Picons']['latest'][picons_src]['name'] |
| 56 | + if os.path.exists(log_json): |
| 57 | + with open(log_json) as release_json: |
62 | 58 | rjson = json.load(release_json)
|
63 |
| - for key1 in rjson['Picons']['latest'].keys(): |
64 |
| - release = key1 |
| 59 | + release = rjson['Picons']['latest'][picons_src]['name'] |
65 | 60 | if latest == release:
|
66 | 61 | if dialog.yesno('Picons Downloader Update', 'Already on latest version.', 'Do you want to download anyway?'):
|
67 |
| - delete_file(path) |
| 62 | + delete_file(log_json) |
68 | 63 | urlpicons = ljson['Picons']['url']
|
69 |
| - snpname = ljson['Picons']['latest'][latest]['snp']['name'] + ".tar.xz" |
70 |
| - url = "%s%s" % (urlpicons, snpname) |
71 |
| - picons_snp(url, url_latest) |
| 64 | + url_base = "%s%s" % (urlpicons, picons_file) |
| 65 | + picons_get(url_base, url_latest) |
72 | 66 | xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(addonname, '"Download finished"', 2000, addonicon))
|
73 | 67 | else:
|
74 | 68 | return
|
75 | 69 | else:
|
76 | 70 | if dialog.yesno('Picons Downloader Update', 'There is a newer version of the icons pack available.', 'Do you want to download anyway?'):
|
77 |
| - delete_file(path) |
78 |
| - urlpicons = ljson['Picons']['url'] |
79 |
| - snpname = ljson['Picons']['latest'][latest]['snp']['name'] + ".tar.xz" |
80 |
| - url = "%s%s" % (urlpicons, snpname) |
81 |
| - picons_snp(url, url_latest) |
82 |
| - xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(addonname, '"Download finished"', 2000, addonicon)) |
83 |
| - else: |
84 |
| - return |
85 |
| - else: |
86 |
| - urlpicons = ljson['Picons']['url'] |
87 |
| - snpname = ljson['Picons']['latest'][latest]['snp']['name'] + ".tar.xz" |
88 |
| - url = "%s%s" % (urlpicons, snpname) |
89 |
| - picons_snp(url, url_latest) |
90 |
| - xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(addonname, '"Download finished"', 2000, addonicon)) |
91 |
| - |
92 |
| -def compare_release_srp(path): |
93 |
| - ljson = json.loads(latest_json.read()) |
94 |
| - for key in ljson['Picons']['latest'].keys(): |
95 |
| - latest = key |
96 |
| - if os.path.exists(srp_json): |
97 |
| - with open(srp_json) as release_json: |
98 |
| - rjson = json.load(release_json) |
99 |
| - for key1 in rjson['Picons']['latest'].keys(): |
100 |
| - release = key1 |
101 |
| - if latest == release: |
102 |
| - if dialog.yesno('Picons Downloader Update', 'Already on latest version.', 'Do you want to download anyway?'): |
103 |
| - delete_file(path) |
| 71 | + delete_file(log_json) |
104 | 72 | urlpicons = ljson['Picons']['url']
|
105 |
| - srpname = ljson['Picons']['latest'][latest]['srp']['name'] + ".tar.xz" |
106 |
| - url = "%s%s" % (urlpicons, srpname) |
107 |
| - picons_srp(url, url_latest) |
108 |
| - xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(addonname, '"Download finished"', 4000, addonicon)) |
109 |
| - else: |
110 |
| - return |
111 |
| - else: |
112 |
| - if dialog.yesno('Picons Downloader Update', 'There is a newer version of the icons pack available.', 'Do you want to download anyway?'): |
113 |
| - delete_file(path) |
114 |
| - urlpicons = ljson['Picons']['url'] |
115 |
| - srpname = ljson['Picons']['latest'][latest]['srp']['name'] + ".tar.xz" |
116 |
| - url = "%s%s" % (urlpicons, srpname) |
117 |
| - picons_srp(url, url_latest) |
| 73 | + url_base = "%s%s" % (urlpicons, picons_file) |
| 74 | + picons_get(url_base, url_latest) |
118 | 75 | xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(addonname, '"Download finished"', 4000, addonicon))
|
119 | 76 | else:
|
120 | 77 | return
|
121 | 78 | else:
|
122 | 79 | urlpicons = ljson['Picons']['url']
|
123 |
| - srpname = ljson['Picons']['latest'][latest]['srp']['name'] + ".tar.xz" |
124 |
| - url = "%s%s" % (urlpicons, srpname) |
125 |
| - picons_srp(url, url_latest) |
| 80 | + url = "%s%s" % (urlpicons, picons_file) |
| 81 | + picons_get(url, url_latest) |
126 | 82 | xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(addonname, '"Download finished"', 4000, addonicon))
|
127 | 83 |
|
128 |
| -def url_snp(): |
129 |
| - ljson = json.loads(latest_json.read()) |
130 |
| - for key in ljson['Picons']['latest'].keys(): |
131 |
| - latest = key |
132 |
| - urlpicons = ljson['Picons']['url'] |
133 |
| - snpname = ljson['Picons']['latest'][latest]['snp']['name'] + ".tar.xz" |
134 |
| - url = "%s%s" % (urlpicons, snpname) |
135 |
| - picons_snp(url, url_latest) |
136 |
| - xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(addonname, '"Download the picons is finish"', 4000, addonicon)) |
137 |
| - |
138 |
| -def url_srp(): |
139 |
| - ljson = json.loads(latest_json.read()) |
140 |
| - for key in ljson['Picons']['latest'].keys(): |
141 |
| - latest = key |
142 |
| - urlpicons = ljson['Picons']['url'] |
143 |
| - srpname = ljson['Picons']['latest'][latest]['srp']['name'] + ".tar.xz" |
144 |
| - url = "%s%s" % (urlpicons, srpname) |
145 |
| - picons_srp(url, url_latest) |
146 |
| - xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(addonname, '"Download the picons is finish"', 4000, addonicon)) |
147 |
| - |
148 |
| -def url_external(): |
| 84 | +def url_external(sel_purl): |
149 | 85 | if addon.getSetting('pdest') == '':
|
150 | 86 | xbmcgui.Dialog().ok(addonname, "You need choose destination for picons", "", "")
|
151 | 87 | return
|
152 | 88 | elif addon.getSetting('purl') == '':
|
153 | 89 | xbmcgui.Dialog().ok(addonname, "You need choose the external url", "", "")
|
154 | 90 | return
|
155 | 91 | else:
|
156 |
| - picons_ext(exturl) |
| 92 | + picons_ext(sel_purl) |
157 | 93 | xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(addonname, '"Download the picons is finish"', 4000, addonicon))
|
158 | 94 |
|
159 | 95 | def create_directories(path):
|
@@ -235,35 +171,26 @@ def extract_zip(_in, _out, dp, header):
|
235 | 171 | return False
|
236 | 172 | return True
|
237 | 173 |
|
238 |
| -def picons_snp(url, urljson): |
| 174 | +def picons_get(url_base, urljson): |
239 | 175 | create_directories(tempfolder)
|
240 |
| -# packageFile = os.path.join(tempfolder, 'picons-snp.tar.zst') |
241 |
| - packageFile = os.path.join(tempfolder, 'picons-snp.tar.xz') |
242 |
| - downloader(url,packageFile,header) |
243 |
| - create_directories(pdest) |
244 |
| -# extract_zstd(packageFile) |
245 |
| - extract_xz(packageFile) |
| 176 | + try: |
| 177 | + packageFile = os.path.join(tempfolder, 'picons-snp.tar.zst') |
| 178 | + 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') |
| 184 | + url = url_base + ".tar.xz" |
| 185 | + downloader(url,packageFile,header) |
| 186 | + create_directories(pdest) |
| 187 | + extract_xz(packageFile) |
246 | 188 | extract_tar('picons-snp.tar', pdest)
|
247 | 189 | delete_tempfiles()
|
248 | 190 | create_log
|
249 | 191 | create_directories(logfile)
|
250 |
| - delete_file(logsnpjson) |
251 |
| - subprocess_cmd('%s %s %s' % ('wget -O', logsnpjson, urljson)) |
252 |
| - |
253 |
| -def picons_srp(url, urljson): |
254 |
| - create_directories(tempfolder) |
255 |
| -# packageFile = os.path.join(tempfolder, 'picons-srp.tar.zst') |
256 |
| - packageFile = os.path.join(tempfolder, 'picons-srp.tar.xz') |
257 |
| - downloader(url,packageFile,header) |
258 |
| - create_directories(pdest) |
259 |
| -# extract_zstd(packageFile) |
260 |
| - extract_xz(packageFile) |
261 |
| - extract_tar('picons-srp.tar', pdest) |
262 |
| - delete_tempfiles() |
263 |
| - create_log |
264 |
| - create_directories(logfile) |
265 |
| - delete_file(logsrpjson) |
266 |
| - subprocess_cmd('%s %s %s' % ('wget -O', logsrpjson, urljson)) |
| 192 | + delete_file(logjson) |
| 193 | + subprocess_cmd('%s %s %s' % ('wget -O', logjson, urljson)) |
267 | 194 |
|
268 | 195 | def picons_ext(url):
|
269 | 196 | parsed = urlparse(exturl)
|
|
0 commit comments