Releases: redzs616/List-player-wp
Release list
1.11.0 — a csúszka megakadása, és kattintható fejezetek
Javítva: a csúszka húzás közben visszaugrott
Elkezdted húzni, és nem futott veled — megállt egy ponton, jobbra és balra egyaránt.
Az ok: a csúszkát a :active CSS állapot védte attól, hogy a lejátszás visszaírja rá a saját pozícióját. Csakhogy az :active elveszik, amint a mutató húzás közben kicsúszik a csúszka dobozából. Onnantól a másodpercenkénti timeupdate visszaírta a tényleges lejátszási pozíciót, és a gomb elszakadt az ujjadtól.
Amit tettem:
- A
:activehelyett explicit húzás-jelző, mutató-eseményekkel vezérelve. Ez nem tud elveszni a húzás közepén. - A tényleges tekerés felengedéskor történik, egyszer. Eddig minden elmozdulásra újratekert — hálózatról érkező fájlnál ez akadozást okoz, tehát a húzás emiatt is küzdött ellened. Húzás közben az időkijelző követ, így látod, hová tartasz.
- A kiemelt panel és az alsó sáv csúszkája húzás közben együtt mozog, így felengedéskor egyik sem ugrik.
- Ha a mutatót a csúszkán kívül engeded fel, a húzás akkor is rendesen lezárul.
- Billentyűzettel (nyilakkal) ugyanúgy működik.
Mérve: a régi védelemmel 6 húzási lépésből 6 ugrott vissza a lejátszási pozícióra. Az újjal 0.
Új: kattintható fejezetek a csúszka alatt
A csúszkán lévő vonalkák megmutatják, hol vannak a jelölők — de nem lehet rájuk kattintani, 2 képpont szélesek. Most alattuk megjelenik egy csík, ami megmondja, mik, és rájuk lehet kattintani.
Vízszintesen, sorba tördelve — mert közvetlenül fölöttük a csúszkán is vízszintesen fut az idő, és egy függőleges lista megtörné ezt a megfelelést, ráadásul egy hosszú tracklistával letolná a lejátszót a képernyőről. Sok jelölőnél a csík görgethető.
A vonalkák maradnak: azok a tájékozódás, a csík a navigáció.
Frissítés
Bővítmények → Lejátszási Lista Player → Frissítés, majd Ctrl+F5.
1.10.1 — a csúszkák megfoghatósága
Mi volt a baj
Mindhárom csúszkánál maga a vékony vonal volt a fogható terület: a kiemelt panelé 5 képpont, az alsó sávé és a hangerőé 4 képpont magas. Ujjal ezt eltalálni gyakorlatilag lehetetlen volt.
Ez elnézés volt, nem szándék: hiányzott a ::-webkit-slider-runnable-track szabály, ezért a látható vonal maga az input doboza volt — és a doboz a hit-terület.
Mi változott
A vékony vonal átkerült a track pszeudo-elemre, tehát a látvány pontosan ugyanaz, de a fogható sáv magas lett:
| Eddig | Egérrel | Érintéssel | |
|---|---|---|---|
| Kiemelt panel csúszkája | 5 px | 28 px | 44 px |
| Alsó sáv csúszkája | 4 px | 26 px | 40 px |
| Hangerő | 4 px | 26 px | 40 px |
A 44 képpont az ajánlott minimum érintőcélpont. Ez nem képernyőméret szerint dől el, hanem beviteli mód szerint (pointer: coarse) — egy fekvő tablet is megkapja, pedig széles.
Ezen kívül:
- A csúszka húzása többé nem görgeti az oldalt telefonon (
touch-action). Eddig egy vízszintes húzás könnyen függőleges görgetésbe csúszott át. - A hangerő 80 → 110 képpont széles, tehát egy adott szint beállítása kevesebb pontosságot kíván.
- A csúszkagomb 15 → 16 képpont, érintésnél 20.
- A fejezetjelölők pontosan a vonal közepére kerültek — a csúszka sorbeli elhelyezése miatt volt egy pár képpontos elcsúszás.
- Billentyűzettel fókuszálva mostantól látszik a fókuszkeret.
Ellenőrizve
Böngészőben megmérve: 28 / 26 / 26 képpont egérrel, 44 / 40 érintésre, és a jelölők középvonala képpontra egyezik a csúszkáéval.
Frissítés
Bővítmények → Lejátszási Lista Player → Frissítés, majd Ctrl+F5.
1.10.0 — válogatott listák egy oldalon, és a hozzáadás panel bezárása
Új: kiválaszthatod, mely listák jelenjenek meg
A [playlist_index] eddig mindet kitette, és nem volt mód válogatni. Most van:
[playlist_index lists="nyari-mix,retro-szett,chill"]
lists— csak ezek a listák, slug vagy ID alapján, vesszővel. A megadott sorrend érvényesül, nem az ábécé — aki beírta a neveket, a sorrendet is megválasztotta.exclude— mindet kiteszi, kivéve a felsoroltakat.orderby—title(ábécé),date(legújabb elöl),tracks(legtöbb számot tartalmazó elöl). Mindegyiknek megvan a maga természetes iránya, azordercsak akkor kell, ha szembe akarsz menni vele.
Üresen hagyva minden változatlan: mindet kiteszi ábécé sorrendben.
Ha egy megnevezett lista nem található (elírás, vagy nincs közzétéve), a blokk ezt írja ki — nem azt, hogy „még nincs lejátszási lista". Az előbbi üzenet a Beállítások felé küldött volna, holott a shortcode-ban van a hiba.
Javítva: a hozzáadás panel nyitva maradt
A „hozzáadás lejátszási listához" panel mentés után nyitva maradt, és az előző számhoz kötve. Ha közben másik zenére léptél, a következő kattintás az előzőt tette egy újabb listába.
Mostantól:
- mentés után a panel becsukódik, és a lista alatti állapotsorban megjelenik, melyik szám melyik listába került — a visszajelzés megvan, csak nem egy útban lévő panelen
- ugyanez új lista létrehozásánál is
- ha másik számra váltasz, a panel akkor is becsukódik, bármitől is nyílt ki
Frissítés
Bővítmények → Lejátszási Lista Player → Frissítés, majd Ctrl+F5.
1.9.0 — duplikátumok tömeges lomtárazása
Új
Jelölőnégyzetek a duplikátum jelentésben, és egy „Kijelöltek lomtárba" gomb a táblázatok fölött és alatt is — hosszú listánál ne kelljen visszagörgetni.
„Csak a biztos egyezések kijelölése" egy kattintással: ez kizárólag az Ugyanaz a hangfájl csoportokat jelöli ki. A másik két szint találgatás, azokat egy gombnyomás szándékosan nem nyúlja meg.
Csoportonként a fejlécben is van egy kijelölő négyzet, ami követi a saját sorait — részleges kijelölésnél félig behúzott állapotban.
A művelet után kiírja, hány bejegyzés került lomtárba, és hányat hagyott ki.
Miért biztonságos
- A megtartásra javasolt példány nem is kap jelölőnégyzetet. Így egy csoportot elvileg sem lehet teljesen kiürteni — ez többet ér, mint egy hibaüzenet.
- Lomtár, nem törlés. A WordPress saját lomtárába kerül, tehát egy kattintással visszaállítható, amíg nem ürítesz lomtárat.
- A szerver a beküldött azonosítókat kérésnek tekinti, nem utasításnak. Újra felépíti a jelentést, és csak azt teszi lomtárba, amit az abban a pillanatban is fölös példányként jelöl, és amire van
delete_postjogosultságod. Egy régóta nyitva hagyott fül vagy egy kézzel átírt kérés így nem ér el tetszőleges bejegyzést. - A megerősítő kérdés megmondja a darabszámot, és külön kiemeli, ha nem a bővítmény saját zeneszáma van közte — egy podcast epizódnak saját linkje és RSS bejegyzése van, amit a hallgatók már megkaphattak.
Törlés nélkül is megoldható
A jelentés most magától figyelmeztet, ha a törölhető példányok között meglévő tartalom is van, és ott ajánlja a kockázatmentes utat: a Beállításokban vedd ki a pipát az egyik tartalomtípusnál. A lejátszó onnantól csak az egyiket listázza, mindkét bejegyzés megmarad, a podcast RSS és a meglévő linkek sértetlenek — és a lejátszásszám sem veszik el.
Frissítés
Bővítmények → Lejátszási Lista Player → Frissítés.
1.8.0 — jelölők hallgatás közben, a lejátszóból
Új
„Jelölő ide" gomb a kiemelt panelen. Hallgatás közben oda teszed a jelölőt, ahol épp jár a zene — nem kell az admin felületre menni, és nincs külön mentés gomb.
Alatta a jelölők listája:
- az időre kattintva odaugrik a lejátszás
- a névbe írhatsz; a mezőből kilépve vagy Enterre mentődik, nem betűnként
- az X törli
A csúszka jelölővonalkái és a szám alatti fejezetlista rögtön követi a változást, újratöltés nélkül.
Ki látja
Csak aki szerkesztheti azt a felvételt. Látogató nem látja, és nem is tud írni: az új POST /tracks/{id}/markers végpont nonce-ot és poszt szintű edit_post jogosultságot kér — nem csak azt, hogy valaki be van-e jelentkezve.
A gomb megjelenéséről nem a PHP dönt, hanem egy új GET /me végpont a betöltés után. Page cache mellett a szerveroldali eldöntés az egyik látogató válaszát égetné bele a következő oldalába — vagy megmutatná a gombot annak, akinek nem jár, vagy elrejtené attól, akinek jár.
Ismert korlát: ha a gyorsítótár egy bejelentkezett szerkesztőnek is vendég oldalt szolgál ki, a gomb nem jelenik meg. A WordPress REST cookie-alapú azonosításához nonce kell, az pedig nem lehet gyorsítótárazott HTML-ben. A LiteSpeed Cache alapból nem gyorsítótáraz bejelentkezett felhasználónak, tehát a gyakorlatban ez nem szokott előfordulni.
Javítva közben
A for_display mostantól a nyers nevet is visszaadja a megjelenítendő mellett. Nélküle a névtelen jelölőkre generált „3. rész" felirat valódi névként mentődött volna vissza, és beégett volna a számozás — új jelölő beszúrása után hibás nevek maradtak volna.
Frissítés
Bővítmények → Lejátszási Lista Player → Frissítés, majd Ctrl+F5.
1.7.2 — kirakott lejátszási listák javítása
Javítva
A lista neve látszik ott, ahol eddig a kategóriák. Ha egy oldalra [playlist_player playlist="..."]-t teszel, felül eddig a teljes kategória-navigáció jelent meg „Összes" gombbal. Egy lista nem szűrő, tehát most a lista neve és a számok darabszáma áll ott. Az nav="no" továbbra is eltünteti ezt a sort is.
A lista eddig szétesett az első lekérés után. Ez a súlyosabb: a lista azonosítója nem utazott a REST kérésekkel, így egy keresés, egy kategóriakattintás vagy a „Továbbiak" gomb csendben az egész zenetárra váltott. Innentől minden lekérés a listán belül marad.
Ezen kívül:
- A rendezés választó listamódban eltűnik. A lista saját sorrendje felülírja a rendezést, tehát egy olyan legördülő volt kitéve, ami semmit nem tett.
- Ha a megnevezett lista nem létezik (elírás, vázlat, kukázott), a lejátszó üres marad. Eddig ilyenkor az egész zenetárat kilistázta.
- Vázlat állapotú lista tartalmát kívülről nem lehet kiolvasni. A lista azonosítója most nyilvános REST paraméter is, ezért a feloldás jogosultságot ellenőriz.
Frissítés
Bővítmények → Lejátszási Lista Player → Frissítés, majd Ctrl+F5.
1.7.1 — a kiemelt panel play gombjának javítása
Javítva
A kiemelt panel nagy play gombja nem indította el a zenét. A fejezetek lenyitásához felvett toggle nevű változó a JavaScript változó-felhúzása (hoisting) miatt elárnyékolta az ugyanígy hívott toggle() függvényt a teljes kattintáskezelőben, így a gomb TypeError: toggle is not a function hibával elhalt, még mielőtt bármi történt volna. A változó új nevet kapott, és a fájl minden más ilyen névütközését is átvizsgáltuk.
Ezen kívül:
- Az ekvalizér többé nem tudja elvenni a hangot. A hangelemző eddig akkor is bekötötte magát, ha az
AudioContextnem futott — ilyenkor a hang egy halott gráfba folyt, és nem volt visszaút, mert a bekötés visszafordíthatatlan. Innentől csak futó hangkörnyezetben történik meg; egyébként az ekvalizér kimarad, a zene pedig szól. - A hangelemző gráf kizárólag a lejátszás előtt épül fel. Eddig a
playeseményből is megkísérelte, egy már szóló elemre kapcsolódva — a Chrome ilyenkor csendet ad vissza. - A rejtett lejátszási hibák láthatóvá váltak. Eddig a
play()hibáját csendben elnyeltük, ezért látszott úgy, hogy a kattintásra egyszerűen nem történik semmi. - A kiemelt panel által előre kiválasztott szám indításakor megjelenik az alsó ragadós sáv is. Eddig ez az egy útvonal kihagyta.
- A számok sora tördelhető lett, így a fejezetlista a sor alá kerül, nem szorul be a cím és a gombok közé.
Frissítés
Bővítmények → Lejátszási Lista Player → Frissítés. Frissítés után a böngészőben egy erős újratöltés (Ctrl+F5) javasolt, hogy a régi JavaScript ne maradjon a gyorsítótárban.
1.7.0 — lista készítése hallgatás közben, és a listák oldala
Lista készítése menet közben
Minden soron megjelenik egy + gomb. Rákattintva egy panel nyílik, ahol a számot beteheted egy meglévő listába, vagy helyben létrehozhatsz újat — csak írd be a nevét. Ami már benne van egy listában, az kiszürkül, tehát nem tudod kétszer betenni.
Így menet közben, hallgatás közben állíthatod össze a listákat: ami tetszik vagy hasonló, azt egy kattintással beteszed.
Csak bejelentkezett szerkesztőnek. A gomb és a panel markupja nem is generálódik le kijelentkezett látogatónál. Egy nyilvános felület, ami bárkinek engedi bejegyzést létrehozni az oldalon, nyitott kapu lenne — ezért nem beállítás kérdése.
Ezek a REST hívások küldenek nonce-ot, ellentétben a lejátszás- és kedvelés-utakkal: bejegyzés írása privilegizált művelet, és ezek az oldalak sosem cache-eltek.
A listák oldala
Új shortcode egy önálló oldalhoz:
[playlist_index columns="3" layout="hero"]
Felsorolja a lejátszási listákat borítóval, a számok darabszámával és a teljes hosszal. Egy listára kattintva ugyanaz az oldal megnyitja azt a listát a lejátszóban, fölötte egy „← Vissza a listákhoz" linkkel.
| Paraméter | Alapérték | Leírás |
|---|---|---|
columns |
3 |
Oszlopszám a rácsban, 1–6 |
layout |
hero |
Milyen elrendezésben nyíljon meg a választott lista |
accent |
— | Kiemelő szín |
limit |
100 |
Legfeljebb ennyi lista |
A választott lista valódi URL-t kap (?plp_list=slug), nem helyben cserélődik. Így működik a vissza gomb, egy lista linkje megosztható, és minden állapot külön gyorsítótárazódik ahelyett, hogy minden látogató újra lekérné ugyanazt.
1.6.0 — időbélyeg-jelölők, és két javítás
Időbélyeg-jelölők
Egy másfél órás mixnél ez lényegében a tracklista, kézzel — vagyis ingyen az, amiért egyébként fizetős hangfelismerőt kellene venni. Aki a szettet összeállította, pár perc alatt megjelöli, és nem téved.
A szerkesztő minden lejátszható bejegyzésnél megjelenik (zeneszám és podcast epizód is), Időbélyegek a felvételen néven:
- A sávra kattintva új jelölő kerül oda
- A meglévőket megfoghatod és elhúzhatod
- Mellettük szerkeszthető idő és megnevezés. Az időt
1:23:45,12:30vagy puszta másodperc formában is beírhatod. - „Jelölő a mostani pozíciónál" gomb, miközben hallgatod
- Beépített lejátszó, hogy ne kelljen máshol keresgélni
A látogatónál a szám neve gombbá válik, ha van jelölő: rákattintva lenyílik a fejezetlista, és bármelyikre kattintva odaugrik. A kiemelt panel csúszkáján apró vonalak jelzik a helyüket.
Két javítás a képernyőképed alapján
A leírás nyers [audio mp3="..."] shortcode-ot írt ki a panelbe. A podcast epizódok tartalma gyakran csak ennyi, én pedig csak a HTML tageket szedtem ki belőle, a shortcode-okat nem. Most strip_shortcodes fut elsőként, a maradék szögletes zárójeles részek is kikerülnek, és ha van explicit kivonat, az kap elsőbbséget.
Az ekvalizér zöldje élénkebb (#1fe06b). A canvas átlátszóságán és sötét panelen keresztül a tompa zöld szürkének látszott. A sárga és a piros is kapott egy kicsit.
A fejlécben látszó „502 Bad Gateway" nem ebből a bővítményből jön — az a régi fejléc-lejátszó vagy a rádió stream hibája.
1.5.0 — duplikátum-jelentés
Új képernyő: Lejátszó → Duplikátumok
Két párhuzamos rendszer esetén — a bulk importtal készült Zeneszámok és a régi Podcast epizódok — ugyanaz az MP3 két bejegyzésben is szerepelhet, és a lejátszó kétszer listázza.
A jelentés három bizonyossági szinten csoportosít:
| Szint | Mit jelent |
|---|---|
| Ugyanaz a hangfájl | Biztos duplikátum: két bejegyzés ugyanarra a felvételre mutat |
| Ugyanaz a cím, más fájl | Nagyon valószínű: ugyanaz a felvétel kétszer feltöltve |
| Azonos hossz, más cím és fájl | Csak jelzés, 5 percnél hosszabb felvételeken. Itt a legnagyobb a téves találat esélye. |
Nem töröl semmit
Minden csoportban javasol egy megtartandó példányt — a legtöbb lejátszással, döntetlennél a régebbi, mert ott van az összegyűlt előzmény. A többihez a WordPress saját lomtár-linkjét adja, tehát a törlés visszavonható.
Melyik példány maradjon, az tartalmi döntés — melyik cím jobb, hol vannak a kategóriák, hol gyűlt a lejátszásszám. Ezt nem hozza meg helyetted a kód.
CSV export is van, ha táblázatban akarod átnézni.
A törlés nem az egyetlen út
A képernyő erre külön felhívja a figyelmet: ha a duplikátumok nagy része abból fakad, hogy ugyanaz a felvétel egyszer podcast epizódként, egyszer zeneszámként létezik, akkor a legkisebb kockázatú megoldás nem a törlés — a Beállításokban vedd ki a pipát az egyik tartalomtípusnál.
A lejátszó onnantól csak az egyiket listázza, viszont mindkét bejegyzés megmarad: a podcast RSS-ed és a meglévő linkek sértetlenek, és a lejátszásszám sem veszik el.