mirror of
https://github.com/RicterZ/nhentai.git
synced 2025-04-20 02:41:19 +02:00
Gallery title names replace '_' in the folder name with ' ' (generate_main_html()). To match against these title names when searching, we must also replace '_' with ' ' for each folder name we add to the list of titles to unhide.
178 lines
5.2 KiB
JavaScript
178 lines
5.2 KiB
JavaScript
//------------------------------------navbar script------------------------------------
|
|
var menu = document.getElementsByClassName("accordion");
|
|
for (var i = 0; i < menu.length; i++) {
|
|
menu[i].addEventListener("click", function() {
|
|
var panel = this.nextElementSibling;
|
|
if (panel.style.maxHeight) {
|
|
this.classList.toggle("active");
|
|
panel.style.maxHeight = null;
|
|
} else {
|
|
panel.style.maxHeight = panel.scrollHeight + "px";
|
|
this.classList.toggle("active");
|
|
}
|
|
});
|
|
}
|
|
var language = document.getElementById("language").children;
|
|
for (var i = 0; i < language.length; i++){
|
|
language[i].addEventListener("click", function() {
|
|
toggler = document.getElementById("language")
|
|
toggler.style.maxHeight = null;
|
|
document.getElementsByClassName("accordion")[0].classList.toggle("active");
|
|
filter_maker(this.innerText, "language");
|
|
});
|
|
}
|
|
var category = document.getElementById("category").children;
|
|
for (var i = 0; i < category.length; i++){
|
|
category[i].addEventListener("click", function() {
|
|
document.getElementById("category").style.maxHeight = null;
|
|
document.getElementsByClassName("accordion")[1].classList.toggle("active");
|
|
filter_maker(this.innerText, "category");
|
|
});
|
|
}
|
|
//-----------------------------------------------------------------------------------
|
|
//----------------------------------Tags Script--------------------------------------
|
|
tag_maker(tags);
|
|
|
|
var tag = document.getElementsByClassName("btn-2");
|
|
for (var i = 0; i < tag.length; i++){
|
|
tag[i].addEventListener("click", function() {
|
|
filter_maker(this.innerText, this.id);
|
|
});
|
|
}
|
|
|
|
var input = document.getElementById("tagfilter");
|
|
input.addEventListener("input", function() {
|
|
var tags = document.querySelectorAll(".btn-2");
|
|
if (this.value.length > 0) {
|
|
for (var i = 0; i < tags.length; i++) {
|
|
var tag = tags[i];
|
|
var nome = tag.innerText;
|
|
var exp = new RegExp(this.value, "i");;
|
|
if (exp.test(nome)) {
|
|
tag.classList.remove("hidden");
|
|
}
|
|
else {
|
|
tag.classList.add("hidden");
|
|
}
|
|
}
|
|
} else {
|
|
for (var i = 0; i < tags.length; i++) {
|
|
var tag = tags[i];
|
|
tag.classList.add('hidden');
|
|
}
|
|
}
|
|
});
|
|
input.addEventListener('keypress', function (e) {
|
|
enter_search(e, this.value);
|
|
});
|
|
//-----------------------------------------------------------------------------------
|
|
//------------------------------------Functions--------------------------------------
|
|
function enter_search(e, input){
|
|
var count = 0;
|
|
var key = e.which || e.keyCode;
|
|
if (key === 13 && input.length > 0) {
|
|
var all_tags = document.getElementById("tags").children;
|
|
for(i = 0; i < all_tags.length; i++){
|
|
if (!all_tags[i].classList.contains("hidden")){
|
|
count++;
|
|
var tag_name = all_tags[i].innerText;
|
|
var tag_id = all_tags[i].id;
|
|
if (count>1){break}
|
|
}
|
|
}
|
|
if (count == 1){
|
|
filter_maker(tag_name, tag_id);
|
|
}
|
|
}
|
|
}
|
|
function filter_maker(text, class_value){
|
|
var check = filter_checker(text);
|
|
var nav_btn = document.getElementsByClassName("nav-btn")[0];
|
|
if (nav_btn.classList.contains("hidden")){
|
|
nav_btn.classList.toggle("hidden");
|
|
}
|
|
if (check == true){
|
|
var node = document.createElement("a");
|
|
var textnode = document.createTextNode(text);
|
|
node.appendChild(textnode);
|
|
node.classList.add(class_value);
|
|
nav_btn.appendChild(node);
|
|
filter_searcher();
|
|
}
|
|
}
|
|
|
|
function filter_searcher(){
|
|
var verifier = null;
|
|
var tags_filter = [];
|
|
var doujinshi_id = [];
|
|
var filter_tag = document.getElementsByClassName("nav-btn")[0].children;
|
|
filter_tag[filter_tag.length-1].addEventListener("click", function() {
|
|
this.remove();
|
|
try{
|
|
filter_searcher();
|
|
}
|
|
catch{
|
|
var gallery = document.getElementsByClassName("gallery-favorite");
|
|
for (var i = 0; i < gallery.length; i++){
|
|
gallery[i].classList.remove("hidden");
|
|
}
|
|
}
|
|
});
|
|
for (var i=0; i < filter_tag.length; i++){
|
|
var fclass = filter_tag[i].className;
|
|
var fname = filter_tag[i].innerText.toLowerCase();
|
|
tags_filter.push([fclass, fname])
|
|
}
|
|
for (var i=0; i < data.length; i++){
|
|
for (var j=0; j < tags_filter.length; j++){
|
|
try{
|
|
if(data[i][tags_filter[j][0]].includes(tags_filter[j][1])){
|
|
verifier = true;
|
|
}
|
|
else{
|
|
verifier = false;
|
|
break
|
|
}
|
|
}
|
|
catch{
|
|
verifier = false;
|
|
break
|
|
}
|
|
}
|
|
if (verifier){doujinshi_id.push(data[i].Folder.replace("_", " "));}
|
|
}
|
|
var gallery = document.getElementsByClassName("gallery-favorite");
|
|
for (var i = 0; i < gallery.length; i++){
|
|
gtext = gallery [i].children[0].children[0].children[1].innerText;
|
|
if(doujinshi_id.includes(gtext)){
|
|
gallery[i].classList.remove("hidden");
|
|
}
|
|
else{
|
|
gallery[i].classList.add("hidden");
|
|
}
|
|
}
|
|
}
|
|
|
|
function filter_checker(text){
|
|
var filter_tags = document.getElementsByClassName("nav-btn")[0].children;
|
|
if (filter_tags == null){return true;}
|
|
for (var i=0; i < filter_tags.length; i++){
|
|
if (filter_tags[i].innerText == text){return false;}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function tag_maker(data){
|
|
for (i in data){
|
|
for (j in data[i]){
|
|
var node = document.createElement("button");
|
|
var textnode = document.createTextNode(data[i][j]);
|
|
node.appendChild(textnode);
|
|
node.classList.add("btn-2");
|
|
node.setAttribute('id', i);
|
|
node.classList.add("hidden");
|
|
document.getElementById("tags").appendChild(node);
|
|
}
|
|
}
|
|
}
|