* Add language parameter to the weather agent
* Add text forecast for Wunderground data provider
Wunderground API returns forecast for the next few days. Returned JSON response has two types of data under the "forecast" key:
- "txt_forecast": pre-formatted text representation
- "simpleforecast": raw data representation
The "period" key contains which day the node belongs to.
Currently only "simpleforecast" is available to users of the Weather agent.
This commit appends the "txt_forecast" representation to the current data set.
* EmailDigestAgent relies on received events, rather than storing them in memory
- Addressing a problem where 40,000+ events were stored in one agent's memory, and the agent never loaded from the database
* Cleans up references to memory["queue"]
- incorporates suggested style and safeguards
* Adds clarification on event inclusion in email
* Use `reorder` rather than stripping away all scoping
* Update dependencies to fix deprecation warnings
* Fix BoxcarAgent specs (found by rspec warning about expecting `raise_error` without specifying the exception)
Variables that are usable but not present with default values in .env.example were located with this one-liner:
```
diff --changed-group-format='%<' --unchanged-group-format='' <(ack "ENV\[.(.+?).\]" --output='$1' -h app config lib db| sort | uniq) <(grep = .env.example | sed -e 's/^#\([^ ]\)/\1/' | grep -v -e '^#'| ack "(.+?)=" --output='$1'|sort)
```
* Added `api_key` option to UserLocationAgent
The `api_key` is used on the summary page of the UserLocationAgent
as well as the event detail page to display a location on a Google
Map which requires an API key. Closes#1612
* added link to Google API key documentation
* Start with a stripped copy of the data output agent.
* Run the data from the last event through a liquid template.
* Flatten the secret logic to allow for an easier switch to FormConfigurable.
* Switch to form configurable, and allow the content of the page to be configured.
* Allow the mime type to be changed.
* Cleanup.
* Write how this template works.
* Better default values.
* Cleanup.
* Refactor.
* Start testing.
* Test the validation.
* Test receive.
* Test the happy path through the receive web events.
* Test the authentication.
* This is actually a match.
* Refactor.
* Refactor.
* Refactor for better testing.
* Create a mode that lets the logic change. Start with a merge behavior.
* Refactor.
* Create a form configurable setting to change the mode.
* Document how the modes work.
* Wording change.
* Go with a singular secret.
* Fix typo.
* Fix the tests.
* Test cleanup.
* If not one of two types that receive events, ignore all received events.
* Set up these tests for the next set of changes.
* Isolate the method that gets the data for the liquid template.
* Look up past events to render through the liquid template.
* Implement a limit of 2 events.
* Extract a method.
* Hook the limit to options.
* Implement a limit of X events.
* Implement a date limit.
* Refactor the count limit.
* Limit by date with sql, not in-memory objects.
* This ordering is already built into the scope.
* Refactor the dates a bit.
* Put in a few checks around the date limits.
* Add the last X event options to the form and the documentation.
* Missed one bit of documentation.
* Add a view for a liquid output agent that makes it easy to retrieve the generated URL.
* This agent cannot accept events.
* Hardcode the possibilities instead of inspecting the integer.
* Do not be case sensitive on the date filter.
* Hardcode a limit of 5000, just in case no limit was provided.
* Better checks around the time period parsing.
* Test the hardcodes, and rename for consistency.
* Nevermind on that rename.
* Do not be case sensitive on this mode.
* Test that it works even when the casing on the mode is wrong.
* Here is more descriptive default content.
* Text change.
* The if is no longer necessary.
* Refactor.
* Move the limit down to 1000.
* Put a hard limit of 1000.
* Note the new event limit... limit.
* Validate for a valid event limit.
* Do not throw an error if someone types in a non-integer into this field.
* Text update.
* Typo.
* Add a link to the Liquid Templating engine.
Adds the -E argument to sudo calls which passes the environment to the called command. Ensures env variables which are
not defined with default in .env.example are available in Huginn.
Fixes encoding issue when loading agent gems which contain non ASCII characters.
* Add WIP support for HTTP headers
* Actually pass the header to check_this_url
* Fix an unmerged hunk
* Fix some syntax errors
* Fix an outdated variable name
* Comment on which sections do what
* Get rid of (another) unmerged hunk
* Show a form element for the header field
* Fix event emitter conditional
* Adjust tests for header logic
* Test for not returning a header
* Refactor payload generation
* Rename 'header' to 'headers'
* Add multiple header support
* Update HttpStatusAgent docs
* Fix (some) failing tests
* Fix remaining tests
* Add specs for HttpStatusAgent's header code
* Super tiny cleanups