هذه الوحدة مخصصة لتنزيل كل ملف mp3 من خلاصة patreon rss.
إنه حاليًا في حالة ألفا ويعمل بشكل جيد للغاية بالنسبة لحالة الاستخدام المحددة الخاصة بي، وحالات الاستخدام الأخرى مع قليل من القوة. سيقدم التحديث التالي كائن خيارات أفضل للتحكم في الجوانب المختلفة حسب رغبتك. في الوقت الحالي، سيقوم فقط بتنزيل كل ملف من النوع الصوتي/mpeg في موجز RSS إلى الدليل الحالي.
ستحتاج إلى الحصول على رابط RSS الفردي الخاص بك من موقع حملة patreon (patreon.com -> الشريط الجانبي ضمن "العضوية" -> الحملة الفردية -> علامة تبويب العضوية -> روابط سريعة -> "الاستماع إلى تطبيقات البودكاست الأخرى")
import getRssItems from 'patreon-mp3-downloader' ;
const items = await getRssItems ( 'https://www.patreon.com/rss/PATREONCAMPAIGN?auth=PATREON_PROVIDED_AUTH_TOKEN_STRING' ) ;
// this will be an array of Item objects, that has a title and a url
// as well as a download() method that you can use to trigger the download of
// an individual file.
console . log ( items ) ;
// since you have an array of objects that each contains it's own download method,
// you are free to download them as you like.
// download the latest item in the rss feed:
await items [ 0 ] . download ( ) ;
// download each item in sequence, starting with the latest, prepending a number to the file name:
let counter = items . length ;
for ( const item of items ) {
console . log ( `downloading ${ counter } - ${ item . fileName } ` ) ;
await item . download ( ` ${ counter } - ` ) ;
counter -- ;
}
// download every item in the feed at once (do not recommend for larger feeds):
await Promise . all ( items . map ( i => await i . download ( ) ) )
// you could also chunk the array with lodash, and Promise.all each chunk:
import _ from 'lodash' ;
const chunks = _ . chunk ( items , 5 ) ;
for ( const chunk of chunks ) {
await Promise . all ( chunk . map ( i => await i . download ( ) ) ) ;
}
مرة أخرى، سيتم توفير واجهة أكثر سهولة في الاستخدام مع الأساليب المذكورة أعلاه المضمنة في التحديث التالي.
صنع مع ؟ و ؟