url list support
This commit is contained in:
		| @ -44,6 +44,7 @@ function extract(...args) { | |||||||
| function extract(itemsSelector:string, fieldSelectors:string[]) | function extract(itemsSelector:string, fieldSelectors:string[]) | ||||||
| function extract(itemsSelector:string, fieldSelectors:string[], url:string, from:number, to:number, interval:number) | function extract(itemsSelector:string, fieldSelectors:string[], url:string, from:number, to:number, interval:number) | ||||||
| function extract(itemsSelector:string, fieldSelectors:string, url:string, pages:number[]) | function extract(itemsSelector:string, fieldSelectors:string, url:string, pages:number[]) | ||||||
|  | function extract(itemsSelector:string, fieldSelectors:string[], urls:string[]) | ||||||
|  |  | ||||||
| ## Examples: | ## Examples: | ||||||
| ---------------------------- | ---------------------------- | ||||||
|  | |||||||
| @ -2,20 +2,23 @@ | |||||||
|  * Extract data from current tab / multiple urls. |  * Extract data from current tab / multiple urls. | ||||||
|  * @param {string} itemsSelector items selectors for selecting items (data rows) |  * @param {string} itemsSelector items selectors for selecting items (data rows) | ||||||
|  * @param {Array<string>} fieldSelectors fields selectors for selecting fields (data columns) under each item |  * @param {Array<string>} fieldSelectors fields selectors for selecting fields (data columns) under each item | ||||||
|  * @param {string} url url template to generate urls by filling with page numers. |  * @param {...any} args url list / url templates, page numers, either [from, to, interval] or [...pages] | ||||||
|  * @param {...number} args page numers, either [from, to, interval] or [...pages] |  | ||||||
|  */ |  */ | ||||||
| function extract(itemsSelector, fieldSelectors, url, ...args) { | function extract(itemsSelector, fieldSelectors, ...args) { | ||||||
|     let urls = []; |     let urls = []; | ||||||
|     if (url) { |     let listOrTempl = args.shift(); | ||||||
|  |     if (listOrTempl instanceof Array) { | ||||||
|  |         urls = listOrTempl; | ||||||
|  |     } else if (url) { | ||||||
|  |         let urlTempl = listOrTempl; | ||||||
|         if (args[0] instanceof Array) { |         if (args[0] instanceof Array) { | ||||||
|             urls = args[0].map(p => url.replace("${page}", p)); |             urls = args[0].map(p => urlTempl.replace("${page}", p)); | ||||||
|         } else if (args.length >= 3) { |         } else if (args.length >= 3) { | ||||||
|             let from = args.shift(); |             let from = args.shift(); | ||||||
|             let to = args.shift(); |             let to = args.shift(); | ||||||
|             let interval = args.shift(); |             let interval = args.shift(); | ||||||
|             for (let i = from; i <= to; i += interval) { |             for (let i = from; i <= to; i += interval) { | ||||||
|                 urls.push(url.replace("${page}", i)); |                 urls.push(urlTempl.replace("${page}", i)); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user