Commit graph

1638 commits

Author SHA1 Message Date
Akinori MUSHA
ef82bfabb7 Inherit receivers when cloning 2017-07-19 11:25:02 +09:00
Akinori MUSHA
3ffe667f9e Allow controllers to be selected 2017-07-19 11:24:22 +09:00
Albert Sun
b4fb6e2e27 put calendar cleanup in ensure block 2017-07-10 11:51:04 -04:00
Albert Sun
675700ac2d update changelog / upgrade warning to be clearer about backward compatibility 2017-07-10 11:20:08 -04:00
Akinori MUSHA
7dd9e518d4 Apply a cosmetic change 2017-07-10 12:28:35 +09:00
Akinori MUSHA
8645323dfe Expose target to CommanderAgent in templating
This allows a CommanderAgent to control only some of the targets
depending on the agent attributes.  For example, you can update the
threshold value of a target agent only if the current value is
lower (or higher) than the suggested new value.
2017-07-09 03:34:05 +09:00
Albert Sun
dee9cc1533 add a bit of compatibility code for old configs of this agent 2017-07-07 16:54:27 -04:00
Albert Sun
f9695499ae add an upgrade warning for google cal publish agent. other cleanup. 2017-07-05 10:59:54 -04:00
Albert Sun
78b68ae4c3 Update Google Agents
Updates google-api-client to 0.13 along with GoogleCalendarPublishAgent
and GoogleTranslationAgent to newer API signatures. In preparation for
including a google-cloud-bigquery gem and Agent which would otherwise
have dependency version mismatches.

May break backwards compatibility for the GoogleCalendarPublishAgent due to Google's new preferred
  authentication method. PKCS12 keys are no longer support by the gem,
  in favor of RSA private keys / JSON key files.

The new API no longer uses a discovery method and implements methods in
Ruby, adopting snake case names for object keys. So `dateTime` becomes
`date_time`. `time_zone` also appears to now be required.
2017-06-30 18:04:28 -04:00
Akinori MUSHA
fe36ce1166 Merge pull request #2014 from huginn/fix_1940
Protect the latest event from automatic deletion when using MySQL
2017-06-06 11:01:28 +09:00
Akinori MUSHA
5fadd12be6 Protect the latest event from automatic deletion when using MySQL
Detecting the database type by the name this time, because
ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter is defined only
if the mysql2 gem is loaded.

This works around #1940 for the most typical cases.
2017-05-28 01:41:59 +09:00
Akinori MUSHA
d2d557dc7b Enable liberal_parsing for ruby >=2.4 2017-05-28 01:07:54 +09:00
Akinori MUSHA
6a7221a9da Use URI Template (RFC 6570) for interpolating search_url 2017-05-25 06:40:54 +09:00
Aleksey Ivanov
0e9c24ab54 Falling back to default 'search_url' and docs 2017-05-23 12:21:31 +03:00
Aleksey Ivanov
a4b7f1b1f5 Fallback to default value for existing agents 2017-05-23 03:47:51 +03:00
Aleksey Ivanov
eccb449dfd Add configurable search_url #1552 2017-05-22 22:34:20 +03:00
Dominik Sander
1d3d3ebf16 Utilize strong parameter API to pass arbitrary hashes
By passing an empty hash to `permit` strong parameters permits
the complete hash.

e86524c0c5

Refactor ApplicationController#agent_params
2017-05-19 09:24:48 +02:00
Dominik Sander
ff2615a71f Upgrade rails and configuration to 5.1.1
Use `to_unsafe_h` to convert unpermitted parameters to a Hash
Specify rails version in migrations
2017-05-19 09:24:44 +02:00
Akinori MUSHA
1b84518b7f Merge pull request #1990 from huginn/shell_out_unbundled
Add a new option `unbundle` to ShellCommandAgent
2017-05-18 21:47:29 +09:00
Dominik Sander
f064e6bfdd Push docker images to new huginn namespace
For now we keep pushing to the old namespace but add a warning to users a
chance to change their images to the new namespace.
2017-05-17 21:18:39 +02:00
Andrew Cantino
9ad4741212 Revert "Protect the latest event from automatic deletion when using MySQL" (#1993) 2017-05-01 14:17:42 +12:00
Akinori MUSHA
eb48fd3f6d Merge pull request #1974 from cantino/fix_1940
Protect the latest event from automatic deletion when using MySQL
2017-04-28 19:29:25 +09:00
Akinori MUSHA
10e0398444 Add a new option unbundle to ShellCommandAgent
This addresses #1989.
2017-04-28 19:23:03 +09:00
Albert Sun
2ac6927a6a Option for custom response headers for receive_web_request (#1977)
* Option for custom response headers for receive_web_request

In DataOutputAgent, WebhookAgent, LiquidOutputAgent, this enables
setting options['response_headers'] as a JSON object with custom
response headers to set on the HTTP response through the
WebRequestsController.

* code copy edits from @cantino
2017-04-27 12:19:59 +12:00
Dominik Sander
e1f702adf1 Upgrade liquid (#1982)
* Update Liquid to 4.0

* Handle Liquid renaming before_method to liquid_method_missing

* Adopt `regex_replace` tags to new Liquid BlockBody class
2017-04-26 22:09:21 +02:00
Jon Neverland
2b41b6cc54 Google translate (#1978)
* Added GoogleTranslationAgent

* Well, I forgot to add it..

* Wrong ruby version

* Removed duplicate GoogleTranslationAgent

* Fixed Gemfile upgrades by adding required version of jwt

* Added spec for GoogleTranslationAgent and fixed description

* PR fixes:
No more hash rockets
Added info to description
Indentation

* Deleted TranslationAgent because service is deprecated

* Reverted google-api-client version

* Downgraded rest of gems and fixed hash rockets

* More PR fixes
2017-04-26 17:49:05 +12:00
Warloxx
e3f79bf84b Rss agent dynamic cleanup (#1733)
* Remove fixed limit of 500 IDs used to figure out which entries are new.
Instead each ID that is checked against the seen_ids gets moved to the top of the list.
IDs that are no longer used in the RSS Feed will end up at the bottom of the seen_ids list end will be removed.

* remove uncommented code line

* fix undefined method `count' for nil:NilClass, in case the first fetch of an rss feed failed or fetched empty rss feed.

changed spec to verify the deletion of old ids by keeping all current ones, not by fixed limit

* revert changes for dynamic cleanup.
Instead made the limit of stored ids configurable. (key: max_ids)
Default limit will remain 500.

* fixed error message.
replaced repeated function call with single call specifying amount.
using options['max_ids'] instead of interpolated['max_ids'] to retrieve setting.

* Rename to remembered_id_count and fix spec

* Update rss_agent.rb

fixed indentation
2017-04-24 10:44:03 +12:00
Jon Neverland
81324ebad4 Fixed TwilioReceiveTextAgent#default_options (#1980) 2017-04-21 17:03:13 +02:00
Akinori MUSHA
cabc7156d1 Protect the latest event from automatic deletion when using MySQL
This is a workaround for #1940.
2017-04-19 19:25:14 +09:00
Akinori MUSHA
722349c5cd Make DataOutputAgent serve RSS output as application/rss+xml
For backward compatibility, a new option `rss_content_type` is added
and existing agents will have its value set to `text/xml`, which was
the Content-Type value before this change.

This fixes #1968.
2017-04-19 17:35:46 +09:00
Dominik Sander
fbc892d9da Merge pull request #1965 from dsander/dry-run-event-created_at
Set created_at of dry-runned event to the current time
2017-04-12 13:15:48 +02:00
Akinori MUSHA
652eb4418f DataOutputAgent should not override events in each event
This fixes #1963.
2017-04-12 19:24:13 +09:00
Dominik Sander
d277afbe12 Set created_at of dry-runned event to the current time
Allows the usage of `{{created_at}}` when dry-running Agents.

 #1964
2017-04-11 22:30:50 +02:00
Zack Fernandes
f21d6abaee Create Tumblr Likes Agent (#1923)
* Create Tumblr Likes Agent

* Don't interpolate options

* Clear ID memory after 50 entries

In order to prevent the ID array from getting to large, keep only the
last 50 entries. 50 is currently the maximum the API will return at a
time, so we should never exceed that limit.

* Request likes after the last recorded like

Instead of just returning blog likes, request only likes after the
timestamp of the last liked item we’ve processed.
2017-04-07 19:27:24 -04:00
Andrew Cantino
be0d0417bd Fix #1799 by linking to Liquid docs (#1953) 2017-04-05 17:52:55 -04:00
Akinori MUSHA
5f881ee786 Give ChangeDetectorAgent access to last_property
This allows user to detect a new lowest value or a new high by
comparing a new value with the existing value.
2017-03-30 21:21:26 +09:00
aeter
8ab1f97c7d Close #1914 - remove 'become user' if deactivated user (#1938)
Ticket -- https://github.com/cantino/huginn/issues/1914
Testing -- Local huginn setup
About --
Switching as admin to a user is broken if the user is deactivated.

This code makes the 'Become User' buttons invisible if the user to
be impersonated is deactivated. The buttons used to be visible on:
* /admin/users
* /admin/users/XX/edit

Bonus: removes the 'Become User' button from the 'Edit Users' page
if we are the edited `current_user`.
2017-03-18 17:28:42 -04:00
Akinori MUSHA
c9f71ce328 Use an infinite sequence and save a query 2017-03-17 02:02:46 +09:00
Akinori MUSHA
90dd0f7cdc Copy service_id when cloning an agent 2017-03-17 02:01:05 +09:00
MingShyanWei
68ad0f2e89 Fix View diagram : Too many agent to display (#1664) (#1935)
* Fix View diagram : Too many agent to display (#1664)
Making a GET request is simple, but GET URLs are limited to 2K characters.
The Google Chart API supports HTTP POST for chart requests up to 16K long. (*1)

(*1) https://developers.google.com/chart/image/docs/post_requests

* Fix View diagram : Too many agent to display (#1664)

Use  Faraday to POST api. 
Use when case to check response.status
2017-03-17 01:43:43 +09:00
Akinori MUSHA
37a2aaaf65 Fix typos in the document: _request_ -> _response_
😵
2017-03-14 15:21:03 +09:00
aeter
d75e4c7cef Close #801 - peak detector min datapoints (#1924)
Closes -- https://github.com/cantino/huginn/issues/801
Testing -- ran rspec
About --
  Adds an option `min_events` to the peak detector agent. The
  agent will start looking for peaks only after min number of
  events are accumulated.
2017-03-10 19:05:10 -05:00
Akinori MUSHA
98b11ddb80 Enable include_sort_info in RssAgent
Spotted in #1916.
2017-03-07 18:14:50 +09:00
NonaSuomy
70a9c27884 Update shell_command_agent.rb (#1911)
Change to make path accept stored credentials.
2017-02-26 19:27:54 -08:00
Kevin Yank
3dda1ffb63 Check for agent class file to determine if it's valid (#1907)
The previous approach of checking if the class is defined caused problems when
the agent class had not yet been loaded by the process. Using Agent.valid_type?
instead seems to be the approach that is taken elsewhere in the codebase, and it
does not suffer from this problem.
2017-02-12 15:08:19 -05:00
bobbysteel
11b6a2c459 Explain time zone labels (#1902) 2017-02-05 16:01:37 -05:00
Dominik Sander
a8ad5e97b6 Fix devise confirmation form, unify unlock form
Use `login` as the key for all devise request/resend forms.

Fixes #1895
2017-02-02 20:14:47 +01:00
Dominik Sander
0fccdc8471 Merge pull request #1890 from dsander/order-stream-agents
Order TwitterStreamAgents in setup_workers
2017-02-01 21:44:20 +01:00
bobbysteel
c30cb3551e Google Flights agent - Add support for choice of carrier/alliance (#1878)
* Add support for selecting by carrier and alliance

Defaults set to blank and properly ignored by the api - does not create any backward compatibility issues.

* Fix duplicate text

* Text updates

As per @cantino's suggestions.

* formatting
2017-01-31 21:01:21 -05:00
Dominik Sander
9d8d371fc8 Order TwitterStreamAgents in setup_workers
Enforcing the order ensures the config hash stays identical when the
Agent configuration does not change.

 #1191
2017-01-31 23:43:08 +01:00