mirror of
				https://github.com/karl0ss/homepage.git
				synced 2025-10-31 06:24:02 +00:00 
			
		
		
		
	Merge pull request #198 from JazzFisch/fix-incorrect-widget-values
Fix issues with incorrect values in widgets
This commit is contained in:
		
						commit
						8a226ca473
					
				| @ -6,16 +6,6 @@ import npmProxyHandler from "utils/proxies/npm"; | |||||||
| import transmissionProxyHandler from "utils/proxies/transmission"; | import transmissionProxyHandler from "utils/proxies/transmission"; | ||||||
| import qbittorrentProxyHandler from "utils/proxies/qbittorrent"; | import qbittorrentProxyHandler from "utils/proxies/qbittorrent"; | ||||||
| 
 | 
 | ||||||
| function jsonArrayMapper(data, map) { |  | ||||||
|   if (data?.length > 0) { |  | ||||||
|     const json = JSON.parse(data.toString()); |  | ||||||
|     if (json instanceof Array) { |  | ||||||
|       return json.map(map); |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
|   return data; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function asJson(data) { | function asJson(data) { | ||||||
|   if (data?.length > 0) { |   if (data?.length > 0) { | ||||||
|     const json = JSON.parse(data.toString()); |     const json = JSON.parse(data.toString()); | ||||||
| @ -24,6 +14,18 @@ function asJson(data) { | |||||||
|   return data; |   return data; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | function jsonArrayTransform(data, transform) { | ||||||
|  |   const json = asJson(data); | ||||||
|  |   if (json instanceof Array) { | ||||||
|  |     return transform(json); | ||||||
|  |   } | ||||||
|  |   return json; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function jsonArrayFilter(data, filter) { | ||||||
|  |   return jsonArrayTransform(data, items => items.filter(filter)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| const serviceProxyHandlers = { | const serviceProxyHandlers = { | ||||||
|   // uses query param auth
 |   // uses query param auth
 | ||||||
|   emby: genericProxyHandler, |   emby: genericProxyHandler, | ||||||
| @ -33,16 +35,16 @@ const serviceProxyHandlers = { | |||||||
|     proxy: genericProxyHandler, |     proxy: genericProxyHandler, | ||||||
|     maps: { |     maps: { | ||||||
|       movie: (data) => ({ |       movie: (data) => ({ | ||||||
|         wanted: jsonArrayMapper(data, (item) => item.isAvailable === false).length, |         wanted: jsonArrayFilter(data, (item) => item.isAvailable === false).length, | ||||||
|         have: jsonArrayMapper(data, (item) => item.isAvailable === true).length, |         have: jsonArrayFilter(data, (item) => item.isAvailable === true).length | ||||||
|       }), |       }) | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|   sonarr: { |   sonarr: { | ||||||
|     proxy: genericProxyHandler, |     proxy: genericProxyHandler, | ||||||
|     maps: { |     maps: { | ||||||
|       series: (data) => ({ |       series: (data) => ({ | ||||||
|         total: asJson(data.toString()).length, |         total: asJson(data).length, | ||||||
|       }), |       }), | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
| @ -50,7 +52,7 @@ const serviceProxyHandlers = { | |||||||
|     proxy: genericProxyHandler, |     proxy: genericProxyHandler, | ||||||
|     maps: { |     maps: { | ||||||
|       album: (data) => ({ |       album: (data) => ({ | ||||||
|         have: jsonArrayMapper(data, (item) => item.statistics.percentOfTracks === 100).length, |         have: jsonArrayFilter(data, (item) => item.statistics.percentOfTracks === 100).length, | ||||||
|       }), |       }), | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
| @ -58,7 +60,7 @@ const serviceProxyHandlers = { | |||||||
|     proxy: genericProxyHandler, |     proxy: genericProxyHandler, | ||||||
|     maps: { |     maps: { | ||||||
|       book: (data) => ({ |       book: (data) => ({ | ||||||
|         have: jsonArrayMapper(data, (item) => item.statistics.bookFileCount > 0).length, |         have: jsonArrayFilter(data, (item) => item.statistics.bookFileCount > 0).length, | ||||||
|       }), |       }), | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
| @ -66,10 +68,10 @@ const serviceProxyHandlers = { | |||||||
|     proxy: genericProxyHandler, |     proxy: genericProxyHandler, | ||||||
|     maps: { |     maps: { | ||||||
|       movies: (data) => ({ |       movies: (data) => ({ | ||||||
|         total: asJson(data.toString()).total, |         total: asJson(data).total, | ||||||
|       }), |       }), | ||||||
|       episodes: (data) => ({ |       episodes: (data) => ({ | ||||||
|         total: asJson(data.toString()).total, |         total: asJson(data).total, | ||||||
|       }), |       }), | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Ben Phelps
						Ben Phelps