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