โมดูลนี้มีไว้สำหรับดาวน์โหลดไฟล์ MP3 ทุกไฟล์จากฟีด RSS ของ Patreon
ขณะนี้อยู่ในสถานะอัลฟ่าและทำงานได้ดีสำหรับกรณีการใช้งานเฉพาะของฉัน และกรณีการใช้งานอื่นๆ ที่ต้องออกแรงเล็กน้อย การอัปเดตครั้งต่อไปจะเสนอออบเจ็กต์ตัวเลือกที่ดีกว่าเพื่อควบคุมแง่มุมต่าง ๆ ตามที่คุณต้องการ ในตอนนี้ มันจะดาวน์โหลดไฟล์ประเภทเสียง/mpeg ทุกไฟล์ในฟีด rss ไปยังไดเร็กทอรีปัจจุบัน
คุณจะต้องได้รับลิงก์ RSS แต่ละรายการจากเว็บไซต์ของแคมเปญ Patreon (patreon.com -> แถบด้านข้างใต้ 'การเป็นสมาชิก' -> แคมเปญแต่ละรายการ -> แท็บการเป็นสมาชิก -> ลิงก์ด่วน -> 'ฟังบนแอปพอดแคสต์อื่น ๆ ')
นำเข้า getRssItems จาก 'patreon-mp3-downloader';const items = await getRssItems('https://www.patreon.com/rss/PATREONCAMPAIGN?auth=PATREON_PROVIDED_AUTH_TOKEN_STRING');// นี่จะเป็นอาร์เรย์ของอ็อบเจ็กต์ Item ที่ มีชื่อและ url// รวมถึงวิธีการดาวน์โหลด () ที่คุณสามารถใช้ได้ ทริกเกอร์การดาวน์โหลด// แต่ละ file.console.log(items);// เนื่องจากคุณมีอาร์เรย์ของออบเจ็กต์ที่แต่ละอันมีวิธีการดาวน์โหลดของตัวเอง // คุณสามารถดาวน์โหลดได้ตามต้องการ// ดาวน์โหลด รายการล่าสุดในฟีด rss:await items[0].download();// ดาวน์โหลดแต่ละรายการตามลำดับ โดยเริ่มจากรายการล่าสุด โดยใส่ตัวเลขไว้หน้าชื่อไฟล์:let counter = items.length;for (const item of รายการ) {console.log(`downloading ${counter} - ${item.fileName}`);await item.download(`${counter} - `);counter--;}// ดาวน์โหลดทุกรายการในฟีดพร้อมกัน (ไม่แนะนำสำหรับฟีดขนาดใหญ่):await Promise.all(items.map(i => await i.download()))// คุณยังสามารถแบ่งอาร์เรย์ด้วย lodash และ Promise.all แต่ละ chunk:import _ from 'lodash';const chunks = _.chunk(items, 5);for (const chunk of chunks) {await Promise.all(chunk.map(i => await i.download()));}
ขอย้ำอีกครั้งว่าอินเทอร์เฟซที่เป็นมิตรต่อผู้ใช้มากขึ้นด้วยวิธีการข้างต้นที่มีอยู่ในการอัปเดตครั้งถัดไป
ทำด้วย ? และ ?