Je fais construire une extension chrome. L'objectif est de trier tous les onglets ouverts à partir de youtube par la durée de la vidéo (de faible à élevé).
J'ai trouvé ce code à partir de ce projet GitHub, a expliqué dans ce tutoriel:
popup.js
function byAlphabeticalURLOrder(tab1, tab2) {
if (tab1.url < tab2.url) {
return -1;
} else if (tab1.url > tab2.url) {
return 1;
}
return 0;
}
chrome.tabs.query({windowId: chrome.windows.WINDOW_ID_CURRENT}, (tabs) => {
tabs.sort(byAlphabeticalURLOrder);
for (let i = 0; i < tabs.length; i++) {
chrome.tabs.move(tabs[i].id, {index: i});
}
});
Ce code fonctionne parfaitement avec tri par ordre alphabétique. Cependant, je veux l'adapter à trier par durée de la vidéo.
J'ai donc écrit ce fichier afin d'obtenir la durée de la vidéo à partir de tous les onglets ouverts, mais ne peut toujours pas se déplacer à la "tri ou de déplacer les onglets de la partie".
popup.js
chrome.tabs.query({
windowId: chrome.windows.WINDOW_ID_CURRENT
}, (tabs) => {
chrome.tabs.query({}, function (tabs) {
for (var i = 0; i < tabs.length; i++) {
chrome.tabs.executeScript(tabs[i].id, {
code: '(' + function () {
return {
seconds: document.querySelector("video").duration
};
} + ')()'
}, function (result) {
document.write(result[0].seconds + '<br>');
});
}
});
});
De sortie (Vidéo durée en secondes) - (Apparaît dans popup.html
):
1229.041
187.501
510.581
609.941
1473.821
955.481
5464.281
59.201
1787.701
1523.941