2020-11-17 05:15:35 +00:00
|
|
|
<template>
|
2020-11-22 04:34:27 +00:00
|
|
|
<h1 class="uk-text-bold uk-text-center">Preferences</h1>
|
|
|
|
<hr />
|
2021-02-25 14:40:40 +00:00
|
|
|
<h2>SponsorBlock</h2>
|
2021-04-07 11:45:40 +00:00
|
|
|
<p>Uses the API from <a href="https://sponsor.ajay.app/">sponsor.ajay.app</a></p>
|
2021-02-25 14:40:40 +00:00
|
|
|
<b>Enable Sponsorblock</b>
|
|
|
|
<br />
|
2021-04-07 11:45:40 +00:00
|
|
|
<input class="uk-checkbox" v-model="sponsorBlock" @change="onChange($event)" type="checkbox" />
|
2021-02-25 15:18:59 +00:00
|
|
|
<br />
|
|
|
|
<b>Skip Sponsors</b>
|
|
|
|
<br />
|
2021-04-07 11:45:40 +00:00
|
|
|
<input class="uk-checkbox" v-model="skipSponsor" @change="onChange($event)" type="checkbox" />
|
2021-02-25 15:18:59 +00:00
|
|
|
<br />
|
|
|
|
<b>Skip Intermission/Intro Animation</b>
|
|
|
|
<br />
|
2021-04-07 11:45:40 +00:00
|
|
|
<input class="uk-checkbox" v-model="skipIntro" @change="onChange($event)" type="checkbox" />
|
2021-02-25 15:18:59 +00:00
|
|
|
<br />
|
|
|
|
<b>Skip Endcards/Credits</b>
|
|
|
|
<br />
|
2021-04-07 11:45:40 +00:00
|
|
|
<input class="uk-checkbox" v-model="skipOutro" @change="onChange($event)" type="checkbox" />
|
2021-02-25 15:18:59 +00:00
|
|
|
<br />
|
|
|
|
<b>Skip Interaction Reminder (Subscribe)</b>
|
|
|
|
<br />
|
2021-04-07 11:45:40 +00:00
|
|
|
<input class="uk-checkbox" v-model="skipInteraction" @change="onChange($event)" type="checkbox" />
|
2021-02-25 15:18:59 +00:00
|
|
|
<br />
|
|
|
|
<b>Skip Unpaid/Self Promotion</b>
|
|
|
|
<br />
|
2021-04-07 11:45:40 +00:00
|
|
|
<input class="uk-checkbox" v-model="skipSelfPromo" @change="onChange($event)" type="checkbox" />
|
2021-02-25 15:18:59 +00:00
|
|
|
<br />
|
|
|
|
<b>Skip Music: Non-Music Section</b>
|
|
|
|
<br />
|
2021-04-07 11:45:40 +00:00
|
|
|
<input class="uk-checkbox" v-model="skipMusicOffTopic" @change="onChange($event)" type="checkbox" />
|
2021-05-06 17:30:02 +00:00
|
|
|
<br />
|
|
|
|
<b>Autoplay Video</b>
|
|
|
|
<br />
|
|
|
|
<input class="uk-checkbox" v-model="autoPlayVideo" @change="onChange($event)" type="checkbox" />
|
2021-06-07 20:35:45 +00:00
|
|
|
<br />
|
|
|
|
<b>Audio Only</b>
|
|
|
|
<br />
|
|
|
|
<input class="uk-checkbox" v-model="audioOnly" @change="onChange($event)" type="checkbox" />
|
2021-06-21 20:03:11 +00:00
|
|
|
<br />
|
|
|
|
<b>Default Quality</b>
|
|
|
|
<br />
|
|
|
|
<select class="uk-select" v-model="defaultQuality" @change="onChange($event)">
|
2021-06-21 20:13:21 +00:00
|
|
|
<option value="0">Auto</option>
|
2021-06-21 20:25:38 +00:00
|
|
|
<option :key="resolution" v-for="resolution in resolutions" :value="resolution">{{ resolution }}p</option>
|
2021-06-21 20:03:11 +00:00
|
|
|
</select>
|
2021-06-22 10:54:20 +00:00
|
|
|
<br />
|
|
|
|
<b>Buffering Goal</b>
|
|
|
|
<br />
|
|
|
|
<input class="uk-input" v-model="bufferingGoal" @change="onChange($event)" type="text" />
|
2020-11-22 04:34:27 +00:00
|
|
|
<h2>Instances List</h2>
|
2020-11-17 05:15:35 +00:00
|
|
|
<table class="uk-table">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th>Instance Name</th>
|
|
|
|
<th>Instance Locations</th>
|
|
|
|
<th>Has CDN?</th>
|
2020-11-30 06:39:40 +00:00
|
|
|
<th>SSL Score</th>
|
2020-11-17 05:15:35 +00:00
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody v-bind:key="instance.name" v-for="instance in instances">
|
|
|
|
<tr>
|
|
|
|
<td>{{ instance.name }}</td>
|
|
|
|
<td>{{ instance.locations }}</td>
|
|
|
|
<td>{{ instance.cdn }}</td>
|
2020-11-30 06:39:40 +00:00
|
|
|
<td>
|
2021-04-07 11:45:40 +00:00
|
|
|
<a :href="sslScore(instance.apiurl)" target="_blank">Click Here</a>
|
2020-11-30 06:39:40 +00:00
|
|
|
</td>
|
2020-11-17 05:15:35 +00:00
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
2020-11-22 04:34:27 +00:00
|
|
|
<hr />
|
|
|
|
|
|
|
|
<b>Instance Selection:</b>
|
2021-04-07 11:45:40 +00:00
|
|
|
<select class="uk-select" v-model="selectedInstance" @change="onChange($event)">
|
|
|
|
<option v-bind:key="instance.name" v-for="instance in instances" v-bind:value="instance.apiurl">
|
2020-11-17 05:15:35 +00:00
|
|
|
{{ instance.name }}
|
|
|
|
</option>
|
|
|
|
</select>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
export default {
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
selectedInstance: null,
|
2021-02-25 14:40:40 +00:00
|
|
|
instances: [],
|
2021-02-25 15:18:59 +00:00
|
|
|
sponsorBlock: true,
|
|
|
|
skipSponsor: true,
|
|
|
|
skipIntro: false,
|
|
|
|
skipOutro: false,
|
|
|
|
skipInteraction: true,
|
|
|
|
skipSelfPromo: true,
|
2021-04-07 11:45:40 +00:00
|
|
|
skipMusicOffTopic: true,
|
2021-05-06 17:30:02 +00:00
|
|
|
autoPlayVideo: true,
|
2021-06-07 20:35:45 +00:00
|
|
|
audioOnly: false,
|
2021-06-21 20:25:38 +00:00
|
|
|
resolutions: [144, 240, 360, 480, 720, 1080, 1440, 2160, 4320],
|
2021-06-21 20:03:11 +00:00
|
|
|
defaultQuality: 0,
|
2021-06-22 10:54:20 +00:00
|
|
|
bufferingGoal: 10,
|
2020-11-17 05:15:35 +00:00
|
|
|
};
|
|
|
|
},
|
|
|
|
mounted() {
|
2021-04-07 11:45:40 +00:00
|
|
|
fetch("https://raw.githubusercontent.com/wiki/TeamPiped/Piped-Frontend/Instances.md")
|
2020-11-17 05:15:35 +00:00
|
|
|
.then(resp => resp.text())
|
|
|
|
.then(body => {
|
|
|
|
var skipped = 0;
|
|
|
|
const lines = body.split("\n");
|
|
|
|
lines.map(line => {
|
|
|
|
const split = line.split("|");
|
|
|
|
if (split.length == 4) {
|
|
|
|
if (skipped < 2) {
|
|
|
|
skipped++;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
this.instances.push({
|
|
|
|
name: split[0].trim(),
|
|
|
|
apiurl: split[1].trim(),
|
|
|
|
locations: split[2].trim(),
|
2021-04-07 11:45:40 +00:00
|
|
|
cdn: split[3].trim(),
|
2020-11-17 05:15:35 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2021-02-25 14:40:40 +00:00
|
|
|
if (localStorage) {
|
2021-04-07 11:45:40 +00:00
|
|
|
this.selectedInstance = localStorage.getItem("instance") || "https://pipedapi.kavin.rocks";
|
2021-02-25 14:40:40 +00:00
|
|
|
|
|
|
|
this.sponsorBlock = localStorage.getItem("sponsorblock") || true;
|
2021-04-21 13:38:50 +00:00
|
|
|
if (localStorage.getItem("selectedSkip") !== null) {
|
2021-02-25 15:18:59 +00:00
|
|
|
var skipList = localStorage.getItem("selectedSkip").split(",");
|
|
|
|
this.skipSponsor = this.skipIntro = this.skipOutro = this.skipInteraction = this.skipSelfPromo = this.skipMusicOffTopic = false;
|
|
|
|
skipList.forEach(skip => {
|
|
|
|
switch (skip) {
|
|
|
|
case "sponsor":
|
|
|
|
this.skipSponsor = true;
|
|
|
|
break;
|
|
|
|
case "intro":
|
|
|
|
this.skipIntro = true;
|
|
|
|
break;
|
|
|
|
case "outro":
|
|
|
|
this.skipOutro = true;
|
|
|
|
break;
|
|
|
|
case "interaction":
|
|
|
|
this.skipInteraction = true;
|
|
|
|
break;
|
|
|
|
case "selfpromo":
|
|
|
|
this.skipSelfPromo = true;
|
|
|
|
break;
|
|
|
|
case "music_offtopic":
|
|
|
|
this.skipMusicOffTopic = true;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
console.log("Unknown sponsor type: " + skip);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
2021-05-06 17:30:02 +00:00
|
|
|
|
|
|
|
this.autoPlayVideo =
|
|
|
|
localStorage.getItem("playerAutoPlay") === null || localStorage.getItem("playerAutoPlay") === "true";
|
2021-06-07 20:35:45 +00:00
|
|
|
this.audioOnly = localStorage.getItem("audioOnly") === "true";
|
2021-06-21 20:03:11 +00:00
|
|
|
this.defaultQuality = Number(localStorage.getItem("quality"));
|
2021-06-22 10:54:20 +00:00
|
|
|
this.bufferingGoal = Math.max(Number(localStorage.getItem("bufferGoal")), 10);
|
2021-02-25 14:40:40 +00:00
|
|
|
}
|
2020-11-17 05:15:35 +00:00
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
onChange() {
|
2021-02-25 14:40:40 +00:00
|
|
|
if (localStorage) {
|
2020-11-17 05:15:35 +00:00
|
|
|
localStorage.setItem("instance", this.selectedInstance);
|
2021-02-25 14:40:40 +00:00
|
|
|
localStorage.setItem("sponsorblock", this.sponsorBlock);
|
2021-02-25 15:18:59 +00:00
|
|
|
|
|
|
|
var sponsorSelected = [];
|
|
|
|
if (this.skipSponsor) sponsorSelected.push("sponsor");
|
|
|
|
if (this.skipIntro) sponsorSelected.push("intro");
|
|
|
|
if (this.skipOutro) sponsorSelected.push("outro");
|
|
|
|
if (this.skipInteraction) sponsorSelected.push("interaction");
|
|
|
|
if (this.skipSelfPromo) sponsorSelected.push("selfpromo");
|
2021-04-07 11:45:40 +00:00
|
|
|
if (this.skipMusicOffTopic) sponsorSelected.push("music_offtopic");
|
2021-02-25 15:18:59 +00:00
|
|
|
localStorage.setItem("selectedSkip", sponsorSelected);
|
2021-05-06 17:30:02 +00:00
|
|
|
|
|
|
|
localStorage.setItem("playerAutoPlay", this.autoPlayVideo);
|
2021-06-07 20:35:45 +00:00
|
|
|
localStorage.setItem("audioOnly", this.audioOnly);
|
2021-06-21 20:03:11 +00:00
|
|
|
localStorage.setItem("quality", this.defaultQuality);
|
2021-06-22 10:54:20 +00:00
|
|
|
localStorage.setItem("bufferGoal", this.bufferingGoal);
|
2021-02-25 14:40:40 +00:00
|
|
|
}
|
2020-11-30 06:39:40 +00:00
|
|
|
},
|
|
|
|
sslScore(url) {
|
2021-04-07 11:45:40 +00:00
|
|
|
return "https://www.ssllabs.com/ssltest/analyze.html?d=" + new URL(url).host + "&latest";
|
|
|
|
},
|
|
|
|
},
|
2020-11-17 05:15:35 +00:00
|
|
|
};
|
|
|
|
</script>
|