Skip to content

Commit 169aafc

Browse files
Merge pull request #7670 from efb4f5ff-1298-471a-8973-3d47447115dc/patch-release
Patch Release - v0.23.6
2 parents ec6398d + 04d690e commit 169aafc

File tree

25 files changed

+568
-431
lines changed

25 files changed

+568
-431
lines changed

.github/workflows/flatpak.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,24 +50,24 @@ jobs:
5050
with:
5151
version: v${{ steps.sub.outputs.result }}-beta
5252
repository: FreeTubeApp/FreeTube
53-
file: freetube-${{ steps.sub.outputs.result }}-linux-x64-portable.zip
53+
file: freetube-${{ steps.sub.outputs.result }}-beta-linux-x64-portable.zip
5454
- name: Download ARM Release
5555
uses: fabriciobastian/[email protected]
5656
with:
5757
version: v${{ steps.sub.outputs.result }}-beta
5858
repository: FreeTubeApp/FreeTube
59-
file: freetube-${{ steps.sub.outputs.result }}-linux-arm64-portable.zip
59+
file: freetube-${{ steps.sub.outputs.result }}-beta-linux-arm64-portable.zip
6060
- name: Set x64 Hash Variable
6161
id: hash-x64
6262
run: |
6363
echo 'HASH_X64<<EOF' >> $GITHUB_ENV
64-
sha256sum freetube-${{ steps.sub.outputs.result }}-linux-x64-portable.zip | awk '{print $1}' >> $GITHUB_ENV
64+
sha256sum freetube-${{ steps.sub.outputs.result }}-beta-linux-x64-portable.zip | awk '{print $1}' >> $GITHUB_ENV
6565
echo 'EOF' >> $GITHUB_ENV
6666
- name: Set ARM Hash Variable
6767
id: hash-arm64
6868
run: |
6969
echo 'HASH_ARM64<<EOF' >> $GITHUB_ENV
70-
sha256sum freetube-${{ steps.sub.outputs.result }}-linux-arm64-portable.zip | awk '{print $1}' >> $GITHUB_ENV
70+
sha256sum freetube-${{ steps.sub.outputs.result }}-beta-linux-arm64-portable.zip | awk '{print $1}' >> $GITHUB_ENV
7171
echo 'EOF' >> $GITHUB_ENV
7272
- name: Set Date Variable
7373
id: current-date
@@ -79,7 +79,7 @@ jobs:
7979
uses: mikefarah/[email protected]
8080
with:
8181
# The Command which should be run
82-
cmd: yq -i '.modules[0].sources[0].url = "https://github.com/FreeTubeApp/FreeTube/releases/download/v${{ steps.sub.outputs.result }}-beta/freetube-${{ steps.sub.outputs.result }}-linux-x64-portable.zip"' io.freetubeapp.FreeTube.yml
82+
cmd: yq -i '.modules[0].sources[0].url = "https://github.com/FreeTubeApp/FreeTube/releases/download/v${{ steps.sub.outputs.result }}-beta/freetube-${{ steps.sub.outputs.result }}-beta-linux-x64-portable.zip"' io.freetubeapp.FreeTube.yml
8383
- name: Update x64 Hash in yml File
8484
uses: mikefarah/[email protected]
8585
with:
@@ -89,7 +89,7 @@ jobs:
8989
uses: mikefarah/[email protected]
9090
with:
9191
# The Command which should be run
92-
cmd: yq -i '.modules[0].sources[1].url = "https://github.com/FreeTubeApp/FreeTube/releases/download/v${{ steps.sub.outputs.result }}-beta/freetube-${{ steps.sub.outputs.result }}-linux-arm64-portable.zip"' io.freetubeapp.FreeTube.yml
92+
cmd: yq -i '.modules[0].sources[1].url = "https://github.com/FreeTubeApp/FreeTube/releases/download/v${{ steps.sub.outputs.result }}-beta/freetube-${{ steps.sub.outputs.result }}-beta-linux-arm64-portable.zip"' io.freetubeapp.FreeTube.yml
9393
- name: Update ARM Hash in yml File
9494
uses: mikefarah/[email protected]
9595
with:
@@ -99,8 +99,8 @@ jobs:
9999
run: xmlstarlet ed -L -i /component/releases/release[1] -t elem -n releaseTMP -v "" -i //releaseTMP -t attr -n version -v "${{ steps.sub.outputs.result }} Beta" -i //releaseTMP -t attr -n date -v "${{ env.CURRENT_DATE }}" -s //releaseTMP -t elem -n url -v "" -s //releaseTMP/url -t text -n "" -v "https://github.com/FreeTubeApp/FreeTube/releases/tag/v${{ steps.sub.outputs.result }}-beta" -r //releaseTMP -v "release" io.freetubeapp.FreeTube.metainfo.xml
100100
- name: Remove Release Files
101101
run: |
102-
rm freetube-${{ steps.sub.outputs.result }}-linux-x64-portable.zip
103-
rm freetube-${{ steps.sub.outputs.result }}-linux-arm64-portable.zip
102+
rm freetube-${{ steps.sub.outputs.result }}-beta-linux-x64-portable.zip
103+
rm freetube-${{ steps.sub.outputs.result }}-beta-linux-arm64-portable.zip
104104
- name: Commit Files
105105
uses: stefanzweifel/git-auto-commit-action@v5
106106
with:

.github/workflows/release.yml

Lines changed: 29 additions & 29 deletions
Large diffs are not rendered by default.

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
"name": "freetube",
33
"productName": "FreeTube",
44
"description": "A private YouTube client",
5-
"version": "0.23.5",
5+
"version": "0.23.6",
66
"license": "AGPL-3.0-or-later",
77
"main": "./dist/main.js",
88
"private": true,
99
"author": {
10-
"name": "PrestonN",
10+
"name": "FreeTube Team",
1111
"email": "[email protected]",
1212
"url": "https://github.com/FreeTubeApp/FreeTube"
1313
},
@@ -67,14 +67,14 @@
6767
"path-browserify": "^1.0.1",
6868
"portal-vue": "^2.1.7",
6969
"process": "^0.11.10",
70-
"shaka-player": "^4.13.0",
70+
"shaka-player": "^4.13.4",
7171
"swiper": "^11.2.1",
7272
"vue": "^2.7.16",
7373
"vue-i18n": "^8.28.2",
7474
"vue-observe-visibility": "^1.0.0",
7575
"vue-router": "^3.6.5",
7676
"vuex": "^3.6.2",
77-
"youtubei.js": "^13.4.0"
77+
"youtubei.js": "^15.0.0"
7878
},
7979
"devDependencies": {
8080
"@babel/core": "^7.26.7",
@@ -88,7 +88,7 @@
8888
"css-loader": "^7.1.2",
8989
"css-minimizer-webpack-plugin": "^7.0.0",
9090
"electron": "^34.0.1",
91-
"electron-builder": "^25.1.8",
91+
"electron-builder": "^26.0.13",
9292
"eslint": "^9.19.0",
9393
"eslint-plugin-jsdoc": "^50.6.3",
9494
"eslint-plugin-jsonc": "^2.19.1",

src/botGuardScript.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ export default async function (videoId, visitorData, context) {
6363
})
6464

6565
const webPoSignalOutput = []
66-
const botGuardResponse = await botGuard.snapshot({ webPoSignalOutput })
66+
const botGuardResponse = await botGuard.snapshot({ webPoSignalOutput }, 10_000)
6767

6868
const integrityTokenResponse = await fetch(buildURL('GenerateIT', true), {
6969
method: 'POST',

src/main/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ function runApp() {
452452
requestHeaders['Sec-Fetch-Site'] = 'same-origin'
453453
requestHeaders['Sec-Fetch-Mode'] = 'same-origin'
454454
requestHeaders['X-Youtube-Bootstrap-Logged-In'] = 'false'
455-
} else if (url === 'https://www.youtube.com/sw.js_data') {
455+
} else if (url === 'https://www.youtube.com/sw.js_data' || url.startsWith('https://www.youtube.com/api/timedtext')) {
456456
requestHeaders.Referer = 'https://www.youtube.com/sw.js'
457457
requestHeaders['Sec-Fetch-Site'] = 'same-origin'
458458
requestHeaders['Sec-Fetch-Mode'] = 'same-origin'

src/renderer/App.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import SideNav from './components/SideNav/SideNav.vue'
66
import FtNotificationBanner from './components/ft-notification-banner/ft-notification-banner.vue'
77
import FtPrompt from './components/FtPrompt/FtPrompt.vue'
88
import FtButton from './components/ft-button/ft-button.vue'
9-
import FtToast from './components/ft-toast/ft-toast.vue'
9+
import FtToast from './components/FtToast/FtToast.vue'
1010
import FtProgressBar from './components/FtProgressBar/FtProgressBar.vue'
1111
import FtPlaylistAddVideoPrompt from './components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.vue'
1212
import FtCreatePlaylistPrompt from './components/ft-create-playlist-prompt/ft-create-playlist-prompt.vue'
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
<template>
2+
<div class="toast-holder">
3+
<div
4+
v-for="toast in toasts"
5+
:key="toast.id"
6+
class="toast"
7+
:class="{ closed: !toast.isOpen, open: toast.isOpen }"
8+
tabindex="0"
9+
role="status"
10+
@click="performAction(toast)"
11+
@keydown.enter.prevent="performAction(toast)"
12+
@keydown.space.prevent="performAction(toast)"
13+
>
14+
<p class="message">
15+
{{ toast.message }}
16+
</p>
17+
</div>
18+
</div>
19+
</template>
20+
21+
<script setup>
22+
import { nextTick, onBeforeUnmount, onMounted, shallowReactive } from 'vue'
23+
import { ToastEventBus } from '../../helpers/utils'
24+
25+
let idCounter = 0
26+
27+
/**
28+
* @typedef Toast
29+
* @property {string} message
30+
* @property {Function | null} action
31+
* @property {boolean} isOpen
32+
* @property {NodeJS.Timeout | number} timeout
33+
* @property {number} id
34+
*/
35+
36+
/** @type {import('vue').ShallowReactive<Toast[]>} */
37+
const toasts = shallowReactive([])
38+
39+
/**
40+
* @param {CustomEvent<{ message: string, time: number | null, action: Function | null, abortSignal: AbortSignal | null }>} event
41+
*/
42+
function open({ detail: { message, time, action, abortSignal } }) {
43+
/** @type {Toast} */
44+
const toast = {
45+
message,
46+
action,
47+
isOpen: false,
48+
timeout: 0,
49+
id: idCounter++
50+
}
51+
52+
toast.timeout = setTimeout(close, time || 3000, toast)
53+
if (abortSignal != null) {
54+
abortSignal.addEventListener('abort', () => {
55+
close(toast)
56+
})
57+
}
58+
59+
nextTick(() => {
60+
toast.isOpen = true
61+
})
62+
63+
if (toasts.length > 4) {
64+
remove(toasts[0])
65+
}
66+
toasts.push(toast)
67+
}
68+
69+
/**
70+
* @param {Toast} toast
71+
*/
72+
function close(toast) {
73+
setTimeout(remove, 300, toast)
74+
75+
toast.isOpen = false
76+
}
77+
78+
/**
79+
* @param {Toast} toast
80+
*/
81+
function performAction(toast) {
82+
toast.action?.()
83+
remove(toast)
84+
}
85+
86+
/**
87+
* @param {Toast} toast
88+
*/
89+
function remove(toast) {
90+
const index = toasts.indexOf(toast)
91+
92+
if (index !== -1) {
93+
toasts.splice(index, 1)
94+
clearTimeout(toast.timeout)
95+
}
96+
}
97+
98+
onMounted(() => {
99+
ToastEventBus.addEventListener('toast-open', open)
100+
})
101+
102+
onBeforeUnmount(() => {
103+
ToastEventBus.removeEventListener('toast-open', open)
104+
toasts.forEach((toast) => clearTimeout(toast.timeout))
105+
})
106+
</script>
107+
108+
<style scoped src="./FtToast.css" />

src/renderer/components/SideNav/SideNav.css

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,3 +249,17 @@
249249
inline-size: 100%;
250250
}
251251
}
252+
253+
@media only screen and (width <= 400px) {
254+
/* Hide settings so that they appear in the more dropdown on smaller screens */
255+
.smallMobileOnlyHidden {
256+
display: none;
257+
}
258+
}
259+
260+
@media only screen and (width > 400px) {
261+
.smallMobileOnlyHidden {
262+
display: block;
263+
}
264+
}
265+

src/renderer/components/SideNav/SideNav.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@
152152
</router-link>
153153
<hr>
154154
<router-link
155-
class="navOption mobileShow"
155+
class="navOption mobileShow smallMobileOnlyHidden"
156156
role="button"
157157
to="/settings"
158158
:title="settingsTitle"

0 commit comments

Comments
 (0)