forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			36 lines
		
	
	
	
		
			867 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
	
		
			867 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import ImageProvider, {ProvidedImage} from "./ImageProvider"; | ||
|  | 
 | ||
|  | export default class GenericImageProvider extends ImageProvider { | ||
|  |     public defaultKeyPrefixes: string[] = ["image"]; | ||
|  | 
 | ||
|  |     private readonly _valuePrefixBlacklist: string[]; | ||
|  | 
 | ||
|  |     public constructor(valuePrefixBlacklist: string[]) { | ||
|  |         super(); | ||
|  |         this._valuePrefixBlacklist = valuePrefixBlacklist; | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     protected DownloadAttribution(url: string) { | ||
|  |         return undefined | ||
|  |     } | ||
|  | 
 | ||
|  |     async ExtractUrls(key: string, value: string): Promise<Promise<ProvidedImage>[]> { | ||
|  | 
 | ||
|  |         if (this._valuePrefixBlacklist.some(prefix => value.startsWith(prefix))) { | ||
|  |             return [] | ||
|  |         } | ||
|  | 
 | ||
|  |         return [Promise.resolve({ | ||
|  |             key: key, | ||
|  |             url: value, | ||
|  |             provider: this | ||
|  |         })] | ||
|  |     } | ||
|  | 
 | ||
|  |     SourceIcon(backlinkSource?: string) { | ||
|  |         return undefined; | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  | } |