mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			31 lines
		
	
	
		
			967 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			967 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const Logger = require('../Logger')
 | |
| const iTunes = require('../providers/iTunes')
 | |
| 
 | |
| class PodcastFinder {
 | |
|   constructor() {
 | |
|     this.iTunesApi = new iTunes()
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * 
 | |
|    * @param {string} term 
 | |
|    * @param {{country:string}} options 
 | |
|    * @returns {Promise<import('../providers/iTunes').iTunesPodcastSearchResult[]>}
 | |
|    */
 | |
|   async search(term, options = {}) {
 | |
|     if (!term) return null
 | |
|     Logger.debug(`[iTunes] Searching for podcast with term "${term}"`)
 | |
|     const results = await this.iTunesApi.searchPodcasts(term, options)
 | |
|     Logger.debug(`[iTunes] Podcast search for "${term}" returned ${results.length} results`)
 | |
|     return results
 | |
|   }
 | |
| 
 | |
|   async findCovers(term) {
 | |
|     if (!term) return null
 | |
|     Logger.debug(`[iTunes] Searching for podcast covers with term "${term}"`)
 | |
|     var results = await this.iTunesApi.searchPodcasts(term)
 | |
|     if (!results) return []
 | |
|     return results.map(r => r.cover).filter(r => r)
 | |
|   }
 | |
| }
 | |
| module.exports = new PodcastFinder() |