Better-Devinci

A better leonard-de-vinci portal

当前为 2023-07-05 提交的版本,查看 最新版本

// ==UserScript==
// @name        Better-Devinci
// @namespace   Violentmonkey Scripts
// @match       https://www.leonard-de-vinci.net/*
// @license     GNU GPLv3
// @version     1.0.2
// @author      loliprane
// @description A better leonard-de-vinci portal
// ==/UserScript==


//localstorage setup
var CheckLocalStorage= function(Item,Base_value){
  if(localStorage.getItem(Item)==null){
    localStorage.setItem(Item,Base_value)
  }
}

CheckLocalStorage("Hide_Slider","False")
CheckLocalStorage("Number_Message_read",0)
//end of localstorage setup

//every page setup
var StudentLanguageFR = document.querySelector('img[src*="/images/flags/"]').currentSrc.includes("fr.png")
document.querySelector('html').style.height="0px" //remove the scrollbar when not necessary
document.querySelector('#footer').remove() // remove the unecessary footer

if(document.querySelector('.UD_messages_new'+'.badge').innerText==localStorage.getItem("Number_Message_read")){
  document.querySelector('.UD_messages_new'+'.badge').remove()
  document.querySelector(".UD_messages_new"+".strong").innerText=0
}
else{
  var MessageRead_Button = document.createElement("button");
  MessageRead_Button.id = "Message_Read_Button";
  MessageRead_Button.textContent = "Show Messages as read";
  MessageRead_Button.style.color= 'red'
  document.querySelector(".nav-messages-header").append(MessageRead_Button)
  document.querySelector('.UD_messages_new'+'.badge').innerText-=localStorage.getItem("Number_Message_read")


  MessageRead_Button.addEventListener("click", function() {
    localStorage.setItem("Number_Message_read",parseInt(localStorage.getItem("Number_Message_read"))+parseInt(document.querySelector('.UD_messages_new').innerText))
    document.querySelector('.UD_messages_new').remove()
    document.querySelector(".UD_messages_new"+".strong").innerText=0
    MessageRead_Button.remove()
  })
}

const BetterDevinci_link = document.createElement("a");
BetterDevinci_link.id = "BetterDevinci_link"
BetterDevinci_link.setAttribute("href", "/?Better-Devinci");
BetterDevinci_link.textContent = "+";
BetterDevinci_link.style.color = 'red'
BetterDevinci_link.style.fontWeight='bold'
BetterDevinci_link.style.fontSize='20px'
document.querySelector(".navbar-inner-title").append(BetterDevinci_link)

if(document.querySelector(".social-sidebar"+".sidebar-full")!=null){
  document.querySelector(".switch-sidebar-icon"+".icon-align-justify").click()
}

//end of every page setup


var BetterDevinci_Page = function(){
  //document.querySelectorAll(".row-fluid")[1].remove()
  //document.querySelector(".lv_slider").remove()
  document.querySelector("#main").querySelectorAll(".container-fluid")[1].remove()
  var test = document.createElement("div");
  test.id = "OwO";
  test.textContent = "This page is still in beta but it will soon list all of the things Better Devinci can do and you will be able to selects which one you want or not";
  test.style.color= 'red'
  test.style.margin='10px'
  test.style.paddingLeft='10px'
  document.querySelector("#main").append(test)
}

var Marks= function() {
  const Semestre = document.querySelectorAll(".dd-item");

  const SemestreFiltered = Array.from(Semestre).filter(element => {
    return element.classList.contains("dd-item") && element.classList.length === 1;
  });
  SemestreFiltered.forEach((Parent) =>{
    var Pullright_class=Parent.children[0].children[0]
    Pullright_class.style.fontSize='20px'
    Pullright_class.style.color='red'
    Pullright_class.innerText= "-"
    Pullright_class.style.fontWeight='bold'
    Pullright_class.style.marginRight='3px'
    Parent.children[0].addEventListener("click", function() {
      if(Pullright_class.innerText== "-"){
        Pullright_class.innerText= "+"
        Pullright_class.style.marginRight='0px'

      }
      else{
        Pullright_class.innerText= "-"
        Pullright_class.style.marginRight='3px'
      }

      Array.from(Parent.children).forEach((Child) => {
        if(Child.classList.value.includes('dd-list hide')){
          Child.classList.value = 'dd-list'
        }
        else if (Child.classList.value=='dd-list'){
          Child.classList.value = 'dd-list hide'
        }
      })
    })
  })

  const Module = document.querySelectorAll(".dd-unite-student");

  Module.forEach((Parent) =>{
    var span = document.createElement("span");
    span.className = "UwU";
    span.textContent = "ㅤㅤㅤㅤ-";
    span.style.fontSize='20px'
    span.style.color='purple'
    span.style.fontWeight='bold'
    span.style.paddingRight='3px'
    Parent.children[0].querySelector(".pull-right").appendChild(span)

    Parent.children[0].addEventListener("click", function() {
      var Span_Selector=Parent.children[0].querySelector(".UwU")
      if(Span_Selector.innerText== "ㅤㅤㅤㅤ-"){
        Span_Selector.innerText= "ㅤㅤㅤㅤ+"
        Span_Selector.style.paddingRight='0px'
      }
      else{
        Span_Selector.innerText= "ㅤㅤㅤㅤ-"
        Span_Selector.style.paddingRight='3px'
      }

      Array.from(Parent.children).forEach((Child) => {
        if(Child.classList.value.includes('dd-list hide')){
          Child.classList.value = 'dd-list'
        }
        else if (Child.classList.value=='dd-list'){
          Child.classList.value = 'dd-list hide'
        }
      })
    })
  })
}

var Message= function(){
  const MessageContainer = document.querySelector("#main").children[2]
  if(MessageContainer.children.length==0){
    if(StudentLanguageFR){
      MessageContainer.innerHTML += "<div>Toujours pas réparé... (Regardez vos mail pour les infos ici)</div>"
    }
    else{
      MessageContainer.innerHTML += "<div>They still didn't fix this... (Check your mail for info here)</div>"
    }
  }
}


var MainPage= function(){
  const Body = document.querySelector(".body")

  var SliderButton = document.createElement("button");
  SliderButton.id = "Slider_Button";
  SliderButton.textContent = "Hide";
  Body.parentElement.parentElement.prepend(SliderButton);

  var SliderContainer=Body.parentElement

  if(localStorage.getItem("Hide_Slider")=="True"){
    SliderButton.innerHTML="Show"
    SliderContainer.className+=' hide'
  }

  SliderButton.addEventListener("click", function() {
    if(localStorage.getItem("Hide_Slider")=="False"){
      SliderButton.innerHTML="Show"
      SliderContainer.className+=' hide'
      localStorage.setItem("Hide_Slider","True")
    }
      else{
      SliderButton.innerHTML="Hide"
      SliderContainer.className=SliderContainer.className.replace(" hide","")
      localStorage.setItem("Hide_Slider","False")
    }
  })
}

var CheckPage= function(){
  if(location.href == "https://www.leonard-de-vinci.net/"){
    MainPage()
  }
  else if(location.href == "https://www.leonard-de-vinci.net/?Better-Devinci"){
    BetterDevinci_Page()
  }
  else if(location.href == "https://www.leonard-de-vinci.net/?my=marks"){
    Marks()
  }
  else if(location.href.includes("https://www.leonard-de-vinci.net/?my=msg")){
    Message()
  }
}


window.addEventListener('load', function() {
  CheckPage()
});