@erhan/utopyatv 0.1.13 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/assets/index-B-WH3SLO.js +15 -0
- package/app/index.html +58 -1
- package/package.json +1 -1
- package/app/assets/index-DWRQ_zv5.js +0 -15
package/app/index.html
CHANGED
|
@@ -5,7 +5,64 @@
|
|
|
5
5
|
<meta charset="utf-8" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
<title>UtopyaTV</title>
|
|
8
|
-
<script
|
|
8
|
+
<script>// .wgt açılışı (vite.config.ts bunu index.html'e gömer; Chromium 56: ES5).
|
|
9
|
+
// Samsung, mağaza dışı uygulamanın kendini kurmasına izin vermez: paket bir kez kurulur, npm'de daha yeni sürüm varsa
|
|
10
|
+
// onun kodu jsDelivr'den yüklenir. Kod kurulu uygulamanın sayfasında çalıştığı için AVPlay ve Tizen API'leri kullanılır.
|
|
11
|
+
// Ağ yoksa ya da yükleme düşerse en son açılan uzak sürüm (tarayıcı önbelleği), o da olmazsa paketteki sürüm açılır;
|
|
12
|
+
// paketteki eski koda dönmek yeni sürümün yükselttiği veritabanını açamazdı.
|
|
13
|
+
// TizenBrew (tizen yok) ve yerel derleme (sürümde "-") paketteki kodu açar.
|
|
14
|
+
(function () {
|
|
15
|
+
var LOCAL = './assets/index-B-WH3SLO.js'
|
|
16
|
+
var VERSION = '0.1.14'
|
|
17
|
+
var CDN = 'https://cdn.jsdelivr.net/npm/@erhan/utopyatv@'
|
|
18
|
+
var LATEST = 'https://registry.npmjs.org/@erhan%2futopyatv/latest'
|
|
19
|
+
var SAVED = 'shellVersion'
|
|
20
|
+
|
|
21
|
+
function newer(a, b) {
|
|
22
|
+
var x = a.split('.'), y = b.split('.')
|
|
23
|
+
for (var i = 0; i < 3; i++) if ((+x[i] || 0) !== (+y[i] || 0)) return (+x[i] || 0) > (+y[i] || 0)
|
|
24
|
+
return false
|
|
25
|
+
}
|
|
26
|
+
function get(url, ms, done) {
|
|
27
|
+
var x = new XMLHttpRequest()
|
|
28
|
+
x.open('GET', url)
|
|
29
|
+
x.timeout = ms
|
|
30
|
+
x.onload = function () { done(x.status === 200 ? x.responseText : null) }
|
|
31
|
+
x.onerror = x.ontimeout = function () { done(null) }
|
|
32
|
+
x.send()
|
|
33
|
+
}
|
|
34
|
+
function script(src, onload, onerror) {
|
|
35
|
+
var s = document.createElement('script')
|
|
36
|
+
s.src = src
|
|
37
|
+
s.onload = onload
|
|
38
|
+
s.onerror = onerror
|
|
39
|
+
document.head.appendChild(s)
|
|
40
|
+
}
|
|
41
|
+
function local() { script(LOCAL) }
|
|
42
|
+
function remote(v, fail) {
|
|
43
|
+
get(CDN + v + '/app/index.html', 5000, function (html) {
|
|
44
|
+
var m = html && /assets\/index-[\w-]+\.js/.exec(html)
|
|
45
|
+
if (!m) return fail()
|
|
46
|
+
script(CDN + v + '/app/' + m[0], function () { try { localStorage.setItem(SAVED, v) } catch (e) {} }, fail)
|
|
47
|
+
})
|
|
48
|
+
}
|
|
49
|
+
function start() {
|
|
50
|
+
if (typeof tizen === 'undefined' || VERSION.indexOf('-') >= 0) return local()
|
|
51
|
+
var saved = null
|
|
52
|
+
try { saved = localStorage.getItem(SAVED) } catch (e) {}
|
|
53
|
+
function fallback() { if (saved && newer(saved, VERSION)) remote(saved, local); else local() }
|
|
54
|
+
get(LATEST, 3000, function (json) {
|
|
55
|
+
var v = null
|
|
56
|
+
try { v = JSON.parse(json).version } catch (e) {}
|
|
57
|
+
if (!v) fallback()
|
|
58
|
+
else if (newer(v, VERSION)) remote(v, fallback)
|
|
59
|
+
else local()
|
|
60
|
+
})
|
|
61
|
+
}
|
|
62
|
+
// Eski <script defer> gibi: #app hazır olunca.
|
|
63
|
+
document.addEventListener('DOMContentLoaded', start)
|
|
64
|
+
})()
|
|
65
|
+
</script>
|
|
9
66
|
</head>
|
|
10
67
|
<body>
|
|
11
68
|
<div id="video"></div>
|