Albirew/nyaa-pantsu
Archivé
1
0
Bifurcation 0
Ce dépôt a été archivé le 2022-05-07. Vous pouvez voir ses fichiers ou le cloner, mais pas ouvrir de ticket ou de demandes d'ajout, ni soumettre de changements.
nyaa-pantsu/public/js/main.js
kilo 5e95b57958 Make file list indent work across all browsers & some other css stuff (#1303)
* Update treeview.jet.html

* Update treeview.jet.html

* Update main.css

* Update main.css

* Update main.css

* Update main.css

* Update torrents.jet.html

* Update main.css

* Update main.css

* Update main.css

* Update search.jet.html

* Update main.css

* Update main.css

* Update main.css

* Update main.css

* Update main.css

* Update main.css

* Update tomorrow.css

* Update main.css

* Update main.css

* Update main.js

* Update main.js

* Update main.js

* Update main.css

* Update main.css

* Update main.js

* Update base.jet.html

* Update main.js
2017-08-01 00:57:31 +02:00

182 lignes
6,9 Kio
JavaScript

// @source https://github.com/NyaaPantsu/nyaa/tree/dev/public/js
// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
// Switches between themes when a new one is selected
function switchThemes() {
var themeName = document.getElementById("theme-selector").value
var head = document.getElementsByTagName("head")[0]
// Remove the theme in place, it fails if one isn't set
try {
head.removeChild(document.getElementById("theme"))
} catch (err) {}
// Don't add a node if we don't want extra styling
if (themeName === "") {
return
}
// Create the new one and put it back
var newTheme = document.createElement("link")
newTheme.setAttribute("rel", "stylesheet")
newTheme.setAttribute("href", "/css/" + themeName + ".css")
newTheme.setAttribute("id", "theme")
head.appendChild(newTheme)
}
// Used by spoiler tags
function toggleLayer(elem) {
if (elem.classList.contains("hide")) {
elem.classList.remove("hide")
} else {
elem.classList.add("hide")
}
}
function parseAllDates() {
// Date formatting
var lang = document.getElementsByTagName("html")[0].getAttribute("lang")
var ymdOpt = {
year: "numeric",
month: "short",
day: "numeric"
}
var hmOpt = {
hour: "numeric",
minute: "numeric"
}
var list = document.getElementsByClassName("date-short")
for (var i in list) {
var e = list[i]
e.title = new Date(e.innerText).toLocaleString(lang)
e.innerText = new Date(e.innerText).toLocaleString(lang, ymdOpt)
}
var list = document.getElementsByClassName("date-full")
for (var i in list) {
var e = list[i]
var dateDifference = dateDiff(new Date(e.innerText), new Date())
e.title = dateDifference.d + " days " + dateDifference.h + " hours ago"
//e.title = T.r("torrent_age", dateDifference.d, dateDifference.h)
e.innerText = new Date(e.innerText).toLocaleString(lang)
}
}
function dateDiff( str1, str2 ) {
var diff = Date.parse( str2 ) - Date.parse( str1 );
return isNaN( diff ) ? NaN : {
diff : diff,
h : Math.floor( diff / 3600000 % 24 ),
d : Math.floor( diff / 86400000 )
};
}
parseAllDates()
//called if no Commit cookie is set or if the website has a newer commit than the one in cookie
function resetCookies() {
var cookies = document.cookie.split(";")
var excludedCookies = ["mascot", "theme", "mascot_url", "lang", "csrf_token"]
//Remove all cookies but exclude those in the above array
for (var i = 0; i < cookies.length; i++) {
var cookieName = (cookies[i].split("=")[0]).trim()
//Remove spaces because some cookie names have it
if (excludedCookies.includes(cookieName)) continue
document.cookie = cookieName + "=;expires=Thu, 01 Jan 1970 00:00:00 UTC;"
}
//Set new version in cookie
var farFuture = new Date()
farFuture.setTime(farFuture.getTime() + 50 * 36000 * 15000)
document.cookie = "commit=" + commitVersion + ";expires=" + farFuture.toUTCString()
var oneHour = new Date()
oneHour.setTime(oneHour.getTime() + 1 * 3600 * 1500)
document.cookie = "newVersion=true; expires=" + oneHour.toUTCString()
}
/*Fixed-Navbar offset fix*/
if (document.getElementsByClassName("search-box")[0] !== undefined)
startupCode()
else
document.addEventListener("DOMContentLoaded", function (event) {
startupCode()
})
var UserTheme
function startupCode() {
var shiftWindow = function () {
scrollBy(0, -70)
}
if (location.hash) shiftWindow()
window.addEventListener("hashchange", shiftWindow)
if (!document.cookie.includes("commit"))
resetCookies()
else {
var startPos = document.cookie.indexOf("commit") + 7,
endPos = document.cookie.substring(startPos).indexOf(";"),
userCommitVersion = endPos == "-1" ? document.cookie.substring(startPos) : document.cookie.substring(startPos, endPos + startPos);
//Get start and end position of Commit string, need to start searching endPos from version cookie in case it's not the first cookie in the string
//If endPos is equal to -1, aka if the version cookie is at the very end of the string and doesn't have an ";", the endPos is not used
if (userCommitVersion != commitVersion)
resetCookies()
}
if (document.cookie.includes("newVersion"))
document.getElementById("commit").className = document.getElementById("commit").innerHTML != "unknown" ? "new" : "wew";
document.getElementById("dark-toggle").style.display = "inline-block";
document.getElementById("dark-toggle").addEventListener("click", toggleTheme);
var CurrentTheme = document.getElementById("theme").href;
UserTheme = [CurrentTheme.substring(CurrentTheme.indexOf("/css/") + 5, CurrentTheme.indexOf(".css")), "tomorrow"]
if(UserTheme[0] == UserTheme[1])
UserTheme[1] = "g"
}
function toggleTheme() {
var CurrentTheme = document.getElementById("theme").href
CurrentTheme = CurrentTheme.substring(CurrentTheme.indexOf("/css/") + 5, CurrentTheme.indexOf(".css"))
CurrentTheme = (CurrentTheme == UserTheme[0] ? UserTheme[1] : UserTheme[0])
document.getElementById("theme").href = "/css/" + CurrentTheme + ".css";
var farFuture = new Date()
farFuture.setTime(farFuture.getTime() + 50 * 36000 * 15000)
document.cookie = "theme=" + CurrentTheme + ";path=/;expires=" + farFuture.toUTCString()
}
function playVoice() {
var mascotAudio = document.getElementById("explosion") || document.getElementById("nyanpassu") || document.getElementById("nyanpassu2") || document.getElementById("kawaii")
if (mascotAudio !== undefined) {
mascotAudio.volume = 0.2
mascotAudio.play()
} else {
console.log("Your mascot doesn't support yet audio files!")
}
}
document.getElementsByClassName("form-input refine")[0].addEventListener("click", function (e) {
if(document.getElementsByClassName("form-input search-box")[0].value == "" || location.pathname != "/")
{
document.getElementsByClassName("box refine")[0].style.display = document.getElementsByClassName("box refine")[0].style.display == "none" ? "block" : "none"
if (document.getElementsByClassName("form-input refine-searchbox")[0].value != document.getElementsByClassName("form-input search-box")[0].value)
document.getElementsByClassName("form-input refine-searchbox")[0].value = document.getElementsByClassName("form-input search-box")[0].value
if (document.getElementsByClassName("form-input refine-category")[0].selectedIndex != document.getElementsByClassName("form-input form-category")[0].selectedIndex)
document.getElementsByClassName("form-input refine-category")[0].selectedIndex = document.getElementsByClassName("form-input form-category")[0].selectedIndex
if (document.getElementsByClassName("box refine")[0].style.display == "block")
scrollTo(0, 0)
e.preventDefault()
}
})
function humanFileSize(bytes, si) {
var k = si ? 1000 : 1024
var i = ~~(Math.log(bytes) / Math.log(k))
return i == 0 ? bytes + " B" : (bytes / Math.pow(k, i)).toFixed(1) + " " + "KMGTPEZY" [i - 1] + (si ? "" : "i") + "B"
}
// @license-end