From a1d7eb355f2c74184280c51b688d1bbd0c4e98b1 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Mon, 16 Aug 2021 20:47:25 -0400 Subject: Added an updater; Added snapcraft to readme --- .github/workflows/build.yml | 1 + README.md | 4 ++++ index.js | 36 ++++++++++++++++++++++++++++++++++++ package.json | 13 ++++++++++--- yarn.lock | 42 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 93 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5f921e9..c330180 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,6 +24,7 @@ jobs: - name: Installing dependencies for Ubuntu if: startsWith(matrix.os, 'ubuntu') run: sudo apt install --no-install-recommends -y libopenjp2-tools rpm libarchive-tools + - name: Check out Git repository uses: actions/checkout@v1 diff --git a/README.md b/README.md index 951f6a2..fe1c74b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ # YouTube TV Client 2.0 Basically a browser that uses Samsung Smart TV as the user agent and it goes to `youtube.com/tv`. + + Get it from the Snap Store + + Made from NodeJS and Electron Start the program diff --git a/index.js b/index.js index a44a409..33ff6fb 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,11 @@ const { app, BrowserWindow, session } = require('electron'); +const { autoUpdater } = require("electron-updater"); +const log = require('electron-log'); const package = require("./package.json"); +autoUpdater.logger = log; +autoUpdater.logger.transports.file.level = 'info'; + const userAgent = "Mozilla/5.0 (Linux; Tizen 2.3) "+ package.name + "/" + package.version + " AppleWebKit/538.1 (KHTML, like Gecko)Version/2.3 TV Safari/538.1"; const URL = "https://youtube.com/tv"; @@ -23,6 +28,10 @@ function fetchCookie(){ }); } +app.on('ready', function() { + autoUpdater.checkForUpdatesAndNotify(); +}); + app.whenReady().then(() => { console.log("Started YouTube TV Client " + package.version); createWindow(); @@ -40,6 +49,33 @@ app.whenReady().then(() => { }); + autoUpdater.on('checking-for-update', () => { + console.log('Checking for updates...'); + }); + + autoUpdater.on('update-available', () => { + console.log('Update available.'); + }); + + + autoUpdater.on('update-not-available', () => { + console.log('No updates are currently available...'); + }); + + autoUpdater.on('error', (err) => { + console.log('Error in auto-updater. ' + err); + }); + + autoUpdater.on('download-progress', (progressObj) => { + let log_message = "Download speed: " + progressObj.bytesPerSecond; + log_message = log_message + ' - Downloaded ' + progressObj.percent + '%'; + log_message = log_message + ' (' + progressObj.transferred + "/" + progressObj.total + ')'; + console.log(log_message); + }); + + autoUpdater.on('update-downloaded', (info) => { + console.log('Update downloaded'); + }); app.on('window-all-closed', function () { if (process.platform !== 'darwin') app.quit(); diff --git a/package.json b/package.json index d7cc322..fc8c4be 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,10 @@ "start": "electron .", "dist": "electron-builder" }, + "dependencies": { + "electron-log": "^4.4.1", + "electron-updater": "^4.3.9" + }, "devDependencies": { "electron": "^13.1.9", "electron-builder": "^22.11.7" @@ -26,21 +30,24 @@ "pacman", "deb" ], - "category": "Video" + "category": "Video", + "publish": "github" }, "win": { "target": [ "zip", "portable", "nsis" - ] + ], + "publish": "github" }, "mac": { "target": [ "zip", "dmg" ], - "category": "Video" + "category": "Video", + "publish": "github" } } } diff --git a/yarn.lock b/yarn.lock index 0140e2a..00d25ea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -121,6 +121,11 @@ "@types/node" "*" xmlbuilder ">=11.0.1" +"@types/semver@^7.3.5": + version "7.3.8" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.8.tgz#508a27995498d7586dcecd77c25e289bfaf90c59" + integrity sha512-D/2EJvAlCEtYFEYmmlGwbGXuK886HzyCc3nZX/tkFTQdEU8jZDAgiv08P162yB17y4ZXZoq7yFAnW4GDBb9Now== + "@types/verror@^1.10.3": version "1.10.5" resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.5.tgz#2a1413aded46e67a1fe2386800e291123ed75eb1" @@ -332,6 +337,14 @@ buffer@^5.1.0: base64-js "^1.3.1" ieee754 "^1.1.13" +builder-util-runtime@8.7.5: + version "8.7.5" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.5.tgz#fbe59e274818885e0d2e358d5b7017c34ae6b0f5" + integrity sha512-fgUFHKtMNjdvH6PDRFntdIGUPgwZ69sXsAqEulCtoiqgWes5agrMq/Ud274zjJRTbckYh2PHh8/1CpFc6dpsbQ== + dependencies: + debug "^4.3.2" + sax "^1.2.4" + builder-util-runtime@8.7.6: version "8.7.6" resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz#4b43c96db2bd494ced7694bcd7674934655e8324" @@ -683,6 +696,11 @@ electron-builder@^22.11.7: update-notifier "^5.1.0" yargs "^17.0.1" +electron-log@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.4.1.tgz#28ebeb474eccba2ebf194a96c40d6328e5353e4d" + integrity sha512-nK/DwxPLtwWbggPCm27eMQhYHc3gzoZ+cokBK99diO4WsZJKrv5l44EUW8mRfWpmC8ZubnMyp6GTUIJyTc9AJA== + electron-publish@22.11.7: version "22.11.7" resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.7.tgz#4126cbb08ccf082a2aa7fef89ee629b3a4b8ae9a" @@ -696,6 +714,20 @@ electron-publish@22.11.7: lazy-val "^1.0.5" mime "^2.5.2" +electron-updater@^4.3.9: + version "4.3.9" + resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.9.tgz#247c660bafad7c07935e1b81acd3e9a5fd733154" + integrity sha512-LCNfedSwZfS4Hza+pDyPR05LqHtGorCStaBgVpRnfKxOlZcvpYEX0AbMeH5XUtbtGRoH2V8osbbf2qKPNb7AsA== + dependencies: + "@types/semver" "^7.3.5" + builder-util-runtime "8.7.5" + fs-extra "^10.0.0" + js-yaml "^4.1.0" + lazy-val "^1.0.4" + lodash.escaperegexp "^4.1.2" + lodash.isequal "^4.5.0" + semver "^7.3.5" + electron@^13.1.9: version "13.1.9" resolved "https://registry.yarnpkg.com/electron/-/electron-13.1.9.tgz#668e2632b81e9fa21edfd32876282d3e2ff7fd76" @@ -1150,6 +1182,16 @@ lazy-val@^1.0.4, lazy-val@^1.0.5: resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d" integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== +lodash.escaperegexp@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" + integrity sha1-ZHYsSGGAglGKw99Mz11YhtriA0c= + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + lodash@^4.17.10, lodash@^4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" -- cgit v1.2.3