โมดูลนี้มีไว้สำหรับดาวน์โหลดไฟล์ MP3 ทุกไฟล์จากฟีด RSS ของ Patreon
ขณะนี้อยู่ในสถานะอัลฟ่าและทำงานได้ดีสำหรับกรณีการใช้งานเฉพาะของฉัน และกรณีการใช้งานอื่นๆ ที่ต้องออกแรงเล็กน้อย การอัปเดตครั้งต่อไปจะเสนอออบเจ็กต์ตัวเลือกที่ดีกว่าเพื่อควบคุมแง่มุมต่าง ๆ ตามที่คุณต้องการ ตอนนี้มันจะดาวน์โหลดไฟล์ประเภทเสียง/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 ( ) ) ) ;
}
ขอย้ำอีกครั้งว่าอินเทอร์เฟซที่เป็นมิตรต่อผู้ใช้มากขึ้นด้วยวิธีการข้างต้นที่มีอยู่ในการอัปเดตครั้งถัดไป
ทำด้วย ? และ ?