From e0c62a510b62ce1c0150a10ad35ec1681dfe27a7 Mon Sep 17 00:00:00 2001
From: jkelol111 <35841468+jkelol111@users.noreply.github.com>
Date: Mon, 6 Apr 2020 16:58:13 +0800
Subject: [PATCH] Update to v1.0.6
---
LATEST_RELEASE_NOTES.md | 6 ++++--
README.md | 2 +-
TODO.md | 3 ---
metadata.json | 2 +-
package.json | 2 +-
src/ad.html | 2 +-
src/js/ad.js | 2 +-
src/js/backbone/utils.js | 8 ++++----
src/js/libs/kaiads.min.js | 1 -
src/js/libs/kaiads.v3.min.js | 3 +++
src/manifest.webapp | 9 +++++++--
11 files changed, 23 insertions(+), 17 deletions(-)
delete mode 100644 TODO.md
delete mode 100644 src/js/libs/kaiads.min.js
create mode 100644 src/js/libs/kaiads.v3.min.js
diff --git a/LATEST_RELEASE_NOTES.md b/LATEST_RELEASE_NOTES.md
index f90601c..9e0f79d 100644
--- a/LATEST_RELEASE_NOTES.md
+++ b/LATEST_RELEASE_NOTES.md
@@ -2,6 +2,8 @@
*New features:*
+- Changed app origin for stable release: from `kaidi.jkelol111.me` to `jkelol111.github.io`.
+- Upgraded KaiAds SDK: downgrading it didn't solve the problem, might as well use the latest.
- Updated manifest (again): Last-ditch effort to see what's wrong with the KaiStore release.
*Bugs:*
@@ -14,13 +16,13 @@
*Using OmniSD:*
-1. Download the file `kaidi-1.0.5-stable-omnisd.zip` to your SD card.
+1. Download the file `kaidi-1.0.6-stable-omnisd.zip` to your SD card.
2. Open OmniSD and install.
*Using WebIDE:*
-** You will need to have `node` installed to build the app.**
+**You will need to have `node` installed to build the app.**
1. Download the source code zip above and extract it somewhere.
diff --git a/README.md b/README.md
index 9f020d3..09f323d 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@
| Current app versions | Supported KaiOS versions | Supported Kodi versions |
|:---------------------------------------:|:------------------------:|:------------------------------------------------:|
-| - 1.0.5 (Stable)
- 0.4.7.3 (Alpha) | >= KaiOS 2.5 | >= Kodi Krypton (17.x)
>= JSON-RPC API v8 |
+| - 1.0.6 (Stable)
- 0.4.7.3 (Alpha) | >= KaiOS 2.5 | >= Kodi Krypton (17.x)
>= JSON-RPC API v8 |
## Key features
diff --git a/TODO.md b/TODO.md
deleted file mode 100644
index 7aaf134..0000000
--- a/TODO.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# To do
-
-- Optimize the code.
diff --git a/metadata.json b/metadata.json
index d8daabb..14bf1dd 100644
--- a/metadata.json
+++ b/metadata.json
@@ -1 +1 @@
-{"version": 1, "manifestURL": "app://kaidiremote/manifest.webapp"}
\ No newline at end of file
+{"version": 1, "manifestURL": "app://kaidi.jkelol111.me/manifest.webapp"}
\ No newline at end of file
diff --git a/package.json b/package.json
index 9e7ef60..8162131 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "kaidi",
- "version": "1.0.5",
+ "version": "1.0.6",
"description": "A Kodi remote app for KaiOS.",
"scripts": {
"clean": "gulp clean",
diff --git a/src/ad.html b/src/ad.html
index 4d5ff5c..aebfa9a 100644
--- a/src/ad.html
+++ b/src/ad.html
@@ -8,7 +8,7 @@
-
+
diff --git a/src/js/ad.js b/src/js/ad.js
index 758e6d7..83fbe80 100644
--- a/src/js/ad.js
+++ b/src/js/ad.js
@@ -16,7 +16,7 @@ function handleLocationChange () {
window.location.assign('/settings.html')
break
default:
- console.log('[handleLocationChange] Specified hash invalid. You will be redirected home.')
+ console.log('[handleLocationChange] Specified hash invalid or empty. You will be redirected home.')
window.location.assign('/home.html')
break
}
diff --git a/src/js/backbone/utils.js b/src/js/backbone/utils.js
index 7709a82..b67177f 100644
--- a/src/js/backbone/utils.js
+++ b/src/js/backbone/utils.js
@@ -120,25 +120,25 @@ Navigates to the given page with ads or none, depending on settings.
function gotoPage (page) {
document.body.classList.add('page-transition-blur-in')
document.body.classList.remove('page-transition-blur-out')
- const adsEnabled = settings.get('ads')
+ const adsEnabled = (settings.get('ads') === 'true')
setTimeout(() => {
switch (page) {
case 'home':
- if (adsEnabled === 'true') {
+ if (adsEnabled) {
window.location.assign('/ad.html#home')
} else {
window.location.assign('/home.html')
}
break
case 'settings':
- if (adsEnabled === 'true') {
+ if (adsEnabled) {
window.location.assign('/ad.html#settings')
} else {
window.location.assign('/settings.html')
}
break
case 'player':
- if (adsEnabled === 'true') {
+ if (adsEnabled) {
window.location.assign('/ad.html#player')
} else {
window.location.assign('/player.html')
diff --git a/src/js/libs/kaiads.min.js b/src/js/libs/kaiads.min.js
deleted file mode 100644
index 298f31a..0000000
--- a/src/js/libs/kaiads.min.js
+++ /dev/null
@@ -1 +0,0 @@
-const getKaiAd=((...e)=>{let t=e[0],r=e[1],l=e[2],n={},o="setAttribute",s="createElement",i="contentWindow",a="appendChild",f="addEventListener",d="dataset",u="keydown",p="length",c="style",y="error",m="timeout",g="push",h="message",v="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",w=v[p],b=parseInt,k=console[y],A={},E=()=>r.body,I=()=>{let e=crypto.getRandomValues(new Uint16Array(32));return[].map.call(e,e=>v[e%w]).join("")},O=I(),S=e=>typeof e==typeof p,j=e=>{let t={};t[24]=e,t[5]=I(),t[16]=[],n[t[5]]=t,t[12]=[],t[25]={},t[15]=(e=>{(t[24].onerror||k)(e),t[29]()}),t[29]=(()=>{t[18]&&t[18].remove(),n[t[5]]=t=l}),t[14]=(()=>{clearTimeout(t[22]),t[24].onready({call(e,r){t[11](e,r)},on(e,r){t[25][e]||(t[25][e]=[]),t[25][e][g](r)}})}),t[11]=((e,...r)=>{if(t[19]&&t[19][i]){let l=[];l[5]=t[5],l[6]=e,l[8]=r,t[19][i].postMessage(JSON.stringify(l,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})()),"*")}else t[15](4)}),t[22]=(()=>(t[24][m]=t[24][m]||6e4,setTimeout(()=>{t[15](5)},t[24][m])))(),t[17]=(()=>{let e=t[24].container;return e||(e=E(),t[23]=t[24][23]=1),e})(),t[19]=(()=>{let e=`https://ssp.kaiads.com/static/v2/frame.html?i=${t[5]}&s=${O}`,l=r[s]("iframe");l[o]("src",e);let n=r[s]("div");return n[d][O]=t[5],n[c].position="absolute",n[c].left="-1000%",t[18]=n,t[23]||(n[f]("focus",e=>t[11]("focus")),n[f]("blur",e=>t[11]("blur"))),n[a](l),t[17][a](n),n[d][O]=t[5],l})()},C=(e,r)=>{let n={};n[10]=e,e[12][g](r[7]),n[7]=r[7],n[6]=r[6],n[28]=-1,n[8]=[],n[9]=[],n[1]=(t=>{let r=n[26](t[1]);if(r[1]){let e=n[27](t[3]);n[9][n[28]]=t[0]?new r[1](...e[0]):r[1](...e[0]),e[1]||n[13]()}else n[10][11](n[6],y,10,e[12][p],n[28])}),n[2]=(t=>{if(t[4]){let r=n[26](t[4]);if(r[21])n[10][11](n[6],y,11,e[12][p],n[28]);else{let e;e=r[1]?r[1]:r[7]?r[7]:t[4];let o=n[26](t[2],e);n[9][n[28]]=l,o[13]||n[13]()}}else{let r=n[26](t[2]);r[21]?n[10][11](n[6],y,12,e[12][p],n[28]):(n[9][n[28]]=r,n[13]())}}),n[13]=((...e)=>{n[28]++,n[8][n[28]]=e;let t=n[7][n[28]];t&&(t[1]?n[1](t):t[2]?n[2](t):n[13]())}),n[27]=(e=>{let t=[[],l];if(e)for(let r=0,l=e[p];l>r;r++)if(S(e[r])){let l=n[26](e[r]);l[1]?(t[0][g](l[1]),l[13]&&(t[1]=1)):l[7]?t[0][g](l[7]):t[0][g](e[r])}else t[0][g](e[r]);return t}),n[26]=((e,r)=>{let o={};if(S(e)&&/^[wts]/.test(e)){let s=e.split("."),i=s.shift();"t"==i?i=n:"w"==i?i=t:"s"==i&&(i=A);for(let e=0,t=s[p];t>e;e++){if(t>e&&(o[20]=i),i[s[e]]===l&&t>e){if(r)break;return o[21]=1,o}if((i===l||i[s[e]]===l)&&t>e&&r===l)return o[21]=1,o;i=i[s[e]]}r!==l&&(o[20][s.pop()]=r,i=r),(e=>typeof e==typeof b)(i)&&(o[13]=i===n[13],o[13]?o[1]=i:o[1]=i.bind(o[20])),o[7]=i}return o}),n[13]()};return t[f](h,e=>{if(!e||!e.origin||"https://ssp.kaiads.com"!==e.origin)return;let t=JSON.parse(e.data);if(n[t[5]]){let e=n[t[5]];t[7]&&C(e,t),e[25][t[6]]&&e[25][t[6]].forEach(e=>e(t[8]))}}),t[f](u,e=>{let t;if(A.vfsAdId&&n[A.vfsAdId])t=n[A.vfsAdId];else{let e=r.activeElement,l=e[d][O];if(!e||!l)return;t=n[l]}t&&(t[16].indexOf(e.key)>-1||(t[11](u,e.key,e.keyCode),e.preventDefault(),e.stopPropagation()))}),e=>{let t=e.onerror||k;E()?e.onready?j(e):t(2):t(1)}})(window,document);
\ No newline at end of file
diff --git a/src/js/libs/kaiads.v3.min.js b/src/js/libs/kaiads.v3.min.js
new file mode 100644
index 0000000..a223670
--- /dev/null
+++ b/src/js/libs/kaiads.v3.min.js
@@ -0,0 +1,3 @@
+var _0x32a4=['split','http://127.0.0.1/sdk/ads/ads-sdk.min.js','catch','reject','then','test','every','Invalid\x20version\x20format','length','push','forEach','apply','getKaiAd','dummy','function','onerror','script','addEventListener','load','error','appendChild','navigator','getSelf','onsuccess','result','manifest','type','userAgent','toLowerCase'];(function(_0x458d88,_0x5798e7){var _0x482657=function(_0xa5709a){while(--_0xa5709a){_0x458d88['push'](_0x458d88['shift']());}};_0x482657(++_0x5798e7);}(_0x32a4,0xf2));var _0x1e40=function(_0x1bb7f7,_0x40fcc8){_0x1bb7f7=_0x1bb7f7-0x0;var _0x13ea60=_0x32a4[_0x1bb7f7];return _0x13ea60;};'use strict';// @ts-check
+(function(){var _0x163cfb=this;var _0x451da1=[];var _0x5a0ad6=function _0x5a0ad6(_0x26c8ef){_0x451da1[_0x1e40('0x0')](function(_0x4af1e4){_0x26c8ef[_0x1e40('0x1')](_0x163cfb,_0x4af1e4);});_0x451da1=[];};window[_0x1e40('0x2')]=function(){_0x451da1['push'](arguments);};window[_0x1e40('0x2')][_0x1e40('0x3')]=!![];var _0x2c58c6=function _0x2c58c6(_0x176dae){if(typeof _0x176dae['onerror']===_0x1e40('0x4')){var _0x70061d=0x13;_0x176dae[_0x1e40('0x5')](_0x70061d);}};var _0x2a6bfe=function _0x2a6bfe(_0x3e9442){return new Promise(function(_0x2871b6,_0x23df19){var _0x37e9db=document['createElement'](_0x1e40('0x6'));_0x37e9db[_0x1e40('0x7')](_0x1e40('0x8'),function(){if(!getKaiAd||getKaiAd[_0x1e40('0x3')]){_0x23df19();}else{_0x2871b6();}});_0x37e9db[_0x1e40('0x7')](_0x1e40('0x9'),function(){_0x23df19();});_0x37e9db['src']=_0x3e9442;document['head'][_0x1e40('0xa')](_0x37e9db);});};window[_0x1e40('0xb')]['mozApps'][_0x1e40('0xc')]()[_0x1e40('0xd')]=function(_0x2dc8a9){var _0x180485=_0x2dc8a9['target'][_0x1e40('0xe')];var _0x5464bd;if(!_0x180485||!_0x180485[_0x1e40('0xf')]||!_0x180485[_0x1e40('0xf')]['type']||_0x180485['manifest'][_0x1e40('0x10')]==='web'){_0x5464bd=_0x2a6bfe('https://static.kaiads.com/ads-sdk/ads-sdk.v3.min.js');}if(!_0x5464bd){var _0x12fc28=window[_0x1e40('0xb')][_0x1e40('0x11')][_0x1e40('0x12')]()[_0x1e40('0x13')]('kaios/')[0x1];if(_0x12fc28&&_0x141746(_0x12fc28,'2.5')===0x1){_0x5464bd=_0x2a6bfe(_0x1e40('0x14'))[_0x1e40('0x15')](function(){return _0x2a6bfe('http://127.0.0.1:8081/sdk/ads/ads-sdk.min.js');});}}if(!_0x5464bd){_0x5464bd=Promise[_0x1e40('0x16')]();}_0x5464bd['catch'](function(){_0x5a0ad6(_0x2c58c6);window['getKaiAd']=_0x2c58c6;getKaiAd=_0x2c58c6;})[_0x1e40('0x17')](function(){_0x5a0ad6(getKaiAd);window['getKaiAd']=getKaiAd;});};function _0x141746(_0x2990f8,_0x1b6cce){var _0x58f74b=_0x2990f8['split']('.');var _0x18118f=_0x1b6cce[_0x1e40('0x13')]('.');function _0xd54480(_0x669e5e){return/^\d+$/[_0x1e40('0x18')](_0x669e5e);}if(!_0x58f74b[_0x1e40('0x19')](_0xd54480)||!_0x18118f['every'](_0xd54480)){throw new Error(_0x1e40('0x1a'));}while(_0x58f74b[_0x1e40('0x1b')]<_0x18118f[_0x1e40('0x1b')]){_0x58f74b['push']('0');}while(_0x18118f['length']<_0x58f74b[_0x1e40('0x1b')]){_0x18118f[_0x1e40('0x1c')]('0');}for(var _0x34c0de=0x0;_0x34c0de<_0x58f74b[_0x1e40('0x1b')];++_0x34c0de){if(_0x58f74b[_0x34c0de]==_0x18118f[_0x34c0de]){continue;}else if(_0x58f74b[_0x34c0de]>_0x18118f[_0x34c0de]){return 0x1;}else{return-0x1;}}return 0x0;}}());
+//# sourceMappingURL=sdk-loader.js.map
\ No newline at end of file
diff --git a/src/manifest.webapp b/src/manifest.webapp
index 764f509..46da6c1 100644
--- a/src/manifest.webapp
+++ b/src/manifest.webapp
@@ -1,12 +1,14 @@
{
- "version": "1.0.5",
+ "version": "1.0.6",
"name": "Kaidi Remote",
"description": "The Kodi remote app for KaiOS.",
"launch_path": "/ad.html",
+ "origin": "app://kaidi.jkelol111.me",
"icons": {
"56": "/icons/kaidi_56.png",
"112": "/icons/kaidi_112.png"
},
+ "theme_color": "#ffffff",
"developer": {
"name": "jkelol111",
"url": "https://jkelol111.github.io"
@@ -23,6 +25,9 @@
"chrome": {
"statusbar": "overlap"
},
+ "dependencies": {
+ "ads-sdk": "1.3.0"
+ },
"locales": {
"en-US": {
"name": "Kaidi Remote",
@@ -35,5 +40,5 @@
"description": "Điều khiển thiết bị Kodi bắng điện thoại chạy HĐH KaiOS. Phần mềm mở nguồn tại https://github.com/jkelol111/kaidi"
}
},
- "default_locale": "en"
+ "default_locale": "en-US"
}
\ No newline at end of file