convert est déprécié au profit de magick convert

This commit is contained in:
Breizh 2024-06-09 04:48:36 +02:00
parent 50e6e46787
commit dcdf62e7b0
2 changed files with 75 additions and 28 deletions

View file

@ -1,18 +1,26 @@
// ==UserScript== // ==UserScript==
// @name Breizh autoplay // @name Breizh autoplay
// @version 1 // @namespace http://tampermonkey.net/
// @grant none // @version 2024-04-10
// @include https://fichiers.breizh.pm/* // @description Add an audio player for audio files on fichiers.breizh.pm
// @author Eldeberen
// @match https://fichiers.breizh.pm/*
// @grant none
// ==/UserScript== // ==/UserScript==
// Add current song to history
function ap_add2history(event) {
ap_history.push(event.target);
}
// Play the next track
function ap_next(event) { function ap_next(event) {
let item = event.target; let item = ap_history.at(-1);
let autoplay = document.getElementById("ap-autoplay").checked; let autoplay = document.getElementById("ap-player").open;
let random = document.getElementById("ap-random").checked; let random = document.getElementById("ap-random").checked;
let loop = document.getElementById("ap-loop").checked; let loop = document.getElementById("ap-loop").checked;
let currentId = medias.indexOf(item); let currentId = ap_medias.indexOf(item);
let nextId = -1; let nextId = -1;
// If no autoplay, exit // If no autoplay, exit
@ -22,43 +30,82 @@ function ap_next(event) {
// Note that this should not happen in a regular use // Note that this should not happen in a regular use
if(currentId == -1) return; if(currentId == -1) return;
// Make sure to pause the current track
item.pause();
// If random, pick a random song in the list // If random, pick a random song in the list
// Else pick the next one // Else pick the next one
if(random) { if(random) {
nextId = Math.floor(Math.random() * medias.length); nextId = Math.floor(Math.random() * ap_medias.length);
} else { } else {
nextId = currentId + 1; nextId = currentId + 1;
} }
// If looping, stay in the range // If looping, stay in the range
if(loop) { if(loop) {
nextId %= medias.length; nextId %= ap_medias.length;
} }
// If the next song is out, exit // If the next song is out, exit
if(nextId == medias.length) return; if(nextId == ap_medias.length) return;
// Finally, set the volume back and jump to the selected song // Finally, set the volume back and jump to the selected song
medias[nextId].volume = item.volume; ap_medias[nextId].volume = item.volume;
medias[nextId].play(); ap_medias[nextId].play();
} }
// Play/pause current
function ap_playpause() {
if(ap_paused == null) {
ap_paused = ap_history.pop();
ap_paused.pause();
} else {
ap_paused.play();
ap_paused = null;
}
}
// Play previous song
function ap_prev() {
let current = ap_history.pop();
let prev = ap_history.pop();
current.pause();
prev.currentTime = 0;
prev.play();
}
// Get all audio medias on the page // Get all audio medias on the page
let medias = Array.from(document.querySelectorAll("audio")); let ap_medias = Array.from(document.querySelectorAll("audio"));
// Define a playing history
let ap_history = [];
let ap_paused = null;
// If there is at least one media // If there is at least one media
if(medias.length > 0) { if(ap_medias.length > 0) {
// Create the menu // Create the menu
var ap_menu = document.createElement("div"); var ap_menu = document.createElement("div");
ap_menu.id = "ap-menu"; ap_menu.id = "ap-manu";
ap_menu.innerHTML = `<label for="ap-autoplay">Autoplay</label><input type="checkbox" id="ap-autoplay" /> ap_menu.innerHTML = `<details id="ap-player">
<label for="ap-random">Aléatoire</label><input type="checkbox" id="ap-random" /> <summary>Player</summary>
<label for="ap-loop">Boucle</label><input type="checkbox" id="ap-loop" />`; <button id="ap-prev"></button>
<button id="ap-playpause"></button>
<button id="ap-next"></button>
<label for="ap-random">Aléatoire</label><input type="checkbox" id="ap-random" />
<label for="ap-loop">Boucle</label><input type="checkbox" id="ap-loop" />
</details>`;
document.querySelector("body").insertBefore(ap_menu, document.getElementById("maintable")); document.querySelector("body").insertBefore(ap_menu, document.getElementById("maintable"));
// Add event listeners
[["ap-prev", ap_prev],
["ap-playpause", ap_playpause],
["ap-next", ap_next]].map((e) => {
document.getElementById(e[0]).addEventListener("click", e[1]);
});
// Apply the event listener to all medias // Apply the event listener to all medias
medias.map(function(e) { ap_medias.map(function(e) {
e.addEventListener("ended", ap_next); e.addEventListener("ended", ap_next);
e.addEventListener("play", ap_add2history);
}); });
} }

View file

@ -184,7 +184,7 @@ do
if [[ ! -f "${cache}/${thumbname}" ]] && [[ ${kbytes} -le 20480 ]] && [[ ! ${i} =~ \.v2m$ ]] if [[ ! -f "${cache}/${thumbname}" ]] && [[ ${kbytes} -le 20480 ]] && [[ ! ${i} =~ \.v2m$ ]]
then then
# Création de la miniature # Création de la miniature
convert "${i}" -strip -thumbnail 'x60>' "${cache}/${thumbname}" magick convert "${i}" -strip -thumbnail 'x60>' "${cache}/${thumbname}"
fi fi
# Si une miniature est présente, on l'affiche # Si une miniature est présente, on l'affiche