UNPKG

n8n-nodes-pirate-weather

Version:

n8n node for Pirate Weather API - A free weather API alternative

325 lines 14.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PirateWeather = void 0; class PirateWeather { constructor() { this.description = { displayName: 'Pirate Weather', name: 'pirateWeather', icon: 'file:pirateweather.svg', group: ['transform'], version: 1, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', description: 'Get weather forecasts and historical weather data from Pirate Weather API', defaults: { name: 'Pirate Weather', }, inputs: ["main"], outputs: ["main"], credentials: [ { name: 'pirateWeatherApi', required: true, }, ], requestDefaults: { baseURL: '={{$parameter["resource"] === "timeMachine" ? "https://timemachine.pirateweather.net" : "https://api.pirateweather.net"}}', headers: { Accept: 'application/json', }, }, properties: [ { displayName: 'Resource', name: 'resource', type: 'options', noDataExpression: true, options: [ { name: 'Forecast', value: 'forecast', description: 'Get current and forecasted weather data', }, { name: 'Time Machine', value: 'timeMachine', description: 'Get historical weather data for a specific time', }, ], default: 'forecast', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['forecast'], }, }, options: [ { name: 'Get Forecast', value: 'getForecast', description: 'Get weather forecast data', action: 'Get weather forecast', routing: { request: { method: 'GET', url: '=/forecast/dummy/{{$parameter["latitude"]}},{{$parameter["longitude"]}}', qs: { units: '={{$parameter.additionalFields.units || undefined}}', exclude: '={{$parameter.additionalFields.exclude?.join(",") || undefined}}', extend: '={{$parameter.additionalFields.extend || undefined}}', lang: '={{$parameter.additionalFields.lang || undefined}}', version: '={{$parameter.additionalFields.version || undefined}}', icon: '={{$parameter.additionalFields.icon || undefined}}', }, }, }, }, ], default: 'getForecast', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['timeMachine'], }, }, options: [ { name: 'Get Historical', value: 'getHistorical', description: 'Get historical weather data', action: 'Get historical weather', routing: { request: { method: 'GET', url: '=/forecast/dummy/{{$parameter["latitude"]}},{{$parameter["longitude"]}},{{Math.floor(new Date($parameter["time"]).getTime() / 1000)}}', qs: { units: '={{$parameter.additionalFields.units || undefined}}', exclude: '={{$parameter.additionalFields.exclude?.join(",") || undefined}}', lang: '={{$parameter.additionalFields.lang || undefined}}', version: '={{$parameter.additionalFields.version || undefined}}', icon: '={{$parameter.additionalFields.icon || undefined}}', }, }, }, }, ], default: 'getHistorical', }, { displayName: 'Latitude', name: 'latitude', type: 'number', default: 37.8267, required: true, description: 'The latitude of the location', displayOptions: { show: { operation: ['getForecast', 'getHistorical'], }, }, }, { displayName: 'Longitude', name: 'longitude', type: 'number', default: -122.4233, required: true, description: 'The longitude of the location', displayOptions: { show: { operation: ['getForecast', 'getHistorical'], }, }, }, { displayName: 'Time', name: 'time', type: 'dateTime', default: '', required: true, description: 'The time for which to retrieve weather data (UNIX timestamp or ISO 8601)', displayOptions: { show: { resource: ['timeMachine'], operation: ['getHistorical'], }, }, }, { displayName: 'Additional Fields', name: 'additionalFields', type: 'collection', placeholder: 'Add Field', default: {}, displayOptions: { show: { operation: ['getForecast', 'getHistorical'], }, }, options: [ { displayName: 'Exclude', name: 'exclude', type: 'multiOptions', options: [ { name: 'Alerts', value: 'alerts', }, { name: 'Currently', value: 'currently', }, { name: 'Daily', value: 'daily', }, { name: 'Hourly', value: 'hourly', }, { name: 'Minutely', value: 'minutely', }, ], default: [], description: 'Exclude specific data blocks from the response', }, { displayName: 'Extend', name: 'extend', type: 'options', options: [ { name: 'None', value: '', }, { name: 'Hourly (168 Hours)', value: 'hourly', }, ], default: '', description: 'Extend the hourly forecast', }, { displayName: 'Icon Style', name: 'icon', type: 'options', options: [ { name: 'Default', value: '', }, { name: 'Pirate (Expanded Set)', value: 'pirate', }, ], default: '', description: 'Icon style for weather conditions', }, { displayName: 'Language', name: 'lang', type: 'options', options: [ { name: 'Arabic', value: 'ar' }, { name: 'Bosnian', value: 'bs' }, { name: 'Chinese Simplified', value: 'zh' }, { name: 'Chinese Traditional', value: 'zh-tw' }, { name: 'Czech', value: 'cs' }, { name: 'Danish', value: 'da' }, { name: 'Dutch', value: 'nl' }, { name: 'English', value: 'en' }, { name: 'Estonian', value: 'et' }, { name: 'Finnish', value: 'fi' }, { name: 'French', value: 'fr' }, { name: 'German', value: 'de' }, { name: 'Greek', value: 'el' }, { name: 'Hebrew', value: 'he' }, { name: 'Hindi', value: 'hi' }, { name: 'Hungarian', value: 'hu' }, { name: 'Icelandic', value: 'is' }, { name: 'Indonesian', value: 'id' }, { name: 'Italian', value: 'it' }, { name: 'Japanese', value: 'ja' }, { name: 'Korean', value: 'ko' }, { name: 'Norwegian', value: 'nb' }, { name: 'Polish', value: 'pl' }, { name: 'Portuguese', value: 'pt' }, { name: 'Russian', value: 'ru' }, { name: 'Slovak', value: 'sk' }, { name: 'Spanish', value: 'es' }, { name: 'Swedish', value: 'sv' }, { name: 'Turkish', value: 'tr' }, { name: 'Ukrainian', value: 'uk' }, ], default: 'en', description: 'Language for text summaries', }, { displayName: 'Units', name: 'units', type: 'options', options: [ { name: 'Auto (Based on Location)', value: 'auto', }, { name: 'CA (SI, Km/h)', value: 'ca', }, { name: 'SI', value: 'si', }, { name: 'UK (SI, Mph)', value: 'uk', }, { name: 'US (Imperial)', value: 'us', }, ], default: 'auto', description: 'Units for the weather data', }, { displayName: 'Version', name: 'version', type: 'options', options: [ { name: 'Version 1', value: '', }, { name: 'Version 2 (Additional Fields)', value: '2', }, ], default: '', description: 'API version (v2 includes additional fields like smoke and fireIndex)', }, ], }, ], }; } } exports.PirateWeather = PirateWeather; //# sourceMappingURL=PirateWeather.node.js.map