From 38419f3aa5b6e4641f5b0c7841b34cf7fdd6f792 Mon Sep 17 00:00:00 2001 From: Markus Ahlstrand Date: Fri, 24 May 2024 15:02:17 +0200 Subject: [PATCH 1/2] fix: add tests --- test/fixtures/fof.rss | 189 +++++++++++++++++++++++++++++++++++++ test/sesamy-parser.spec.ts | 29 +++++- 2 files changed, 216 insertions(+), 2 deletions(-) create mode 100644 test/fixtures/fof.rss diff --git a/test/fixtures/fof.rss b/test/fixtures/fof.rss new file mode 100644 index 0000000..fc3d2cb --- /dev/null +++ b/test/fixtures/fof.rss @@ -0,0 +1,189 @@ + + + + + 59a11925-4046-4f29-8c9f-47ee4e794b46 + Mentorn Filip Hammar + 19.0 + SEK + + + + + single + + https://assets.pod.space/system/products/images/59a/119/25-/large/FFS_omslag.webp + + + fe0f86c8-5bfd-46a6-829f-662582e131d9 + Namnen vi nämnt 2023 + 19.0 + SEK + + + + + single + + https://assets.pod.space/system/products/images/fe0/f86/c8-/large/FFS_omslag.jpg + + + b589fb6a-228b-4398-8b9b-58100a806e9f + Tomten får alltid en stor tequila + 19.0 + SEK + + + + + single + + + + 82466c22-12a3-4da7-8ab2-80e6eb812fc5 + En flaska skumpa som “peace offering” + 19.0 + SEK + + + + + single + + https://assets.pod.space/system/products/images/824/66c/22-/large/FFS_omslag.webp + + + 523a228b-7398-43d5-b527-2ac627ce73d0 + Morgan Allings ostoppbara överlevnadsinstinkt + 19.0 + SEK + + + + + single + + https://assets.pod.space/system/products/images/523/a22/8b-/large/FFS_omslag.jpg + + + b9f77f05-3ec0-4fc2-a9b1-f61e413ab7d9 + Paket med 5 avsnitt + 59.0 + SEK + + + + + single + + https://assets.pod.space/system/products/images/b9f/77f/05-/large/FFS_omslag.jpg + + no + + + https://feed.pod.space/filipandfredrik + Filip & Fredrik podcast + http://www.filipandfredrik.com/sv/ + En gång i veckan ägnar de en timme åt varandra, i ett samtal som ingen jävel får störa. Kan de inte bara få göra det? Låt dem hålla på! Det är NYTTIGT för dem. + + + + + + sv + + www.pod.space + Thu, 23 May 2024 00:00:00 +0000 + Thu, 23 May 2024 09:35:27 +0000 + Yes + Yes + filipandfredrik.com + + + + + filipandfredrik.com + clean + + + Make Sense Media + registrar@podspace.com + + episodic + + https://assets.pod.space/system/shows/images/a85/07c/c2-/large/ffpodd-itumes-iyaem2mx.jpg + Filip & Fredrik podcast + http://www.filipandfredrik.com/sv/ + + + + 728. ”När vi ägdes av Paolo Roberto” + Thu, 23 May 2024 00:00:00 +0000 + 8b40e35f92e8035aebaa7e98a02262b8 + https://pod.space/filipandfredrik/728-nar-vi-agdes-av-paolo-roberto + + + Alla vill sälja sneakers, Tage Danielsson fruktlösa och posöriga PR kamp för Korsika och ingen journalist kommer nånsin få sitt gotcha-ögonblick med Jimmie]]> + + + + 00:51:36 + false + Alla vill sälja sneakers, Tage Danielsson fruktlösa och posöriga PR kamp för Korsika och ingen journalist kommer nånsin få sitt gotcha-ögonblick me... + full + + + En flaska skumpa som "peace offering" + Thu, 28 Dec 2023 00:31:00 +0000 + 5b7e78b6a7ca2d81fc2c1c66a265e35d + https://pod.space/filipandfredrik/en-flaska-skumpa-som-peace-offering + + + Det sista avsnittet för året är här och Filip och Fredrik uppmanar alla att gå på de nyårsfester som man kanske inte är 100% inbjuden till. 

+En lyssnare undrar varför Filip ställde sig i en märklig karateställning när en hord av fotbollshuliganer närmade sig honom i Göteborg för ett antal år sen. Trodde han på riktigt att han kunde försvara sig? 

+Dessutom: Filip och Fredrik blottar en rejäl gemensam allmänbildningslucka. Vilka pros and cons finns med att skaffa hund? Varför hittar Sverige på egna smeknamn som "Roddan" och "Clintan" på internationella kändisar? 

+Fortsätt skicka era frågor till FFS@Podme.com!]]> + +
+ + 00:43:23 + false + Det sista avsnittet för året är här och Filip och Fredrik uppmanar alla att gå på de nyårsfester som man kanske inte är 100% inbjuden till. En... + full +
+ + Tomten får alltid en stor tequila + Thu, 21 Dec 2023 00:31:00 +0000 + 37b613244c6ba02e9d86b76813b3b53b + https://pod.space/filipandfredrik/tomten-far-alltid-en-stor-tequila + + + Det lackar mot jul och i veckans avsnitt tar Filip och Fredrik smått motvilligt på sig tomteluvorna och svarar på lyssnarnas julfrågor. 

+ Fredrik tipsar om en snillrik dopparedagsdrink och berättar om sin halvnya, mycket mörka jultradition. Att vara tomte innebär större press än vad många tror och Filip uppmanar därför alla tomtar att dricka sig precis hur fulla de vill innan masken åker på. 

+ Dessutom: Fredrik medger att han har Joachim Löw-tendenser. Vem i Sverige borde få en tre timmar lång SVT-dokumentär tillägnad sig i mellandagarna? Umgås Filip och Fredrik med någon som inte jobbar inom media? 

+ Fortsätt skicka in era frågor till FFS@Podme.com! ]]> + +
+ + 00:37:06 + false + Det lackar mot jul och i veckans avsnitt tar Filip och Fredrik smått motvilligt på sig tomteluvorna och svarar på lyssnarnas julfrågor. Fredri... + full +
+
+
\ No newline at end of file diff --git a/test/sesamy-parser.spec.ts b/test/sesamy-parser.spec.ts index 1cb2b0b..c1f0201 100644 --- a/test/sesamy-parser.spec.ts +++ b/test/sesamy-parser.spec.ts @@ -9,6 +9,7 @@ const fredagspodden = fs.readFileSync('./test/fixtures/fredagspodden.rss'); const spar = fs.readFileSync('./test/fixtures/spar.rss'); const acast = fs.readFileSync('./test/fixtures/acast.rss'); const kjente = fs.readFileSync('./test/fixtures/kjente.rss'); +const fof = fs.readFileSync('./test/fixtures/fof.rss'); describe('Sesamy parser service tests', () => { it('Check podspace feed', async () => { @@ -43,9 +44,33 @@ describe('Sesamy parser service tests', () => { expect(sesamyFeed.sesamy.isPrivate).toBe(false); }); + it('Check collection products from ps', async () => { + const feedJson = await parseFeedToJson(fof.toString()); + const sesamyFeed = parseFeedToSesamy(feedJson); + + expect(sesamyFeed.title).toBe('Filip & Fredrik podcast'); + + expect(sesamyFeed.products.length).toBe(6); + expect(sesamyFeed.products[5]).toEqual({ + currency: 'SEK', + description: 'Köp alla 5 avsnitt av Filip & Fredrik Svarar som släpps i December 2023', + id: 'b9f77f05-3ec0-4fc2-a9b1-f61e413ab7d9', + image: 'https://assets.pod.space/system/products/images/b9f/77f/05-/large/FFS_omslag.jpg', + packageType: 'COLLECTION', + period: undefined, + price: 59, + priceOverrides: [], + purchaseType: 'OWN', + sellingPoints: [], + time: undefined, + title: 'Paket med 5 avsnitt', + type: 'Single Purchase', + }); + }); + it('Check Kjente Proxy feed', async () => { - const sparJson = await parseFeedToJson(kjente.toString()); - const sesamyFeed = parseFeedToSesamy(sparJson); + const feedJson = await parseFeedToJson(kjente.toString()); + const sesamyFeed = parseFeedToSesamy(feedJson); expect(sesamyFeed.title).toBe('Markus Test'); expect(sesamyFeed.subtitle).toBe( From 8e964179a5088e766c590ca65681f241328ae6ff Mon Sep 17 00:00:00 2001 From: Markus Ahlstrand Date: Sun, 26 May 2024 19:38:14 +0200 Subject: [PATCH 2/2] fix: filtering --- src/sesamy-parser.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sesamy-parser.ts b/src/sesamy-parser.ts index 14d3681..8a3a61a 100644 --- a/src/sesamy-parser.ts +++ b/src/sesamy-parser.ts @@ -167,11 +167,11 @@ export function parseFeedToSesamy(feed: RssFeed) { const id = item['sesamy:id'] || item.id || ''; if (!packageType) { - const episodes = lockedRssItems.filter(lockedEpisode => { - return lockedEpisode.permissions.includes(id); + const matchingEpisodes = episodes.filter(e => { + return e.permissions.includes(id); }); - packageType = episodes.length > 1 ? 'COLLECTION' : 'SINGLE'; + packageType = matchingEpisodes.length > 1 ? 'COLLECTION' : 'SINGLE'; } // Add fallbacks. Remove once all systems are updated @@ -250,7 +250,7 @@ export function parseFeedToSesamy(feed: RssFeed) { podcastType: itunesType?.toLocaleLowerCase() === 'serial' ? 'SERIAL' : 'EPISODIC', totalSeasons, totalEpisodes: episodes.length, - episodes: episodes, + episodes, products, categories: getCategories(unparsedCategories), sesamy: {