web-standards-ru / new

Новый сайт «Веб-стандартов»
https://new.web-standards.ru/
39 stars 17 forks source link

Сделать раздел «Подкаст» #57

Closed pepelsbey closed 5 years ago

pepelsbey commented 5 years ago

Структура:

/podcast
    /podcast/0

На странице podcast вывести список с тизерами выпусков: заголовок, краткое описание, ссылка, на страницах podcast/0 отдельные выпуски: полное описание, простой плеер <audio src="/podcast/episodes/0.mp3">.

Все данные при сборке брать из web-standards.ru/podcast/feed, по принципу, на котором уже работает импорт календаря.

FFxSquall commented 5 years ago

Решил попробовать забрать данные с xml с помощью gatsby-source-rss-feed но он не хочет работать с этой xml. Пробовал другую xml вроде не ругался. Что там не так не могу понять, так как с Gatsby до этого не работал. Так информация для тех кто будет делать задачу.

error Plugin gatsby-source-rss-feed returned an error

  TypeError: value must be an array of bytes

  - v35.js:29 generateUUID
    [new]/[uuid]/lib/v35.js:29:38

  - create-node-id.js:16 createNodeId
    [new]/[gatsby]/dist/utils/create-node-id.js:16:10

  - api-runner-node.js:106 namespacedCreateNodeId
    [new]/[gatsby]/dist/utils/api-runner-node.js:106:42

  - gatsby-node.js:32 feed.items.forEach.item
    [new]/[gatsby-source-rss-feed]/gatsby-node.js:32:20

  - Array.forEach

  - gatsby-node.js:31 Object.exports.sourceNodes
    [new]/[gatsby-source-rss-feed]/gatsby-node.js:31:14

error Cannot read property 'filter' of undefined

  TypeError: Cannot read property 'filter' of undefined

  - api-runner-node.js:274 Promise.mapSeries.catch.then.results
    [new]/[gatsby]/dist/utils/api-runner-node.js:274:42

  - util.js:16 tryCatcher
    [new]/[bluebird]/js/release/util.js:16:23

  - promise.js:512 Promise._settlePromiseFromHandler
    [new]/[bluebird]/js/release/promise.js:512:31

  - promise.js:569 Promise._settlePromise
    [new]/[bluebird]/js/release/promise.js:569:18

  - promise.js:614 Promise._settlePromise0
    [new]/[bluebird]/js/release/promise.js:614:10

  - promise.js:694 Promise._settlePromises
    [new]/[bluebird]/js/release/promise.js:694:18

  - async.js:138 _drainQueueStep
    [new]/[bluebird]/js/release/async.js:138:12

  - async.js:131 _drainQueue
    [new]/[bluebird]/js/release/async.js:131:9

  - async.js:147 Async._drainQueues
    [new]/[bluebird]/js/release/async.js:147:5

  - async.js:17 Immediate.Async.drainQueues [as _onImmediate]
    [new]/[bluebird]/js/release/async.js:17:14

error UNHANDLED REJECTION

  TypeError: Cannot read property 'filter' of undefined

  - api-runner-node.js:274 Promise.mapSeries.catch.then.results
    [new]/[gatsby]/dist/utils/api-runner-node.js:274:42

  - util.js:16 tryCatcher
    [new]/[bluebird]/js/release/util.js:16:23

  - promise.js:512 Promise._settlePromiseFromHandler
    [new]/[bluebird]/js/release/promise.js:512:31

  - promise.js:569 Promise._settlePromise
    [new]/[bluebird]/js/release/promise.js:569:18

  - promise.js:614 Promise._settlePromise0
    [new]/[bluebird]/js/release/promise.js:614:10

  - promise.js:694 Promise._settlePromises
    [new]/[bluebird]/js/release/promise.js:694:18

  - async.js:138 _drainQueueStep
    [new]/[bluebird]/js/release/async.js:138:12

  - async.js:131 _drainQueue
    [new]/[bluebird]/js/release/async.js:131:9

  - async.js:147 Async._drainQueues
    [new]/[bluebird]/js/release/async.js:147:5

  - async.js:17 Immediate.Async.drainQueues [as _onImmediate]
    [new]/[bluebird]/js/release/async.js:17:14
FFxSquall commented 5 years ago

Судя по исходникам он в item ищет link, а в этой rss его нет. Возможно стоит просто свой плагин сделать на основе этого.

P.S. Тьфу ты, там же atom. Прошу прощения, надо просто другой плагин юзать.

pepelsbey commented 5 years ago

Там есть ещё парочка похожих, например gatsby-source-rss. Но кажется проще будет сделать свой, вроде gatsby-source-rss-podcast.

FFxSquall commented 5 years ago

gatsby-source-atom вроде завелся

LxPvlv commented 5 years ago

Сделал PR вроде работает https://github.com/web-standards-ru/new/pull/98

pepelsbey commented 5 years ago

Ура!