mirror of
				https://github.com/MichMich/MagicMirror.git
				synced 2025-10-31 02:36:47 +00:00 
			
		
		
		
	working version, use corsUrl in weather providers
This commit is contained in:
		| @@ -18,7 +18,7 @@ WeatherProvider.register("darksky", { | ||||
|  | ||||
| 	// Set the default config properties that is specific to this provider | ||||
| 	defaults: { | ||||
| 		apiBase: "https://cors-anywhere.herokuapp.com/https://api.darksky.net", | ||||
| 		apiBase: "https://api.darksky.net", | ||||
| 		weatherEndpoint: "/forecast", | ||||
| 		apiKey: "", | ||||
| 		lat: 0, | ||||
| @@ -67,7 +67,7 @@ WeatherProvider.register("darksky", { | ||||
| 	// Create a URL from the config and base URL. | ||||
| 	getUrl() { | ||||
| 		const units = this.units[this.config.units] || "auto"; | ||||
| 		return `${this.config.apiBase}${this.config.weatherEndpoint}/${this.config.apiKey}/${this.config.lat},${this.config.lon}?units=${units}&lang=${this.config.lang}`; | ||||
| 		return this.getCorsUrl() + `${this.config.apiBase}${this.config.weatherEndpoint}/${this.config.apiKey}/${this.config.lat},${this.config.lon}?units=${units}&lang=${this.config.lang}`; | ||||
| 	}, | ||||
|  | ||||
| 	// Implement WeatherDay generator. | ||||
|   | ||||
| @@ -164,7 +164,7 @@ WeatherProvider.register("envcanada", { | ||||
| 	// CORS errors when accessing EC | ||||
| 	// | ||||
| 	getUrl() { | ||||
| 		return "http://localhost:8080/cors?url=https://dd.weather.gc.ca/citypage_weather/xml/" + this.config.provCode + "/" + this.config.siteCode + "_e.xml"; | ||||
| 		return this.getCorsUrl() + "https://dd.weather.gc.ca/citypage_weather/xml/" + this.config.provCode + "/" + this.config.siteCode + "_e.xml"; | ||||
| 	}, | ||||
|  | ||||
| 	// | ||||
|   | ||||
| @@ -116,7 +116,7 @@ WeatherProvider.register("openweathermap", { | ||||
| 	 * Gets the complete url for the request | ||||
| 	 */ | ||||
| 	getUrl() { | ||||
| 		return this.config.apiBase + this.config.apiVersion + this.config.weatherEndpoint + this.getParams(); | ||||
| 		return this.getCorsUrl() + this.config.apiBase + this.config.apiVersion + this.config.weatherEndpoint + this.getParams(); | ||||
| 	}, | ||||
|  | ||||
| 	/* | ||||
|   | ||||
| @@ -91,7 +91,7 @@ WeatherProvider.register("smhi", { | ||||
| 	getURL() { | ||||
| 		let lon = this.config.lon; | ||||
| 		let lat = this.config.lat; | ||||
| 		return `https://opendata-download-metfcst.smhi.se/api/category/pmp3g/version/2/geotype/point/lon/${lon}/lat/${lat}/data.json`; | ||||
| 		return this.getCorsUrl() + `https://opendata-download-metfcst.smhi.se/api/category/pmp3g/version/2/geotype/point/lon/${lon}/lat/${lat}/data.json`; | ||||
| 	}, | ||||
|  | ||||
| 	/** | ||||
|   | ||||
| @@ -73,7 +73,7 @@ WeatherProvider.register("ukmetoffice", { | ||||
| 	 * Gets the complete url for the request | ||||
| 	 */ | ||||
| 	getUrl(forecastType) { | ||||
| 		return this.config.apiBase + this.config.locationID + this.getParams(forecastType); | ||||
| 		return this.getCorsUrl() + this.config.apiBase + this.config.locationID + this.getParams(forecastType); | ||||
| 	}, | ||||
|  | ||||
| 	/* | ||||
|   | ||||
| @@ -63,7 +63,7 @@ WeatherProvider.register("ukmetofficedatahub", { | ||||
| 		queryStrings += "&includeLocationName=" + true; | ||||
|  | ||||
| 		// Return URL, making sure there is a trailing "/" in the base URL. | ||||
| 		return this.config.apiBase + (this.config.apiBase.endsWith("/") ? "" : "/") + forecastType + queryStrings; | ||||
| 		return this.getCorsUrl() + this.config.apiBase + (this.config.apiBase.endsWith("/") ? "" : "/") + forecastType + queryStrings; | ||||
| 	}, | ||||
|  | ||||
| 	// Build the list of headers for the request | ||||
|   | ||||
| @@ -72,7 +72,7 @@ WeatherProvider.register("weatherbit", { | ||||
| 	// Create a URL from the config and base URL. | ||||
| 	getUrl() { | ||||
| 		const units = this.units[this.config.units] || "auto"; | ||||
| 		return `${this.config.apiBase}${this.config.weatherEndpoint}?lat=${this.config.lat}&lon=${this.config.lon}&units=${units}&key=${this.config.apiKey}`; | ||||
| 		return this.getCorsUrl() + `${this.config.apiBase}${this.config.weatherEndpoint}?lat=${this.config.lat}&lon=${this.config.lon}&units=${units}&key=${this.config.apiKey}`; | ||||
| 	}, | ||||
|  | ||||
| 	// Implement WeatherDay generator. | ||||
|   | ||||
| @@ -40,7 +40,7 @@ WeatherProvider.register("weathergov", { | ||||
| 	// Called to set the config, this config is the same as the weather module's config. | ||||
| 	setConfig: function (config) { | ||||
| 		this.config = config; | ||||
| 		(this.config.apiBase = "https://api.weather.gov"), this.fetchWxGovURLs(this.config); | ||||
| 		(this.config.apiBase = this.getCorsUrl() + "https://api.weather.gov"), this.fetchWxGovURLs(this.config); | ||||
| 	}, | ||||
|  | ||||
| 	// Called when the weather provider is about to start. | ||||
|   | ||||
| @@ -111,6 +111,15 @@ const WeatherProvider = Class.extend({ | ||||
| 		this.delegate.updateAvailable(this); | ||||
| 	}, | ||||
|  | ||||
| 	getCorsUrl: function () { | ||||
| 		const url = window.config.address + ":" + window.config.port + "/cors?url="; | ||||
| 		if (window.config.useHttps) { | ||||
| 			return "https://" + url; | ||||
| 		} else { | ||||
| 			return "http://" + url; | ||||
| 		} | ||||
| 	}, | ||||
|  | ||||
| 	// A convenience function to make requests. It returns a promise. | ||||
| 	fetchData: function (url, method = "GET", data = null) { | ||||
| 		const getData = function (mockData) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user