NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name huggingface sorting by date
// @namespace http://tampermonkey.net/
// @version 0.2
// @description abomination for personal usage
// @author Kuroi_Mato_O
// @match https://huggingface.co/KuroiMatoO/loras/tree/main
// @license MIT
// @icon https://www.google.com/s2/favicons?sz=64&domain=huggingface.co
// @grant none
// ==/UserScript==
(function() {
'use strict';
(new MutationObserver(check)).observe(document, {childList: true, subtree: true});
function check(changes, observer) {
if(document.querySelector('.mb-8')) {
observer.disconnect();
//ThE sLeEp FeAtuRe YeAhHh
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function wait() {
await sleep(2000);
//create array for date and time
function sort(){
let time = document.querySelectorAll('.text-gray-400 time');
const timeArr = [];
for (let i = 0, element; (element = time[i]); i++) {
timeArr.push(element.dateTime);
}
//reverse array
let sortedArr = timeArr.sort();
let reversedArr = sortedArr.reverse();
//not gonna work without a grid
let li = document.querySelectorAll('.mb-8 li');
let container = document.querySelector('.mb-8');
container.style = 'display: grid;';
//pick a date-time from time array then find same date-time in reversed array and get its index
//this index is a new position of li element
for (let i = 0; i < reversedArr.length; i++){
li[i].style.order = reversedArr.indexOf(time[i].dateTime)
}
}
sort();
let loadButton = document.querySelectorAll('.flex-grow.items-center')[1];
loadButton.onclick = wait();
sort();
}
wait();
}}
})();