mirror of
https://github.com/TeamPiped/Piped.git
synced 2024-08-14 23:57:27 +00:00
Merge branch 'master' of https://github.com/TeamPiped/Piped into better-autoplay
This commit is contained in:
commit
8e74ee6c42
24 changed files with 366 additions and 296 deletions
14
package.json
14
package.json
|
@ -9,9 +9,9 @@
|
||||||
"lint": "eslint --fix --color --ignore-path .gitignore --ext .js,.vue ."
|
"lint": "eslint --fix --color --ignore-path .gitignore --ext .js,.vue ."
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fortawesome/fontawesome-svg-core": "6.2.1",
|
"@fortawesome/fontawesome-svg-core": "6.3.0",
|
||||||
"@fortawesome/free-brands-svg-icons": "6.2.1",
|
"@fortawesome/free-brands-svg-icons": "6.3.0",
|
||||||
"@fortawesome/free-solid-svg-icons": "6.2.1",
|
"@fortawesome/free-solid-svg-icons": "6.3.0",
|
||||||
"@fortawesome/vue-fontawesome": "3.0.3",
|
"@fortawesome/vue-fontawesome": "3.0.3",
|
||||||
"buffer": "6.0.3",
|
"buffer": "6.0.3",
|
||||||
"dompurify": "2.4.3",
|
"dompurify": "2.4.3",
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
"xml-js": "1.6.11"
|
"xml-js": "1.6.11"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@iconify/json": "2.2.18",
|
"@iconify/json": "2.2.21",
|
||||||
"@intlify/vite-plugin-vue-i18n": "6.0.3",
|
"@intlify/vite-plugin-vue-i18n": "6.0.3",
|
||||||
"@unocss/preset-icons": "0.49.4",
|
"@unocss/preset-icons": "0.49.4",
|
||||||
"@unocss/preset-web-fonts": "0.49.4",
|
"@unocss/preset-web-fonts": "0.49.4",
|
||||||
|
@ -35,15 +35,15 @@
|
||||||
"@vitejs/plugin-legacy": "4.0.1",
|
"@vitejs/plugin-legacy": "4.0.1",
|
||||||
"@vitejs/plugin-vue": "4.0.0",
|
"@vitejs/plugin-vue": "4.0.0",
|
||||||
"@vue/compiler-sfc": "3.2.47",
|
"@vue/compiler-sfc": "3.2.47",
|
||||||
"eslint": "8.33.0",
|
"eslint": "8.34.0",
|
||||||
"eslint-config-prettier": "8.6.0",
|
"eslint-config-prettier": "8.6.0",
|
||||||
"eslint-plugin-prettier": "4.2.1",
|
"eslint-plugin-prettier": "4.2.1",
|
||||||
"eslint-plugin-vue": "9.9.0",
|
"eslint-plugin-vue": "9.9.0",
|
||||||
"prettier": "2.8.3",
|
"prettier": "2.8.4",
|
||||||
"unocss": "0.49.4",
|
"unocss": "0.49.4",
|
||||||
"vite": "4.1.1",
|
"vite": "4.1.1",
|
||||||
"vite-plugin-eslint": "1.8.1",
|
"vite-plugin-eslint": "1.8.1",
|
||||||
"vite-plugin-pwa": "0.14.1"
|
"vite-plugin-pwa": "0.14.4"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"root": true,
|
"root": true,
|
||||||
|
|
|
@ -203,83 +203,13 @@
|
||||||
/>
|
/>
|
||||||
</label>
|
</label>
|
||||||
<div v-if="sponsorBlock">
|
<div v-if="sponsorBlock">
|
||||||
<label class="pref" for="chkSkipSponsors">
|
<label v-for="[name, item] in skipOptions" class="pref" :for="'ddlSkip_' + name" :key="name">
|
||||||
<strong v-t="'actions.skip_sponsors'" />
|
<strong v-t="item.label" />
|
||||||
<input
|
<select :id="'ddlSkip_' + name" v-model="item.value" class="select w-auto" @change="onChange($event)">
|
||||||
id="chkSkipSponsors"
|
<option v-t="'actions.no'" value="no" />
|
||||||
v-model="skipSponsor"
|
<option v-t="'actions.skip_button_only'" value="button" />
|
||||||
class="checkbox"
|
<option v-t="'actions.skip_automatically'" value="auto" />
|
||||||
type="checkbox"
|
</select>
|
||||||
@change="onChange($event)"
|
|
||||||
/>
|
|
||||||
</label>
|
|
||||||
<label class="pref" for="chkSkipIntro">
|
|
||||||
<strong v-t="'actions.skip_intro'" />
|
|
||||||
<input id="chkSkipIntro" v-model="skipIntro" class="checkbox" type="checkbox" @change="onChange($event)" />
|
|
||||||
</label>
|
|
||||||
<label class="pref" for="chkSkipOutro">
|
|
||||||
<strong v-t="'actions.skip_outro'" />
|
|
||||||
<input id="chkSkipOutro" v-model="skipOutro" class="checkbox" type="checkbox" @change="onChange($event)" />
|
|
||||||
</label>
|
|
||||||
<label class="pref" for="chkSkipPreview">
|
|
||||||
<strong v-t="'actions.skip_preview'" />
|
|
||||||
<input
|
|
||||||
id="chkSkipPreview"
|
|
||||||
v-model="skipPreview"
|
|
||||||
class="checkbox"
|
|
||||||
type="checkbox"
|
|
||||||
@change="onChange($event)"
|
|
||||||
/>
|
|
||||||
</label>
|
|
||||||
<label class="pref" for="chkSkipInteraction">
|
|
||||||
<strong v-t="'actions.skip_interaction'" />
|
|
||||||
<input
|
|
||||||
id="chkSkipInteraction"
|
|
||||||
v-model="skipInteraction"
|
|
||||||
class="checkbox"
|
|
||||||
type="checkbox"
|
|
||||||
@change="onChange($event)"
|
|
||||||
/>
|
|
||||||
</label>
|
|
||||||
<label class="pref" for="chkSkipSelfPromo">
|
|
||||||
<strong v-t="'actions.skip_self_promo'" />
|
|
||||||
<input
|
|
||||||
id="chkSkipSelfPromo"
|
|
||||||
v-model="skipSelfPromo"
|
|
||||||
class="checkbox"
|
|
||||||
type="checkbox"
|
|
||||||
@change="onChange($event)"
|
|
||||||
/>
|
|
||||||
</label>
|
|
||||||
<label class="pref" for="chkSkipNonMusic">
|
|
||||||
<strong v-t="'actions.skip_non_music'" />
|
|
||||||
<input
|
|
||||||
id="chkSkipNonMusic"
|
|
||||||
v-model="skipMusicOffTopic"
|
|
||||||
class="checkbox"
|
|
||||||
type="checkbox"
|
|
||||||
@change="onChange($event)"
|
|
||||||
/>
|
|
||||||
</label>
|
|
||||||
<label class="pref" for="chkSkipHighlight">
|
|
||||||
<strong v-t="'actions.skip_highlight'" />
|
|
||||||
<input
|
|
||||||
id="chkSkipHighlight"
|
|
||||||
v-model="skipHighlight"
|
|
||||||
class="checkbox"
|
|
||||||
type="checkbox"
|
|
||||||
@change="onChange($event)"
|
|
||||||
/>
|
|
||||||
</label>
|
|
||||||
<label class="pref" for="chkSkipFiller">
|
|
||||||
<strong v-t="'actions.skip_filler_tangent'" />
|
|
||||||
<input
|
|
||||||
id="chkSkipFiller"
|
|
||||||
v-model="skipFiller"
|
|
||||||
class="checkbox"
|
|
||||||
type="checkbox"
|
|
||||||
@change="onChange($event)"
|
|
||||||
/>
|
|
||||||
</label>
|
</label>
|
||||||
<label class="pref" for="chkShowMarkers">
|
<label class="pref" for="chkShowMarkers">
|
||||||
<strong v-t="'actions.show_markers'" />
|
<strong v-t="'actions.show_markers'" />
|
||||||
|
@ -291,6 +221,16 @@
|
||||||
@change="onChange($event)"
|
@change="onChange($event)"
|
||||||
/>
|
/>
|
||||||
</label>
|
</label>
|
||||||
|
<label class="pref" for="txtMinSegmentLength">
|
||||||
|
<strong v-t="'actions.min_segment_length'" />
|
||||||
|
<input
|
||||||
|
id="txtMinSegmentLength"
|
||||||
|
v-model="minSegmentLength"
|
||||||
|
class="input w-24"
|
||||||
|
type="text"
|
||||||
|
@change="onChange($event)"
|
||||||
|
/>
|
||||||
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<h2 class="text-center" v-t="'titles.instance'" />
|
<h2 class="text-center" v-t="'titles.instance'" />
|
||||||
<label class="pref" for="ddlInstanceSelection">
|
<label class="pref" for="ddlInstanceSelection">
|
||||||
|
@ -410,16 +350,19 @@ export default {
|
||||||
selectedAuthInstance: null,
|
selectedAuthInstance: null,
|
||||||
instances: [],
|
instances: [],
|
||||||
sponsorBlock: true,
|
sponsorBlock: true,
|
||||||
skipSponsor: true,
|
skipOptions: new Map([
|
||||||
skipIntro: false,
|
["sponsor", { value: "auto", label: "actions.skip_sponsors" }],
|
||||||
skipOutro: false,
|
["intro", { value: "no", label: "actions.skip_intro" }],
|
||||||
skipPreview: false,
|
["outro", { value: "no", label: "actions.skip_outro" }],
|
||||||
skipInteraction: true,
|
["preview", { value: "no", label: "actions.skip_preview" }],
|
||||||
skipSelfPromo: true,
|
["interaction", { value: "auto", label: "actions.skip_interaction" }],
|
||||||
skipMusicOffTopic: true,
|
["selfpromo", { value: "auto", label: "actions.skip_self_promo" }],
|
||||||
skipHighlight: false,
|
["music_offtopic", { value: "auto", label: "actions.skip_non_music" }],
|
||||||
skipFiller: false,
|
["poi_highlight", { value: "no", label: "actions.skip_highlight" }],
|
||||||
|
["filler", { value: "no", label: "actions.skip_filler_tangent" }],
|
||||||
|
]),
|
||||||
showMarkers: true,
|
showMarkers: true,
|
||||||
|
minSegmentLength: 0,
|
||||||
selectedTheme: "dark",
|
selectedTheme: "dark",
|
||||||
autoPlayVideo: true,
|
autoPlayVideo: true,
|
||||||
priorityAutoPlay: false,
|
priorityAutoPlay: false,
|
||||||
|
@ -517,55 +460,25 @@ export default {
|
||||||
this.selectedAuthInstance = this.getPreferenceString("auth_instance_url", this.selectedInstance);
|
this.selectedAuthInstance = this.getPreferenceString("auth_instance_url", this.selectedInstance);
|
||||||
|
|
||||||
this.sponsorBlock = this.getPreferenceBoolean("sponsorblock", true);
|
this.sponsorBlock = this.getPreferenceBoolean("sponsorblock", true);
|
||||||
if (localStorage.getItem("selectedSkip") !== null) {
|
var skipOptions, skipList;
|
||||||
var skipList = localStorage.getItem("selectedSkip").split(",");
|
if ((skipOptions = this.getPreferenceJSON("skipOptions")) !== undefined) {
|
||||||
this.skipSponsor =
|
Object.entries(skipOptions).forEach(([key, value]) => {
|
||||||
this.skipIntro =
|
var opt = this.skipOptions.get(key);
|
||||||
this.skipOutro =
|
if (opt !== undefined) opt.value = value;
|
||||||
this.skipPreview =
|
else console.log("Unknown sponsor type: " + key);
|
||||||
this.skipInteraction =
|
});
|
||||||
this.skipSelfPromo =
|
} else if ((skipList = this.getPreferenceString("selectedSkip")) !== undefined) {
|
||||||
this.skipMusicOffTopic =
|
skipList = skipList.split(",");
|
||||||
this.skipHighlight =
|
this.skipOptions.forEach(opt => (opt.value = "no"));
|
||||||
this.skipFiller =
|
|
||||||
false;
|
|
||||||
skipList.forEach(skip => {
|
skipList.forEach(skip => {
|
||||||
switch (skip) {
|
var opt = this.skipOptions.get(skip);
|
||||||
case "sponsor":
|
if (opt !== undefined) opt.value = "auto";
|
||||||
this.skipSponsor = true;
|
else console.log("Unknown sponsor type: " + skip);
|
||||||
break;
|
|
||||||
case "intro":
|
|
||||||
this.skipIntro = true;
|
|
||||||
break;
|
|
||||||
case "outro":
|
|
||||||
this.skipOutro = true;
|
|
||||||
break;
|
|
||||||
case "preview":
|
|
||||||
this.skipPreview = true;
|
|
||||||
break;
|
|
||||||
case "interaction":
|
|
||||||
this.skipInteraction = true;
|
|
||||||
break;
|
|
||||||
case "selfpromo":
|
|
||||||
this.skipSelfPromo = true;
|
|
||||||
break;
|
|
||||||
case "music_offtopic":
|
|
||||||
this.skipMusicOffTopic = true;
|
|
||||||
break;
|
|
||||||
case "poi_highlight":
|
|
||||||
this.skipHighlight = true;
|
|
||||||
break;
|
|
||||||
case "filler":
|
|
||||||
this.skipFiller = true;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
console.log("Unknown sponsor type: " + skip);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
this.showMarkers = this.getPreferenceBoolean("showMarkers", true);
|
this.showMarkers = this.getPreferenceBoolean("showMarkers", true);
|
||||||
|
this.minSegmentLength = Math.max(this.getPreferenceNumber("minSegmentLength", 0), 0);
|
||||||
this.selectedTheme = this.getPreferenceString("theme", "dark");
|
this.selectedTheme = this.getPreferenceString("theme", "dark");
|
||||||
this.autoPlayVideo = this.getPreferenceBoolean("playerAutoPlay", true);
|
this.autoPlayVideo = this.getPreferenceBoolean("playerAutoPlay", true);
|
||||||
this.priorityAutoPlay = this.getPreferenceBoolean("priorityAutoPlay", false);
|
this.priorityAutoPlay = this.getPreferenceBoolean("priorityAutoPlay", false);
|
||||||
|
@ -615,19 +528,12 @@ export default {
|
||||||
localStorage.setItem("auth_instance_url", this.selectedAuthInstance);
|
localStorage.setItem("auth_instance_url", this.selectedAuthInstance);
|
||||||
localStorage.setItem("sponsorblock", this.sponsorBlock);
|
localStorage.setItem("sponsorblock", this.sponsorBlock);
|
||||||
|
|
||||||
var sponsorSelected = [];
|
var skipOptions = {};
|
||||||
if (this.skipSponsor) sponsorSelected.push("sponsor");
|
this.skipOptions.forEach((v, k) => (skipOptions[k] = v.value));
|
||||||
if (this.skipIntro) sponsorSelected.push("intro");
|
localStorage.setItem("skipOptions", JSON.stringify(skipOptions));
|
||||||
if (this.skipOutro) sponsorSelected.push("outro");
|
|
||||||
if (this.skipPreview) sponsorSelected.push("preview");
|
|
||||||
if (this.skipInteraction) sponsorSelected.push("interaction");
|
|
||||||
if (this.skipSelfPromo) sponsorSelected.push("selfpromo");
|
|
||||||
if (this.skipMusicOffTopic) sponsorSelected.push("music_offtopic");
|
|
||||||
if (this.skipHighlight) sponsorSelected.push("poi_highlight");
|
|
||||||
if (this.skipFiller) sponsorSelected.push("filler");
|
|
||||||
localStorage.setItem("selectedSkip", sponsorSelected);
|
|
||||||
|
|
||||||
localStorage.setItem("showMarkers", this.showMarkers);
|
localStorage.setItem("showMarkers", this.showMarkers);
|
||||||
|
localStorage.setItem("minSegmentLength", this.minSegmentLength);
|
||||||
localStorage.setItem("theme", this.selectedTheme);
|
localStorage.setItem("theme", this.selectedTheme);
|
||||||
localStorage.setItem("playerAutoPlay", this.autoPlayVideo);
|
localStorage.setItem("playerAutoPlay", this.autoPlayVideo);
|
||||||
localStorage.setItem("priorityAutoPlay", this.priorityAutoPlay);
|
localStorage.setItem("priorityAutoPlay", this.priorityAutoPlay);
|
||||||
|
|
|
@ -6,6 +6,17 @@
|
||||||
:class="{ 'player-container': !isEmbed }"
|
:class="{ 'player-container': !isEmbed }"
|
||||||
>
|
>
|
||||||
<video ref="videoEl" class="w-full" data-shaka-player :autoplay="shouldAutoPlay" :loop="selectedAutoLoop" />
|
<video ref="videoEl" class="w-full" data-shaka-player :autoplay="shouldAutoPlay" :loop="selectedAutoLoop" />
|
||||||
|
<button
|
||||||
|
v-if="inSegment"
|
||||||
|
class="skip-segment-button"
|
||||||
|
type="button"
|
||||||
|
:aria-label="$t('actions.skip_segment')"
|
||||||
|
aria-pressed="false"
|
||||||
|
@click="onClickSkipSegment"
|
||||||
|
>
|
||||||
|
<span v-t="'actions.skip_segment'" />
|
||||||
|
<i class="material-icons-round">skip_next</i>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -51,6 +62,7 @@ export default {
|
||||||
lastUpdate: new Date().getTime(),
|
lastUpdate: new Date().getTime(),
|
||||||
initialSeekComplete: false,
|
initialSeekComplete: false,
|
||||||
destroying: false,
|
destroying: false,
|
||||||
|
inSegment: false,
|
||||||
nextVideo: null,
|
nextVideo: null,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
@ -92,7 +104,7 @@ export default {
|
||||||
this.hotkeysPromise.then(() => {
|
this.hotkeysPromise.then(() => {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.$hotkeys(
|
this.$hotkeys(
|
||||||
"f,m,j,k,l,c,space,up,down,left,right,0,1,2,3,4,5,6,7,8,9,shift+n,shift+,,shift+.",
|
"f,m,j,k,l,c,space,up,down,left,right,0,1,2,3,4,5,6,7,8,9,shift+n,shift+,,shift+.,return",
|
||||||
function (e, handler) {
|
function (e, handler) {
|
||||||
const videoEl = self.$refs.videoEl;
|
const videoEl = self.$refs.videoEl;
|
||||||
switch (handler.key) {
|
switch (handler.key) {
|
||||||
|
@ -188,6 +200,9 @@ export default {
|
||||||
case "shift+.":
|
case "shift+.":
|
||||||
self.$player.trickPlay(Math.min(videoEl.playbackRate + 0.25, 2));
|
self.$player.trickPlay(Math.min(videoEl.playbackRate + 0.25, 2));
|
||||||
break;
|
break;
|
||||||
|
case "return":
|
||||||
|
self.skipSegment(videoEl);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
@ -365,17 +380,11 @@ export default {
|
||||||
this.$emit("timeupdate", time);
|
this.$emit("timeupdate", time);
|
||||||
this.updateProgressDatabase(time);
|
this.updateProgressDatabase(time);
|
||||||
if (this.sponsors && this.sponsors.segments) {
|
if (this.sponsors && this.sponsors.segments) {
|
||||||
this.sponsors.segments.map(segment => {
|
const segment = this.findCurrentSegment(time);
|
||||||
if (!segment.skipped || this.selectedAutoLoop) {
|
this.inSegment = !!segment;
|
||||||
const end = segment.segment[1];
|
if (segment?.autoskip && (!segment.skipped || this.selectedAutoLoop)) {
|
||||||
if (time >= segment.segment[0] && time < end) {
|
this.skipSegment(videoEl, segment);
|
||||||
console.log("Skipped segment at " + time);
|
}
|
||||||
videoEl.currentTime = end;
|
|
||||||
segment.skipped = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -405,6 +414,21 @@ export default {
|
||||||
|
|
||||||
//TODO: Add sponsors on seekbar: https://github.com/ajayyy/SponsorBlock/blob/e39de9fd852adb9196e0358ed827ad38d9933e29/src/js-components/previewBar.ts#L12
|
//TODO: Add sponsors on seekbar: https://github.com/ajayyy/SponsorBlock/blob/e39de9fd852adb9196e0358ed827ad38d9933e29/src/js-components/previewBar.ts#L12
|
||||||
},
|
},
|
||||||
|
findCurrentSegment(time) {
|
||||||
|
return this.sponsors?.segments?.find(s => time >= s.segment[0] && time < s.segment[1]);
|
||||||
|
},
|
||||||
|
onClickSkipSegment() {
|
||||||
|
const videoEl = this.$refs.videoEl;
|
||||||
|
this.skipSegment(videoEl);
|
||||||
|
},
|
||||||
|
skipSegment(videoEl, segment) {
|
||||||
|
const time = videoEl.currentTime;
|
||||||
|
if (!segment) segment = this.findCurrentSegment(time);
|
||||||
|
if (!segment) return;
|
||||||
|
console.log("Skipped segment at " + time);
|
||||||
|
videoEl.currentTime = segment.segment[1];
|
||||||
|
segment.skipped = true;
|
||||||
|
},
|
||||||
setPlayerAttrs(localPlayer, videoEl, uri, mime, shaka) {
|
setPlayerAttrs(localPlayer, videoEl, uri, mime, shaka) {
|
||||||
const url = "/watch?v=" + this.video.id;
|
const url = "/watch?v=" + this.video.id;
|
||||||
|
|
||||||
|
@ -726,6 +750,11 @@ export default {
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
sponsors() {
|
sponsors() {
|
||||||
|
const skipOptions = this.getPreferenceJSON("skipOptions", {});
|
||||||
|
this.sponsors?.segments?.forEach(segment => {
|
||||||
|
const option = skipOptions[segment.category];
|
||||||
|
segment.autoskip = option === undefined || option === "auto";
|
||||||
|
});
|
||||||
if (this.getPreferenceBoolean("showMarkers", true)) {
|
if (this.getPreferenceBoolean("showMarkers", true)) {
|
||||||
this.shakaPromise.then(() => {
|
this.shakaPromise.then(() => {
|
||||||
this.updateMarkers();
|
this.updateMarkers();
|
||||||
|
@ -767,4 +796,35 @@ export default {
|
||||||
background-color: rgba(0, 0, 0, 0.6) !important;
|
background-color: rgba(0, 0, 0, 0.6) !important;
|
||||||
padding: 0.09em 0;
|
padding: 0.09em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.skip-segment-button {
|
||||||
|
/* position button above player overlay */
|
||||||
|
z-index: 1000;
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
|
transform: translate(0, -50%);
|
||||||
|
top: 50%;
|
||||||
|
right: 0;
|
||||||
|
|
||||||
|
background-color: rgb(0 0 0 / 0.5);
|
||||||
|
border: 2px rgba(255, 255, 255, 0.75) solid;
|
||||||
|
border-right: 0;
|
||||||
|
border-radius: 0.75em;
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
padding: 0.5em;
|
||||||
|
|
||||||
|
/* center text vertically */
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
color: #fff;
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skip-segment-button .material-icons-round {
|
||||||
|
font-size: 1.6em !important;
|
||||||
|
line-height: inherit !important;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -367,15 +367,28 @@ export default {
|
||||||
return this.fetchJson(this.apiUrl() + "/streams/" + this.getVideoId());
|
return this.fetchJson(this.apiUrl() + "/streams/" + this.getVideoId());
|
||||||
},
|
},
|
||||||
async fetchSponsors() {
|
async fetchSponsors() {
|
||||||
return await this.fetchJson(this.apiUrl() + "/sponsors/" + this.getVideoId(), {
|
var selectedSkip = this.getPreferenceString(
|
||||||
category:
|
"selectedSkip",
|
||||||
'["' +
|
"sponsor,interaction,selfpromo,music_offtopic",
|
||||||
this.getPreferenceString("selectedSkip", "sponsor,interaction,selfpromo,music_offtopic").replaceAll(
|
).split(",");
|
||||||
",",
|
const skipOptions = this.getPreferenceJSON("skipOptions");
|
||||||
'","',
|
if (skipOptions !== undefined) {
|
||||||
) +
|
selectedSkip = Object.keys(skipOptions).filter(
|
||||||
'"]',
|
k => skipOptions[k] !== undefined && skipOptions[k] !== "no",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const sponsors = await this.fetchJson(this.apiUrl() + "/sponsors/" + this.getVideoId(), {
|
||||||
|
category: JSON.stringify(selectedSkip),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const minSegmentLength = Math.max(this.getPreferenceNumber("minSegmentLength", 0), 0);
|
||||||
|
sponsors.segments = sponsors.segments?.filter(segment => {
|
||||||
|
const length = segment.segment[1] - segment.segment[0];
|
||||||
|
return length >= minSegmentLength;
|
||||||
|
});
|
||||||
|
|
||||||
|
return sponsors;
|
||||||
},
|
},
|
||||||
toggleComments() {
|
toggleComments() {
|
||||||
this.showComments = !this.showComments;
|
this.showComments = !this.showComments;
|
||||||
|
|
|
@ -123,7 +123,11 @@
|
||||||
"no_valid_playlists": "لا يحتوي الملف على قوائم تشغيل صالحة!",
|
"no_valid_playlists": "لا يحتوي الملف على قوائم تشغيل صالحة!",
|
||||||
"with_playlist": "المشاركة مع قائمة التشغيل",
|
"with_playlist": "المشاركة مع قائمة التشغيل",
|
||||||
"bookmark_playlist": "الاشاره المرجعيه",
|
"bookmark_playlist": "الاشاره المرجعيه",
|
||||||
"playlist_bookmarked": "تم وضعها في الاشارات المرجعية"
|
"playlist_bookmarked": "تم وضعها في الاشارات المرجعية",
|
||||||
|
"skip_button_only": "إظهار زر التخطي",
|
||||||
|
"skip_automatically": "تلقائيا",
|
||||||
|
"min_segment_length": "الحد الأدنى لطول الفصل (بالثواني)",
|
||||||
|
"skip_segment": "تخطي الجزء"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"sponsor_segments": "المقاطع الإعلانية",
|
"sponsor_segments": "المقاطع الإعلانية",
|
||||||
|
|
|
@ -123,7 +123,11 @@
|
||||||
"no_valid_playlists": "Faylda etibarlı pleylistlər yoxdur!",
|
"no_valid_playlists": "Faylda etibarlı pleylistlər yoxdur!",
|
||||||
"with_playlist": "Pleylistlə paylaş",
|
"with_playlist": "Pleylistlə paylaş",
|
||||||
"bookmark_playlist": "Əlfəcin",
|
"bookmark_playlist": "Əlfəcin",
|
||||||
"playlist_bookmarked": "Əlfəcinləndi"
|
"playlist_bookmarked": "Əlfəcinləndi",
|
||||||
|
"skip_button_only": "Ötürmə düyməsin göstər",
|
||||||
|
"skip_automatically": "Avtomatik olaraq",
|
||||||
|
"min_segment_length": "Minimum Seqment Uzunluğu (saniyələrlə)",
|
||||||
|
"skip_segment": "Seqmenti ötür"
|
||||||
},
|
},
|
||||||
"comment": {
|
"comment": {
|
||||||
"pinned_by": "Tərəfindən Sabitləndi {author}",
|
"pinned_by": "Tərəfindən Sabitləndi {author}",
|
||||||
|
|
|
@ -12,7 +12,8 @@
|
||||||
"instance": "Instància",
|
"instance": "Instància",
|
||||||
"player": "Reproductor",
|
"player": "Reproductor",
|
||||||
"livestreams": "Retransmissió en directe",
|
"livestreams": "Retransmissió en directe",
|
||||||
"channels": "Canals"
|
"channels": "Canals",
|
||||||
|
"bookmarks": "Marcadors"
|
||||||
},
|
},
|
||||||
"actions": {
|
"actions": {
|
||||||
"channel_name_desc": "Nom del Canal (Z-A)",
|
"channel_name_desc": "Nom del Canal (Z-A)",
|
||||||
|
@ -114,7 +115,16 @@
|
||||||
"show_watch_on_youtube": "Mostra el botó \"Veure a Youtube\"",
|
"show_watch_on_youtube": "Mostra el botó \"Veure a Youtube\"",
|
||||||
"reply_count": "{count} respostes",
|
"reply_count": "{count} respostes",
|
||||||
"minimize_comments_default": "Minimitzar els comentaris per defecte",
|
"minimize_comments_default": "Minimitzar els comentaris per defecte",
|
||||||
"minimize_comments": "Minimitza els comentaris"
|
"minimize_comments": "Minimitza els comentaris",
|
||||||
|
"no_valid_playlists": "L'arxiu no conté llistes de reproducció vàlides!",
|
||||||
|
"bookmark_playlist": "Marcador",
|
||||||
|
"playlist_bookmarked": "Afegit a marcadors",
|
||||||
|
"minimize_chapters_default": "Minimitzar capítols per defecte",
|
||||||
|
"skip_button_only": "Mostra el botó de saltar",
|
||||||
|
"skip_automatically": "Automàticament",
|
||||||
|
"min_segment_length": "Longitud de segment mínima (en segons)",
|
||||||
|
"skip_segment": "Saltar segment",
|
||||||
|
"with_playlist": "Comparteix amb llista de reproducció"
|
||||||
},
|
},
|
||||||
"comment": {
|
"comment": {
|
||||||
"pinned_by": "Fixat per {author}",
|
"pinned_by": "Fixat per {author}",
|
||||||
|
@ -139,7 +149,8 @@
|
||||||
"live": "{0} En Directe",
|
"live": "{0} En Directe",
|
||||||
"videos": "Vídeos",
|
"videos": "Vídeos",
|
||||||
"views": "{views} visualitzacions",
|
"views": "{views} visualitzacions",
|
||||||
"shorts": "Curts"
|
"shorts": "Curts",
|
||||||
|
"all": "Tot"
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"did_you_mean": "Volies dir: {0}?",
|
"did_you_mean": "Volies dir: {0}?",
|
||||||
|
@ -169,6 +180,8 @@
|
||||||
"preferences_note": "Nota: les preferències es desen a l'emmagatzematge local del navegador. Si elimineu les dades del navegador, es restabliran.",
|
"preferences_note": "Nota: les preferències es desen a l'emmagatzematge local del navegador. Si elimineu les dades del navegador, es restabliran.",
|
||||||
"page_not_found": "No s'ha torbat la pàgina",
|
"page_not_found": "No s'ha torbat la pàgina",
|
||||||
"copied": "Copiat!",
|
"copied": "Copiat!",
|
||||||
"cannot_copy": "No es pot copiar!"
|
"cannot_copy": "No es pot copiar!",
|
||||||
|
"local_storage": "Aquesta acció requereix emmagatzematge local, estan les cookies habilitades?",
|
||||||
|
"register_no_email_note": "Utilitzar un correu elextrònic com a usuari no és recomanable. Continuar de totes maneres?"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,7 +120,11 @@
|
||||||
"no_valid_playlists": "Soubor neobsahuje platné playlisty!",
|
"no_valid_playlists": "Soubor neobsahuje platné playlisty!",
|
||||||
"with_playlist": "Sdílet s playlistem",
|
"with_playlist": "Sdílet s playlistem",
|
||||||
"bookmark_playlist": "Záložka",
|
"bookmark_playlist": "Záložka",
|
||||||
"playlist_bookmarked": "Uloženo"
|
"playlist_bookmarked": "Uloženo",
|
||||||
|
"skip_automatically": "Automaticky",
|
||||||
|
"skip_segment": "Přeskočit segment",
|
||||||
|
"skip_button_only": "Zobrazit tlačítko přeskočení",
|
||||||
|
"min_segment_length": "Minimální délka segmentu (v sekundách)"
|
||||||
},
|
},
|
||||||
"player": {
|
"player": {
|
||||||
"watch_on": "Sledovat na {0}"
|
"watch_on": "Sledovat na {0}"
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
"back": "Back",
|
"back": "Back",
|
||||||
"uses_api_from": "Uses the API from ",
|
"uses_api_from": "Uses the API from ",
|
||||||
"enable_sponsorblock": "Enable Sponsorblock",
|
"enable_sponsorblock": "Enable Sponsorblock",
|
||||||
|
"skip_button_only": "Show skip button",
|
||||||
|
"skip_automatically": "Automatically",
|
||||||
"skip_sponsors": "Skip Sponsors",
|
"skip_sponsors": "Skip Sponsors",
|
||||||
"skip_intro": "Skip Intermission/Intro Animation",
|
"skip_intro": "Skip Intermission/Intro Animation",
|
||||||
"skip_outro": "Skip Endcards/Credits",
|
"skip_outro": "Skip Endcards/Credits",
|
||||||
|
@ -40,6 +42,8 @@
|
||||||
"skip_highlight": "Skip Highlight",
|
"skip_highlight": "Skip Highlight",
|
||||||
"skip_filler_tangent": "Skip Filler Tangent",
|
"skip_filler_tangent": "Skip Filler Tangent",
|
||||||
"show_markers": "Show Markers on Player",
|
"show_markers": "Show Markers on Player",
|
||||||
|
"min_segment_length": "Minimum Segment Length (in seconds)",
|
||||||
|
"skip_segment": "Skip Segment",
|
||||||
"theme": "Theme",
|
"theme": "Theme",
|
||||||
"auto": "Auto",
|
"auto": "Auto",
|
||||||
"dark": "Dark",
|
"dark": "Dark",
|
||||||
|
|
|
@ -123,7 +123,11 @@
|
||||||
"no_valid_playlists": "La dosiero ne enhavas validajn ludlistojn!",
|
"no_valid_playlists": "La dosiero ne enhavas validajn ludlistojn!",
|
||||||
"with_playlist": "Konigi kun ludlisto",
|
"with_playlist": "Konigi kun ludlisto",
|
||||||
"playlist_bookmarked": "Legosignita",
|
"playlist_bookmarked": "Legosignita",
|
||||||
"bookmark_playlist": "Legosigno"
|
"bookmark_playlist": "Legosigno",
|
||||||
|
"skip_automatically": "Aŭtomate",
|
||||||
|
"skip_button_only": "Montri preterpasi-butonon",
|
||||||
|
"min_segment_length": "Minimuma Segmenta Daŭro (en sekundoj)",
|
||||||
|
"skip_segment": "Preterpasi Segmenton"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"chapters": "Sekcioj",
|
"chapters": "Sekcioj",
|
||||||
|
|
|
@ -130,7 +130,11 @@
|
||||||
"no_valid_playlists": "¡El archivo no contiene listas de reproducción válidas!",
|
"no_valid_playlists": "¡El archivo no contiene listas de reproducción válidas!",
|
||||||
"with_playlist": "Compartir con lista de reproducción",
|
"with_playlist": "Compartir con lista de reproducción",
|
||||||
"playlist_bookmarked": "Marcado",
|
"playlist_bookmarked": "Marcado",
|
||||||
"bookmark_playlist": "Marcador"
|
"bookmark_playlist": "Marcador",
|
||||||
|
"skip_button_only": "Muestra botón de saltar",
|
||||||
|
"skip_automatically": "Automáticamente",
|
||||||
|
"min_segment_length": "Mínima Duración de Segmento (en segundos)",
|
||||||
|
"skip_segment": "Saltar Segmento"
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
"feed": "Fuente web",
|
"feed": "Fuente web",
|
||||||
|
|
|
@ -123,7 +123,11 @@
|
||||||
"no_valid_playlists": "הקובץ לא מכיל רשימות נגינה תקפות!",
|
"no_valid_playlists": "הקובץ לא מכיל רשימות נגינה תקפות!",
|
||||||
"with_playlist": "שיתוף עם רשימת נגינה",
|
"with_playlist": "שיתוף עם רשימת נגינה",
|
||||||
"playlist_bookmarked": "נוסף לסימניות",
|
"playlist_bookmarked": "נוסף לסימניות",
|
||||||
"bookmark_playlist": "סימנייה"
|
"bookmark_playlist": "סימנייה",
|
||||||
|
"skip_button_only": "הצגת כפתור דילוג",
|
||||||
|
"min_segment_length": "אורך מקטע מזערי (בשניות)",
|
||||||
|
"skip_segment": "דילוג על מקטע",
|
||||||
|
"skip_automatically": "אוטומטית"
|
||||||
},
|
},
|
||||||
"comment": {
|
"comment": {
|
||||||
"pinned_by": "ננעץ על ידי {author}",
|
"pinned_by": "ננעץ על ידי {author}",
|
||||||
|
|
|
@ -104,7 +104,11 @@
|
||||||
"no_valid_playlists": "Il file non contiene playlist valide!",
|
"no_valid_playlists": "Il file non contiene playlist valide!",
|
||||||
"bookmark_playlist": "Segnalibro",
|
"bookmark_playlist": "Segnalibro",
|
||||||
"with_playlist": "Condividi con la playlist",
|
"with_playlist": "Condividi con la playlist",
|
||||||
"playlist_bookmarked": "Nei segnalibri"
|
"playlist_bookmarked": "Nei segnalibri",
|
||||||
|
"min_segment_length": "Lunghezza minima del segmento (in secondi)",
|
||||||
|
"skip_automatically": "Automaticamente",
|
||||||
|
"skip_button_only": "Mostra pulsante di salto",
|
||||||
|
"skip_segment": "Salta segmento"
|
||||||
},
|
},
|
||||||
"player": {
|
"player": {
|
||||||
"watch_on": "Guarda su {0}"
|
"watch_on": "Guarda su {0}"
|
||||||
|
|
|
@ -123,7 +123,11 @@
|
||||||
"bookmark_playlist": "Marcapagina",
|
"bookmark_playlist": "Marcapagina",
|
||||||
"status_page": "Estat",
|
"status_page": "Estat",
|
||||||
"no_valid_playlists": "Lo fichièr conten pas cap de lista de lectura valida !",
|
"no_valid_playlists": "Lo fichièr conten pas cap de lista de lectura valida !",
|
||||||
"instance_donations": "Dons d’instància"
|
"instance_donations": "Dons d’instància",
|
||||||
|
"skip_button_only": "Afichar lo boton per sautar",
|
||||||
|
"skip_automatically": "Automaticament",
|
||||||
|
"min_segment_length": "Durada minimum de segment (en segondas)",
|
||||||
|
"skip_segment": "Sautar lo segment"
|
||||||
},
|
},
|
||||||
"preferences": {
|
"preferences": {
|
||||||
"instance_locations": "Localizacion de l’instància",
|
"instance_locations": "Localizacion de l’instància",
|
||||||
|
|
|
@ -123,7 +123,11 @@
|
||||||
"no_valid_playlists": "Ten plik nie zawiera poprawnych playlist!",
|
"no_valid_playlists": "Ten plik nie zawiera poprawnych playlist!",
|
||||||
"with_playlist": "Udostępnij z playlistą",
|
"with_playlist": "Udostępnij z playlistą",
|
||||||
"playlist_bookmarked": "Dodano do zakładek",
|
"playlist_bookmarked": "Dodano do zakładek",
|
||||||
"bookmark_playlist": "Zakładka"
|
"bookmark_playlist": "Zakładka",
|
||||||
|
"skip_button_only": "Pokaż przycisk pomijania",
|
||||||
|
"skip_automatically": "Automatycznie",
|
||||||
|
"min_segment_length": "Minimalna długość segmentu (w sekundach)",
|
||||||
|
"skip_segment": "Pomiń segment"
|
||||||
},
|
},
|
||||||
"comment": {
|
"comment": {
|
||||||
"pinned_by": "Przypięty przez {author}",
|
"pinned_by": "Przypięty przez {author}",
|
||||||
|
@ -152,7 +156,8 @@
|
||||||
"ratings_disabled": "Ocenianie wyłączone",
|
"ratings_disabled": "Ocenianie wyłączone",
|
||||||
"chapters": "Rozdziały",
|
"chapters": "Rozdziały",
|
||||||
"live": "{0} Na żywo",
|
"live": "{0} Na żywo",
|
||||||
"shorts": "Krótkie wideo"
|
"shorts": "Krótkie wideo",
|
||||||
|
"all": "Wszystkie"
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"did_you_mean": "Czy chodziło ci o: {0}?",
|
"did_you_mean": "Czy chodziło ci o: {0}?",
|
||||||
|
|
|
@ -120,7 +120,11 @@
|
||||||
"no_valid_playlists": "O ficheiro não contém listas de reprodução válidas!",
|
"no_valid_playlists": "O ficheiro não contém listas de reprodução válidas!",
|
||||||
"with_playlist": "Partilhar com lista de reprodução",
|
"with_playlist": "Partilhar com lista de reprodução",
|
||||||
"playlist_bookmarked": "Marcado",
|
"playlist_bookmarked": "Marcado",
|
||||||
"bookmark_playlist": "Marcador"
|
"bookmark_playlist": "Marcador",
|
||||||
|
"skip_button_only": "Mostrar botão saltar",
|
||||||
|
"skip_automatically": "Automaticamente",
|
||||||
|
"min_segment_length": "Comprimento Mínimo do Segmento (em segundos)",
|
||||||
|
"skip_segment": "Saltar Segmento"
|
||||||
},
|
},
|
||||||
"preferences": {
|
"preferences": {
|
||||||
"instance_name": "Nome da Instância",
|
"instance_name": "Nome da Instância",
|
||||||
|
|
|
@ -104,7 +104,11 @@
|
||||||
"no_valid_playlists": "O arquivo não contém playlists válidas!",
|
"no_valid_playlists": "O arquivo não contém playlists válidas!",
|
||||||
"with_playlist": "Compartilhar com playlist",
|
"with_playlist": "Compartilhar com playlist",
|
||||||
"bookmark_playlist": "Favorito",
|
"bookmark_playlist": "Favorito",
|
||||||
"playlist_bookmarked": "Favoritado"
|
"playlist_bookmarked": "Favoritado",
|
||||||
|
"skip_automatically": "Automaticamente",
|
||||||
|
"skip_segment": "Ignorar Segmento",
|
||||||
|
"min_segment_length": "Comprimento Mínimo do Segmento (em segundos)",
|
||||||
|
"skip_button_only": "Mostrar botão pular"
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
"history": "Histórico",
|
"history": "Histórico",
|
||||||
|
|
|
@ -120,7 +120,11 @@
|
||||||
"no_valid_playlists": "O ficheiro não contém listas de reprodução válidas!",
|
"no_valid_playlists": "O ficheiro não contém listas de reprodução válidas!",
|
||||||
"bookmark_playlist": "Marcador",
|
"bookmark_playlist": "Marcador",
|
||||||
"playlist_bookmarked": "Marcado",
|
"playlist_bookmarked": "Marcado",
|
||||||
"with_playlist": "Partilhar com lista de reprodução"
|
"with_playlist": "Partilhar com lista de reprodução",
|
||||||
|
"skip_button_only": "Mostrar botão saltar",
|
||||||
|
"skip_automatically": "Automaticamente",
|
||||||
|
"min_segment_length": "Comprimento Mínimo do Segmento (em segundos)",
|
||||||
|
"skip_segment": "Saltar Segmento"
|
||||||
},
|
},
|
||||||
"comment": {
|
"comment": {
|
||||||
"pinned_by": "Afixado por {author}",
|
"pinned_by": "Afixado por {author}",
|
||||||
|
|
|
@ -123,7 +123,11 @@
|
||||||
"no_valid_playlists": "Файл не содержит действительных списков воспроизведения!",
|
"no_valid_playlists": "Файл не содержит действительных списков воспроизведения!",
|
||||||
"with_playlist": "Поделиться с плейлистом",
|
"with_playlist": "Поделиться с плейлистом",
|
||||||
"bookmark_playlist": "Закладка",
|
"bookmark_playlist": "Закладка",
|
||||||
"playlist_bookmarked": "В закладках"
|
"playlist_bookmarked": "В закладках",
|
||||||
|
"skip_automatically": "Автоматически",
|
||||||
|
"min_segment_length": "Минимальная длина сегмента (в секундах)",
|
||||||
|
"skip_button_only": "Показать кнопку \"Пропустить\"",
|
||||||
|
"skip_segment": "Пропустить сегмент"
|
||||||
},
|
},
|
||||||
"comment": {
|
"comment": {
|
||||||
"pinned_by": "Прикреплено пользователем {author}",
|
"pinned_by": "Прикреплено пользователем {author}",
|
||||||
|
|
|
@ -104,7 +104,11 @@
|
||||||
"no_valid_playlists": "Dosya geçerli oynatma listeleri içermiyor!",
|
"no_valid_playlists": "Dosya geçerli oynatma listeleri içermiyor!",
|
||||||
"with_playlist": "Oynatma listesiyle paylaş",
|
"with_playlist": "Oynatma listesiyle paylaş",
|
||||||
"bookmark_playlist": "Yer imlerine ekle",
|
"bookmark_playlist": "Yer imlerine ekle",
|
||||||
"playlist_bookmarked": "Yer imlerine eklendi"
|
"playlist_bookmarked": "Yer imlerine eklendi",
|
||||||
|
"min_segment_length": "En Küçük Bölüm Uzunluğu (saniye cinsinden)",
|
||||||
|
"skip_segment": "Bölümü Atla",
|
||||||
|
"skip_button_only": "Atla düğmesini göster",
|
||||||
|
"skip_automatically": "Otomatik olarak"
|
||||||
},
|
},
|
||||||
"player": {
|
"player": {
|
||||||
"watch_on": "{0} Üzerinde İzle"
|
"watch_on": "{0} Üzerinde İzle"
|
||||||
|
|
|
@ -3,128 +3,132 @@
|
||||||
"watch_on": "Дивитися на {0}"
|
"watch_on": "Дивитися на {0}"
|
||||||
},
|
},
|
||||||
"login": {
|
"login": {
|
||||||
"username": "Назва аккаунта Piped",
|
"username": "Ім'я користувача",
|
||||||
"password": "Пароль"
|
"password": "Пароль"
|
||||||
},
|
},
|
||||||
"actions": {
|
"actions": {
|
||||||
"unsubscribe": "Відписатись - {count}",
|
"unsubscribe": "Відписатися - {count}",
|
||||||
"back": "Назад",
|
"back": "Назад",
|
||||||
"skip_intro": "Пропускати заставку/інтро",
|
"skip_intro": "Пропускати паузу/заставку",
|
||||||
"dark": "Темна",
|
"dark": "Темна",
|
||||||
"view_subscriptions": "Продивитися підписки",
|
"view_subscriptions": "Переглянути Підписки",
|
||||||
"channel_name_asc": "Назва каналу (A-Z)",
|
"channel_name_asc": "Назвою каналу (А-Я)",
|
||||||
"uses_api_from": "Використовувати API з ",
|
"uses_api_from": "Використовує API від ",
|
||||||
"enable_sponsorblock": "Увімкнути Sponsorblock",
|
"enable_sponsorblock": "Увімкнути Sponsorblock",
|
||||||
"skip_outro": "Пропускати кінцівку/титри",
|
"skip_outro": "Пропускати кінцеву заставку/титри",
|
||||||
"skip_preview": "Пропускати короткий вміст поточного епізода або повтор частини минулого",
|
"skip_preview": "Пропускати попередній перегляд/короткий зміст",
|
||||||
"skip_self_promo": "Пропускати саморекламу",
|
"skip_self_promo": "Пропускати саморекламу/рекомендацію",
|
||||||
"autoplay_video": "Автоматичний програш відео",
|
"autoplay_video": "Автоматичне відтворення відео",
|
||||||
"audio_only": "Лише звук",
|
"audio_only": "Лише аудіо",
|
||||||
"default_homepage": "За замовчуванням відкривати",
|
"default_homepage": "Домашня сторінка за замовчуванням",
|
||||||
"show_comments": "Показувати коментарі",
|
"show_comments": "Показати коментарі",
|
||||||
"store_watch_history": "Зберігати історию переглянутих відео",
|
"store_watch_history": "Зберігати історію перегляду",
|
||||||
"language_selection": "Вибір мови",
|
"language_selection": "Вибір мови",
|
||||||
"instance_selection": "Вибір копії сервіса Piped",
|
"instance_selection": "Вибір екземпляра",
|
||||||
"show_more": "Показати більше",
|
"show_more": "Показати більше",
|
||||||
"no": "Ні",
|
"no": "Ні",
|
||||||
"export_to_json": "Експорт в JSON",
|
"export_to_json": "Експортувати в JSON",
|
||||||
"minimize_description": "Згорнути опис",
|
"minimize_description": "Згорнути опис",
|
||||||
"show_recommendations": "Показати рекомендації",
|
"show_recommendations": "Показати рекомендації",
|
||||||
"enable_lbry_proxy": "Проксувати відео з LBRY",
|
"enable_lbry_proxy": "Увімкнути проксі для LBRY",
|
||||||
"search": "Пошук",
|
"search": "Пошук",
|
||||||
"clear_history": "Очистити історію перегляду",
|
"clear_history": "Очистити історію перегляду",
|
||||||
"load_more_replies": "Завантажити більше відповідей",
|
"load_more_replies": "Завантажити більше відповідей",
|
||||||
"subscribe": "Підписатись - {count}",
|
"subscribe": "Підписатися - {count}",
|
||||||
"sort_by": "Відсортувати по:",
|
"sort_by": "Сортувати за:",
|
||||||
"most_recent": "Найновіші",
|
"most_recent": "Найновішими",
|
||||||
"channel_name_desc": "Назва каналу (Z-A)",
|
"channel_name_desc": "Назвою каналу (Я-А)",
|
||||||
"least_recent": "Найстарші",
|
"least_recent": "Найстарішими",
|
||||||
"minimize_recommendations": "Згорнути рекомендації",
|
"minimize_recommendations": "Згорнути рекомендації",
|
||||||
"skip_sponsors": "Пропускати спонсорську рекламу",
|
"skip_sponsors": "Пропускати спонсорську рекламу",
|
||||||
"skip_interaction": "Пропускати прохання підписатися",
|
"skip_interaction": "Пропускати нагадування про взаємодію (підписка)",
|
||||||
"skip_non_music": "Пропускати тишу в музикальних відео",
|
"skip_non_music": "Пропускати сегменти без музики в музикальних відео",
|
||||||
"theme": "Тема",
|
"theme": "Тема",
|
||||||
"auto": "Авто",
|
"auto": "Авто",
|
||||||
"light": "Світла",
|
"light": "Світла",
|
||||||
"buffering_goal": "Розмір буфера відео (в секундах)",
|
"buffering_goal": "Розмір буфера відео (у секундах)",
|
||||||
"instances_list": "Список копій сервіса Piped",
|
"instances_list": "Список екземплярів",
|
||||||
"enabled_codecs": "Увімкнені кодеки (Можно вибрати декілька)",
|
"enabled_codecs": "Увімкнені кодеки (можна вибрати декілька)",
|
||||||
"default_quality": "Якість за замовчуванням",
|
"default_quality": "Якість за замовчуванням",
|
||||||
"country_selection": "Вибір країни (для трендів)",
|
"country_selection": "Вибір країни (для трендів)",
|
||||||
"minimize_description_default": "Не розгортати опис за замовчуванням",
|
"minimize_description_default": "Не розгортати опис за замовчуванням",
|
||||||
"yes": "Так",
|
"yes": "Так",
|
||||||
"import_from_json": "Імпорт з JSON/CSV",
|
"import_from_json": "Імпортувати з JSON/CSV",
|
||||||
"loop_this_video": "Повтор поточного відео",
|
"loop_this_video": "Зациклити це відео",
|
||||||
"auto_play_next_video": "Одразу програвати наступне рекомендоване відео",
|
"auto_play_next_video": "Автоматичне відтворення наступного відео",
|
||||||
"donations": "Пожертвування на розробку",
|
"donations": "Пожертвування на розробку",
|
||||||
"show_description": "Показати опис",
|
"show_description": "Показати опис",
|
||||||
"disable_lbry": "Вимкнути LBRY для стримінгу",
|
"disable_lbry": "Вимкнути LBRY для стримінгу",
|
||||||
"filter": "Фільтр",
|
"filter": "Фільтр",
|
||||||
"view_ssl_score": "Продивитися оцінку SSL",
|
"view_ssl_score": "Переглянути оцінку SSL",
|
||||||
"loading": "Завантаження...",
|
"loading": "Завантаження...",
|
||||||
"hide_replies": "Сховати відповіді",
|
"hide_replies": "Сховати відповіді",
|
||||||
"skip_highlight": "Пропустити Хайлайт",
|
"skip_highlight": "Пропускати основне",
|
||||||
"remove_from_playlist": "Видалити з плейлісту",
|
"remove_from_playlist": "Видалити зі списку відтворення",
|
||||||
"add_to_playlist": "Додати до плейлісту",
|
"add_to_playlist": "Додати до списку відтворення",
|
||||||
"create_playlist": "Створити Плейліст",
|
"create_playlist": "Створити список відтворення",
|
||||||
"delete_playlist_confirm": "Видалити цей плейлист?",
|
"delete_playlist_confirm": "Видалити цей список відтворення?",
|
||||||
"skip_filler_tangent": "Пропускати Нерелевантне",
|
"skip_filler_tangent": "Пропускати дотичне наповнення/жарти",
|
||||||
"delete_playlist_video_confirm": "Видалити відео з плейлисту?",
|
"delete_playlist_video_confirm": "Видалити відео зі списку відтворення?",
|
||||||
"delete_playlist": "Видалити Плейліст",
|
"delete_playlist": "Видалити список відтворення",
|
||||||
"select_playlist": "Вибрати Плейліст",
|
"select_playlist": "Вибрати список відтворення",
|
||||||
"please_select_playlist": "Будь ласка виберіть плейліст",
|
"please_select_playlist": "Будь ласка, виберіть список відтворення",
|
||||||
"confirm_reset_preferences": "Ви впевнені, що бажаєте скинути налаштування?",
|
"confirm_reset_preferences": "Ви впевнені, що бажаєте скинути свої налаштування?",
|
||||||
"show_markers": "Показувати Маркери на Програвачі",
|
"show_markers": "Показувати маркери на Програвачі",
|
||||||
"minimize_recommendations_default": "Ховати Рекомендації за замовчуванням",
|
"minimize_recommendations_default": "Згортати рекомендації за замовчуванням",
|
||||||
"logout": "Вийти з цього пристрою",
|
"logout": "Вийти з цього пристрою",
|
||||||
"backup_preferences": "Налаштування резервних копій",
|
"backup_preferences": "Налаштування резервного копіювання",
|
||||||
"download_as_txt": "Завантажити як .txt",
|
"download_as_txt": "Завантажити як .txt",
|
||||||
"rename_playlist": "Перейменувати плейлист",
|
"rename_playlist": "Перейменувати список відтворення",
|
||||||
"show_chapters": "Глави",
|
"show_chapters": "Розділи",
|
||||||
"invalidate_session": "Вийти зі всіх пристроїв",
|
"invalidate_session": "Вийти з усіх пристроїв",
|
||||||
"clone_playlist": "Клонувати Плейлист",
|
"clone_playlist": "Клонувати список відтворення",
|
||||||
"reset_preferences": "Скинути налаштування",
|
"reset_preferences": "Скинути налаштування",
|
||||||
"back_to_home": "Повернутися на головну",
|
"back_to_home": "Повернутися на головну",
|
||||||
"share": "Поділитися",
|
"share": "Поділитися",
|
||||||
"with_timecode": "Поділитися з відміткою часу",
|
"with_timecode": "Поділитися з відміткою часу",
|
||||||
"piped_link": "Покликання Piped",
|
"piped_link": "Посилання Piped",
|
||||||
"follow_link": "Покликання підписки",
|
"follow_link": "Перейти за посиланням",
|
||||||
"instance_donations": "Пожертвування інстанції",
|
"instance_donations": "Пожертвування екземпляра",
|
||||||
"copy_link": "Копіювати покликання",
|
"copy_link": "Копіювати посилання",
|
||||||
"store_search_history": "Зберігати історію Пошуку",
|
"store_search_history": "Зберігати історію пошуку",
|
||||||
"documentation": "Документація",
|
"documentation": "Документація",
|
||||||
"instance_auth_selection": "Вибір Інстанції для Аутентифікації",
|
"instance_auth_selection": "Вибір екземпляра для автентифікації",
|
||||||
"minimize_chapters_default": "Ховати глави за замовчуванням",
|
"minimize_chapters_default": "Згортати розділи за замовчуванням",
|
||||||
"show_watch_on_youtube": "Показати кнопку Дивитися на YouTube",
|
"show_watch_on_youtube": "Показати кнопку Дивитися на YouTube",
|
||||||
"restore_preferences": "Відновити налаштування",
|
"restore_preferences": "Відновити налаштування",
|
||||||
"different_auth_instance": "Використовувати іншу інстанцію для аутентифікації",
|
"different_auth_instance": "Використовувати інший екземпляр для автентифікації",
|
||||||
"clone_playlist_success": "Клонування пройшло успішно!",
|
"clone_playlist_success": "Успішно клоновано!",
|
||||||
"hide_watched": "Сховати переглянуті відео в стрічці",
|
"hide_watched": "Сховати переглянуті відео в стрічці",
|
||||||
"status_page": "Статус",
|
"status_page": "Статус",
|
||||||
"source_code": "Вихідний код",
|
"source_code": "Вихідний код",
|
||||||
"new_playlist_name": "Нова назва плейлиста",
|
"new_playlist_name": "Нова назва списку відтворення",
|
||||||
"time_code": "Відмітка часу (в секундах)",
|
"time_code": "Відмітка часу (у секундах)",
|
||||||
"reply_count": "{count} відповідей",
|
"reply_count": "{count} відповідей",
|
||||||
"minimize_comments_default": "Згортати коментарі за замовчуванням",
|
"minimize_comments_default": "Згортати коментарі за замовчуванням",
|
||||||
"minimize_comments": "Згорнути коментарі",
|
"minimize_comments": "Згорнути коментарі",
|
||||||
"delete_account": "Видалити Акаунт",
|
"delete_account": "Видалити обліковий запис",
|
||||||
"no_valid_playlists": "Файл не містить дійсних плейлистів!",
|
"no_valid_playlists": "Файл не містить дійсних списків відтворення!",
|
||||||
"bookmark_playlist": "Закладка",
|
"bookmark_playlist": "Закладка",
|
||||||
"playlist_bookmarked": "Додано в закладки",
|
"playlist_bookmarked": "Додано в закладки",
|
||||||
"with_playlist": "Поділитися зі списком відтворення"
|
"with_playlist": "Поділитися зі списком відтворення",
|
||||||
|
"skip_button_only": "Показати кнопку пропуску",
|
||||||
|
"skip_segment": "Пропустити сегмент",
|
||||||
|
"skip_automatically": "Автоматично",
|
||||||
|
"min_segment_length": "Мінімальна довжина сегмента (у секундах)"
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
"register": "Реєстрація",
|
"register": "Реєстрація",
|
||||||
"feed": "Підписки",
|
"feed": "Підписки",
|
||||||
"preferences": "Налаштування",
|
"preferences": "Налаштування",
|
||||||
"history": "Історія переглядів",
|
"history": "Історія перегляду",
|
||||||
"subscriptions": "Канали, на які ви підписані",
|
"subscriptions": "Канали, на які ви підписані",
|
||||||
"trending": "Тренди",
|
"trending": "Тренди",
|
||||||
"login": "Логін",
|
"login": "Логін",
|
||||||
"playlists": "Плейлісти",
|
"playlists": "Списки відтворення",
|
||||||
"instance": "Інстанція",
|
"instance": "Екземпляр",
|
||||||
"player": "Програвач",
|
"player": "Програвач",
|
||||||
"account": "Акаунт",
|
"account": "Обліковий запис",
|
||||||
"livestreams": "Наживо",
|
"livestreams": "Наживо",
|
||||||
"channels": "Канали",
|
"channels": "Канали",
|
||||||
"bookmarks": "Закладки"
|
"bookmarks": "Закладки"
|
||||||
|
@ -136,13 +140,13 @@
|
||||||
"user_disabled": "Коментарі вимкнені в налаштуваннях."
|
"user_disabled": "Коментарі вимкнені в налаштуваннях."
|
||||||
},
|
},
|
||||||
"preferences": {
|
"preferences": {
|
||||||
"instance_locations": "Місцезнаходження копії сервісу",
|
"instance_locations": "Місцезнаходження екземпляру",
|
||||||
"ssl_score": "Оцінка SSL",
|
"ssl_score": "Оцінка SSL",
|
||||||
"instance_name": "Назва копії сервісу",
|
"instance_name": "Назва екземпляру",
|
||||||
"has_cdn": "Використовує CDN?",
|
"has_cdn": "Використовує CDN?",
|
||||||
"version": "Версія",
|
"version": "Версія",
|
||||||
"up_to_date": "Версія актуальна?",
|
"up_to_date": "Версія актуальна?",
|
||||||
"registered_users": "Зареєстровано Користувачей"
|
"registered_users": "Зареєстровано користувачей"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"videos": "Відео",
|
"videos": "Відео",
|
||||||
|
@ -157,13 +161,13 @@
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"did_you_mean": "Можливо, ви мали на увазі: {0}?",
|
"did_you_mean": "Можливо, ви мали на увазі: {0}?",
|
||||||
"music_playlists": "YT Music: Плейлісти",
|
"music_playlists": "YT Music: Списки відтворення",
|
||||||
"all": "YouTube: Все",
|
"all": "YouTube: Все",
|
||||||
"videos": "YouTube: Відео",
|
"videos": "YouTube: Відео",
|
||||||
"channels": "YouTube: Канали",
|
"channels": "YouTube: Канали",
|
||||||
"music_songs": "YT Music: Пісні",
|
"music_songs": "YT Music: Пісні",
|
||||||
"music_videos": "TY Music: Відео",
|
"music_videos": "TY Music: Відео",
|
||||||
"playlists": "YouTube: Плейлісти",
|
"playlists": "YouTube: Списки відтворення",
|
||||||
"music_albums": "YT Music: Альбоми"
|
"music_albums": "YT Music: Альбоми"
|
||||||
},
|
},
|
||||||
"subscriptions": {
|
"subscriptions": {
|
||||||
|
@ -173,7 +177,7 @@
|
||||||
"copied": "Скопійовано!",
|
"copied": "Скопійовано!",
|
||||||
"cannot_copy": "Не вийшло скопіювати!",
|
"cannot_copy": "Не вийшло скопіювати!",
|
||||||
"page_not_found": "Сторінка не знайдена",
|
"page_not_found": "Сторінка не знайдена",
|
||||||
"preferences_note": "Зауваження: налаштування зберігаються в локальному сховищі вашого браузера. Видалення даних браузере їх скине.",
|
"preferences_note": "Примітка: налаштування зберігаються в локальній пам'яті вашого браузера. Видалення даних браузера призведе до їх скидання.",
|
||||||
"local_storage": "Ця дія потребує localStorage, чи ввімкнуті файли cookie?",
|
"local_storage": "Ця дія потребує localStorage, чи ввімкнуті файли cookie?",
|
||||||
"register_no_email_note": "Використання електронної пошти як імені користувача не рекомендується. Все одно продовжити?"
|
"register_no_email_note": "Використання електронної пошти як імені користувача не рекомендується. Все одно продовжити?"
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,7 +104,11 @@
|
||||||
"no_valid_playlists": "此文件不包含有效的播放列表!",
|
"no_valid_playlists": "此文件不包含有效的播放列表!",
|
||||||
"with_playlist": "分享播放列表",
|
"with_playlist": "分享播放列表",
|
||||||
"playlist_bookmarked": "已加入书签",
|
"playlist_bookmarked": "已加入书签",
|
||||||
"bookmark_playlist": "书签"
|
"bookmark_playlist": "书签",
|
||||||
|
"skip_automatically": "自动",
|
||||||
|
"min_segment_length": "最小分段长度(以秒为单位)",
|
||||||
|
"skip_segment": "跳过分段",
|
||||||
|
"skip_button_only": "显示跳过按钮"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"sponsor_segments": "赞助商部分",
|
"sponsor_segments": "赞助商部分",
|
||||||
|
|
|
@ -164,6 +164,15 @@ const mixin = {
|
||||||
return Number(value);
|
return Number(value);
|
||||||
} else return defaultVal;
|
} else return defaultVal;
|
||||||
},
|
},
|
||||||
|
getPreferenceJSON(key, defaultVal) {
|
||||||
|
var value;
|
||||||
|
if (
|
||||||
|
(value = new URLSearchParams(window.location.search).get(key)) !== null ||
|
||||||
|
(this.testLocalStorage && (value = localStorage.getItem(key)) !== null)
|
||||||
|
) {
|
||||||
|
return JSON.parse(value);
|
||||||
|
} else return defaultVal;
|
||||||
|
},
|
||||||
apiUrl() {
|
apiUrl() {
|
||||||
return this.getPreferenceString("instance", "https://pipedapi.kavin.rocks");
|
return this.getPreferenceString("instance", "https://pipedapi.kavin.rocks");
|
||||||
},
|
},
|
||||||
|
|
70
yarn.lock
70
yarn.lock
|
@ -1833,31 +1833,31 @@
|
||||||
minimatch "^3.1.2"
|
minimatch "^3.1.2"
|
||||||
strip-json-comments "^3.1.1"
|
strip-json-comments "^3.1.1"
|
||||||
|
|
||||||
"@fortawesome/fontawesome-common-types@6.2.1":
|
"@fortawesome/fontawesome-common-types@6.3.0":
|
||||||
version "6.2.1"
|
version "6.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.2.1.tgz#411e02a820744d3f7e0d8d9df9d82b471beaa073"
|
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.3.0.tgz#51f734e64511dbc3674cd347044d02f4dd26e86b"
|
||||||
integrity sha512-Sz07mnQrTekFWLz5BMjOzHl/+NooTdW8F8kDQxjWwbpOJcnoSg4vUDng8d/WR1wOxM0O+CY9Zw0nR054riNYtQ==
|
integrity sha512-4BC1NMoacEBzSXRwKjZ/X/gmnbp/HU5Qqat7E8xqorUtBFZS+bwfGH5/wqOC2K6GV0rgEobp3OjGRMa5fK9pFg==
|
||||||
|
|
||||||
"@fortawesome/fontawesome-svg-core@6.2.1":
|
"@fortawesome/fontawesome-svg-core@6.3.0":
|
||||||
version "6.2.1"
|
version "6.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.2.1.tgz#e87e905e444b5e7b715af09b64d27b53d4c8f9d9"
|
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.3.0.tgz#b6a17d48d231ac1fad93e43fca7271676bf316cf"
|
||||||
integrity sha512-HELwwbCz6C1XEcjzyT1Jugmz2NNklMrSPjZOWMlc+ZsHIVk+XOvOXLGGQtFBwSyqfJDNgRq4xBCwWOaZ/d9DEA==
|
integrity sha512-uz9YifyKlixV6AcKlOX8WNdtF7l6nakGyLYxYaCa823bEBqyj/U2ssqtctO38itNEwXb8/lMzjdoJ+aaJuOdrw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@fortawesome/fontawesome-common-types" "6.2.1"
|
"@fortawesome/fontawesome-common-types" "6.3.0"
|
||||||
|
|
||||||
"@fortawesome/free-brands-svg-icons@6.2.1":
|
"@fortawesome/free-brands-svg-icons@6.3.0":
|
||||||
version "6.2.1"
|
version "6.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.2.1.tgz#04a6d6f7898f7ef392aba7a65030a584d4f4c84f"
|
resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.3.0.tgz#436e5fcba4f4f0902edcceaec5c4ff887ba7328f"
|
||||||
integrity sha512-L8l4MfdHPmZlJ72PvzdfwOwbwcCAL0vx48tJRnI6u1PJXh+j2f3yDoKyQgO3qjEsgD5Fr2tQV/cPP8F/k6aUig==
|
integrity sha512-xI0c+a8xnKItAXCN8rZgCNCJQiVAd2Y7p9e2ND6zN3J3ekneu96qrePieJ7yA7073C1JxxoM3vH1RU7rYsaj8w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@fortawesome/fontawesome-common-types" "6.2.1"
|
"@fortawesome/fontawesome-common-types" "6.3.0"
|
||||||
|
|
||||||
"@fortawesome/free-solid-svg-icons@6.2.1":
|
"@fortawesome/free-solid-svg-icons@6.3.0":
|
||||||
version "6.2.1"
|
version "6.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.2.1.tgz#2290ea5adcf1537cbd0c43de6feb38af02141d27"
|
resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.3.0.tgz#d3bd33ae18bb15fdfc3ca136e2fea05f32768a65"
|
||||||
integrity sha512-oKuqrP5jbfEPJWTij4sM+/RvgX+RMFwx3QZCZcK9PrBDgxC35zuc7AOFsyMjMd/PIFPeB2JxyqDr5zs/DZFPPw==
|
integrity sha512-x5tMwzF2lTH8pyv8yeZRodItP2IVlzzmBuD1M7BjawWgg9XAvktqJJ91Qjgoaf8qJpHQ8FEU9VxRfOkLhh86QA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@fortawesome/fontawesome-common-types" "6.2.1"
|
"@fortawesome/fontawesome-common-types" "6.3.0"
|
||||||
|
|
||||||
"@fortawesome/vue-fontawesome@3.0.3":
|
"@fortawesome/vue-fontawesome@3.0.3":
|
||||||
version "3.0.3"
|
version "3.0.3"
|
||||||
|
@ -1883,10 +1883,10 @@
|
||||||
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
|
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
|
||||||
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
|
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
|
||||||
|
|
||||||
"@iconify/json@2.2.18":
|
"@iconify/json@2.2.21":
|
||||||
version "2.2.18"
|
version "2.2.21"
|
||||||
resolved "https://registry.yarnpkg.com/@iconify/json/-/json-2.2.18.tgz#02bdfcf54f4220f797b2efbd084c7ce6b501e962"
|
resolved "https://registry.yarnpkg.com/@iconify/json/-/json-2.2.21.tgz#aeed9ec71781f14d840200b393254bbf9d991244"
|
||||||
integrity sha512-lYVcJFBtczKiYC9kd2TZW9CNV2PVEYjxLayPicI5EM5qFYZxrtmvSL6Nq3sc8XiuAFAMfBvIOjQDjZkf6dIgUA==
|
integrity sha512-6nhAe77/n08xnstU+Aow0brbb3R0nHQpVi2FUpYexR0XkCjp8TuAuSk2mJW1vbwOFBuYXGuBY7CRxZoKnTJMHQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@iconify/types" "*"
|
"@iconify/types" "*"
|
||||||
pathe "^1.0.0"
|
pathe "^1.0.0"
|
||||||
|
@ -3076,10 +3076,10 @@ eslint-visitor-keys@^3.3.0:
|
||||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
|
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
|
||||||
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
|
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
|
||||||
|
|
||||||
eslint@8.33.0:
|
eslint@8.34.0:
|
||||||
version "8.33.0"
|
version "8.34.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7"
|
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.34.0.tgz#fe0ab0ef478104c1f9ebc5537e303d25a8fb22d6"
|
||||||
integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==
|
integrity sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint/eslintrc" "^1.4.1"
|
"@eslint/eslintrc" "^1.4.1"
|
||||||
"@humanwhocodes/config-array" "^0.11.8"
|
"@humanwhocodes/config-array" "^0.11.8"
|
||||||
|
@ -4096,10 +4096,10 @@ prettier-linter-helpers@^1.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
fast-diff "^1.1.2"
|
fast-diff "^1.1.2"
|
||||||
|
|
||||||
prettier@2.8.3:
|
prettier@2.8.4:
|
||||||
version "2.8.3"
|
version "2.8.4"
|
||||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.3.tgz#ab697b1d3dd46fb4626fbe2f543afe0cc98d8632"
|
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3"
|
||||||
integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==
|
integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==
|
||||||
|
|
||||||
pretty-bytes@^5.3.0:
|
pretty-bytes@^5.3.0:
|
||||||
version "5.6.0"
|
version "5.6.0"
|
||||||
|
@ -4756,10 +4756,10 @@ vite-plugin-eslint@1.8.1:
|
||||||
"@types/eslint" "^8.4.5"
|
"@types/eslint" "^8.4.5"
|
||||||
rollup "^2.77.2"
|
rollup "^2.77.2"
|
||||||
|
|
||||||
vite-plugin-pwa@0.14.1:
|
vite-plugin-pwa@0.14.4:
|
||||||
version "0.14.1"
|
version "0.14.4"
|
||||||
resolved "https://registry.yarnpkg.com/vite-plugin-pwa/-/vite-plugin-pwa-0.14.1.tgz#c32905d77916aab23e86522e2d4882c652f008d5"
|
resolved "https://registry.yarnpkg.com/vite-plugin-pwa/-/vite-plugin-pwa-0.14.4.tgz#d83fae9e85ab4a082e11ab475b3ec124bfe49084"
|
||||||
integrity sha512-5zx7yhQ8RTLwV71+GA9YsQQ63ALKG8XXIMqRJDdZkR8ZYftFcRgnzM7wOWmQZ/DATspyhPih5wCdcZnAIsM+mA==
|
integrity sha512-M7Ct0so8OlouMkTWgXnl8W1xU95glITSKIe7qswZf1tniAstO2idElGCnsrTJ5NPNSx1XqfTCOUj8j94S6FD7Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@rollup/plugin-replace" "^5.0.1"
|
"@rollup/plugin-replace" "^5.0.1"
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue