Skapa Cue Filer från Wiki

0
15

Ganska specifika, va? Även om vi kommer att göra exakt vad titeln säger, det här inlägget handlar mer om en lärande övning och ett exempel på att få hjälp på internet.

Min podcast-redaktör, Chris Enns, är alltid på jakt efter sätt att förbättra sitt arbete och göra podcasting bättre. Ett ganska coolt sätt att göra det är att erbjuda “kapitel” så att folk kan gå runt i en podcast på vissa punkter.

Genom TimeJump, att vi redan erbjuder det på hemsidan själv. De sker i form av hash-länkar som denna: #t=12:18. Tro det eller ej, relativa länkar som, i visa anteckningar, som faktiskt fungerar i vissa podcatchers (podcast lyssna apps).

Hoppa runt en ljud-element med TimeJump JavaScript-bibliotek.

Men med hjälp av “kapitel” är, antar jag, mer korrekt sätt att hantera detta. Med kapitel, en podcatcher kan erbjuda sina egna native-UI för visning och tillåter användaren att hoppa mellan kapitel.

Även iOS 11 är nu att stödja dem i podcast-appen:

Detta är den Podcast-app inbyggd i iOS, men alla möjliga olika podcatchers visa kapitel på sitt eget sätt.

Hur gör du för att lägga till dem till en podcast? Jag är ingen expert här, men det är en Mac-app som heter Podcast Kapitel som gör detta:

Detta är precis vad Chris Enns använder för att lägga till kapitlen, vilket leder oss till Chris’ arbetsflöde. Chris skriver visa anteckningar för podcasts, och inte som i Wiki-format. Den visar att han redigeringar för (åtminstone några av dem) efter showen anteckningar på webben och CMS som effekt att använda Wiki.

Han kommer att skapa en Wiki-listan (TimeJump kompatibel) av vad det är som händer i podcast, som denna:

* **[1:49](#t=1:49)** Leksaker från framtiden.
* **[8:40](#t=8:40)** att Tala om att luckan.

En annan pusselbit här är att Podcast Kapitel app gör sin sak genom att ge den en”.cue-filen. Cue-filer ser ut så här:

ARTIST “ShopTalk Visa”
TITELN “Episod 273”
FILEN “shoptalk-273.mp3 – ” MP3
TRACK 01 LJUD
ARTIST “”
TITELN “Leksaker från framtiden.”
INDEX 01 01:49:00
TRACK 02 LJUD
ARTIST “”
TITELN “att Tala om att luckan.”
INDEX 01 08:40:00

Det är ett mycket specifikt format. Det är hand-och skrivbara, visst, men det är i huvudsak samma uppgifter som Wiki-listan, bara i en annan form.

Det finns även en online-generator för att hjälpa till att göra dem:

Allt det jag just förklarade jag bara förstå eftersom Chris själv förklarade det. Detta är min favorit del. Han förklarade det med att fråga om hjälp via en YouTube-video som gör problemet klart som dagen.

Chris visste exakt vad han behövde för att göra detta arbetsflöde arbete, han kunde bara inte förstå en liten del av den, så han frågade.

För att vara ärlig, jag visste inte riktigt vet hur man ska lösa det heller. Men kanske, bara kanske, jag visste bara en liten bit mer, nog för att komma igång.

  1. Jag vet hur man gör ett gränssnitt, som skulle göra jobbet här: sida vid sida <textarea> – för att enkelt kopiera och klistra in.
  2. Jag vet att JavaScript kan få detta gjort, eftersom det kan ta sträng värden ur textareas och har massor av sträng behandling metoder.
  3. Jag vet att det är sannolikt att RegEx territorium.

Jag vet också att detta är programmering saker på kanten av min förmåga. Jag slår vad om att jag kunde göra det, men det skulle ta mig hela dagen och verkligen utmana mig.

Så istället har jag återigen problemet upp för någon annan att hoppa in och hjälpa till.

Jag skrev ett skript (“ett skript i manusförfattande eller teater-känsla”) för att förklara vad jag trodde behövde hända. Jag gjorde en Penna, och i JavaScript-området, skrev ut…

/*
Steg 1
Bryta wiki i första textarea i rad linjer
En slinga över varje linje

Steg 2
Extrahera värdet “1:49” från linjen

Steg 3
Konvertera värdet till “01:49:00”

Steg 4
Utdrag värde “Leksaker från framtiden.” från linjen

Steg 5
Placera dessa två värden i en mall som du kan se i den andra textarea
*/

Då James Padolsey hoppade i en hjälpte till med den slutliga lösningen:

Se Pennan PIA: att Skapa Cuefile från Wiki av James Padolsey (@padolsey) på CodePen.

Den gör precis vad alla hoppades att det skulle göra! Tack James!

Det gör i stort sett vad jag lagt ut på min lilla skript.

Delar på nya linjer och loopar över array:

wiki.split(‘n’).karta((linje, i) => {

Utdrag delar av den sträng som är bäst att arbeta med:

const title = linje.split(‘** ‘)[1];
const tid = linje.match(/d+:d+/)[0];

Sedan manipulerar dessa bitar i form och i slutändan använder mallen strängar för att skapa en ny sträng till plopp tillbaka till textarea.

Jag är säker på att detta är inte det enda sättet, och du kan försummar bräcklighet och kanske obekväma karaktären av denna typ av tolkning. Men det löser också en mycket verklig och omedelbar arbetsflöde fråga.