Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name eHázi - Vakáció emlékeztető
- // @namespace VF@eHazi
- // @description Kijelzi, hogy milyen szakaszában van a tanév
- // @include https://ehazi.hu/*
- // @exclude https://ehazi.hu/gallery/*
- // @exclude https://ehazi.hu/uploads/*
- // @version 0.0
- // @grant GM.getValue
- // @grant GM.setValue
- // ==/UserScript==
- let esemenyLista = [
- '2022-09-01',
- '2022-12-22 Téli szünet',
- '2023-01-09',
- '2023-04-06 Tavaszi szünet',
- '2023-04-12',
- '2023-06-17 Nyári szünet',
- '2023-09-01',
- ]
- GM.getValue('esemeny').then(ertek => {
- if (ertek) {
- let json = JSON.parse(ertek)
- if (json instanceof Array && json.length) {
- esemenyLista = json
- }
- }
- esemenyFelsorolas()
- })
- let menu = document.getElementById('__menu_ul')
- if (! menu) {
- return
- }
- let rovid = document.createElement('li')
- rovid.className = 'w3-opennav2 w3-left w3-dropdown-hover'
- let menuLink = document.createElement('a')
- menuLink.title = 'Tanév'
- menuLink.className = 'w3-padding-large w3-hover-white'
- rovid.appendChild(menuLink)
- let menuIkon = document.createElement('i')
- menuIkon.className = 'fa fa-calendar'
- menuLink.appendChild(menuIkon)
- let lenyilo = document.createElement('div')
- lenyilo.className = 'w3-dropdown-content w3-white w3-card-4'
- lenyilo.style.fontSize = '13px'
- lenyilo.style.zIndex = 1000
- rovid.appendChild(lenyilo)
- let listaTarto = document.createElement('div')
- lenyilo.appendChild(listaTarto)
- let sor = document.createElement('div')
- sor.title = ''
- let link = document.createElement('a')
- sor.appendChild(link)
- let hozzaadas = document.createElement('i')
- hozzaadas.title = 'Hozzáadás'
- hozzaadas.className = 'fa fa-plus fa-fw w3-text-green w3-hover-text-theme w3-large w3-right'
- hozzaadas.addEventListener('click', esemenyHozzaadas)
- link.appendChild(hozzaadas)
- let semmi = document.createElement('i')
- semmi.className = 'fa fa-fw w3-margin-right'
- link.appendChild(semmi)
- link.appendChild(document.createTextNode('Új esemény…'))
- lenyilo.appendChild(sor)
- menu.appendChild(rovid)
- function esemenyFelsorolas()
- {
- listaTarto.textContent = ''
- menuLink.title = 'Tanév'
- menuIkon.className = 'fa fa-calendar'
- let ma = new Date().toISOString().slice(0, 10)
- let jelen = esemenyLista.reduce((eredmeny, esemeny) => esemeny.slice(0, 10) <= ma ? esemeny : eredmeny, null)
- let jelenPozicio = ! jelen
- esemenyLista.forEach(esemeny => {
- let tanitas = /^\d{4}-\d{2}-\d{2}$/.test(esemeny)
- let sor = document.createElement('div')
- let link = document.createElement('a')
- sor.title = ''
- sor.appendChild(link)
- let torles = document.createElement('i')
- torles.title = 'Törlés'
- torles.className = 'fa fa-remove fa-fw w3-text-red w3-hover-text-theme w3-large w3-right'
- torles.addEventListener('click', esemenyTorles)
- link.appendChild(torles)
- let ikon = document.createElement('i')
- ikon.title = tanitas ? 'Tanulás' : 'Felejtés'
- ikon.className = `fa fa-${ tanitas ? 'graduation-cap' : 'beer' } fa-fw w3-margin-right`
- link.appendChild(ikon)
- link.appendChild(document.createTextNode(esemeny))
- if (esemeny == jelen) {
- link.appendChild(document.createElement('br'))
- let semmi = document.createElement('i')
- semmi.className = 'fa fa-fw w3-margin-right'
- link.appendChild(semmi)
- let megjegyzes = document.createElement('strong')
- megjegyzes.textContent = 'Jelenleg'
- link.appendChild(megjegyzes)
- menuLink.title = tanitas ? 'Tanulás' : 'Felejtés'
- menuIkon.className = `fa fa-${ tanitas ? 'graduation-cap' : 'beer' }`
- jelenPozicio = true
- } else if (jelenPozicio) {
- link.appendChild(document.createElement('br'))
- let semmi = document.createElement('i')
- semmi.className = 'fa fa-fw w3-margin-right'
- link.appendChild(semmi)
- let megjegyzes = document.createElement('strong')
- megjegyzes.textContent = Math.round((new Date(esemeny.slice(0, 10)).getTime() - new Date(ma).getTime()) / (24 * 60 * 60 * 1000)) + ' nap múlva'
- link.appendChild(megjegyzes)
- jelenPozicio = false
- }
- let vonal = document.createElement('hr')
- vonal.className = 'w3-clear'
- vonal.style.margin = '1px 0'
- sor.appendChild(vonal)
- listaTarto.appendChild(sor)
- })
- }
- function esemenyHozzaadas()
- {
- let adat = prompt('Esemény hozzáadás\nFormátum: éééé-hh-nn [vakáció név]')
- if (! adat) {
- return
- }
- let resz = adat.match(/^\d{4}-\d{2}-\d{2}/)
- if (! resz) {
- alert('Esemény hozzáadás hiba\nHelytelen esemény')
- return
- }
- if (isNaN(new Date(resz[0]))) {
- alert('Esemény hozzáadás hiba\nHelytelen dátum')
- return
- }
- if (esemenyLista.find(esemeny => esemeny.startsWith(resz[0]))) {
- alert('Esemény hozzáadás hiba\nMár létező dátum')
- return
- }
- esemenyLista.push(adat)
- esemenyLista.sort()
- GM.setValue('esemeny', JSON.stringify(esemenyLista))
- esemenyFelsorolas()
- }
- function esemenyTorles(esemeny)
- {
- let adat = esemeny.target.parentNode.textContent
- if (! confirm('Esemény törlés\nBiztos töröljük a „' + adat + '” eseményt?')) {
- return
- }
- esemenyLista = esemenyLista.filter(esemeny => esemeny != adat)
- GM.setValue('esemeny', JSON.stringify(esemenyLista))
- esemenyFelsorolas()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement