Skip to content

Releases: redzs616/List-player-wp

1.11.0 — a csúszka megakadása, és kattintható fejezetek

Choose a tag to compare

@redzs616 redzs616 released this 27 Aug 01:58

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 :active helyett 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

Choose a tag to compare

@redzs616 redzs616 released this 27 Aug 01:12

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

Choose a tag to compare

@redzs616 redzs616 released this 11 Aug 13:37

Ú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.
  • orderbytitle (ábécé), date (legújabb elöl), tracks (legtöbb számot tartalmazó elöl). Mindegyiknek megvan a maga természetes iránya, az order csak 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

Choose a tag to compare

@redzs616 redzs616 released this 10 Aug 18:55

Ú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_post jogosultsá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

Choose a tag to compare

@redzs616 redzs616 released this 10 Aug 17:27

Ú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

Choose a tag to compare

@redzs616 redzs616 released this 10 Aug 16:57

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

Choose a tag to compare

@redzs616 redzs616 released this 10 Aug 14:52

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 AudioContext nem 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 play esemé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

Choose a tag to compare

@redzs616 redzs616 released this 10 Aug 13:22

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

Choose a tag to compare

@redzs616 redzs616 released this 10 Aug 12:49

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:30 vagy 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

Choose a tag to compare

@redzs616 redzs616 released this 10 Aug 11:33

Ú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.