<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Driplane on Dripline Documentation</title><link>https://matrix86.github.io/driplane/en/</link><description>Recent content in Driplane on Dripline Documentation</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sun, 26 Jan 2020 04:15:05 +0900</lastBuildDate><atom:link href="https://matrix86.github.io/driplane/en/index.xml" rel="self" type="application/rss+xml"/><item><title>Basics</title><link>https://matrix86.github.io/driplane/en/doc/filters/js/basics/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/js/basics/</guid><description>&lt;h2 id="js"&gt;JS&lt;/h2&gt;
&lt;p&gt;This filter allows to extend the basic &lt;code&gt;driplane&lt;/code&gt;&amp;rsquo;s filter, defining Javascript scripts. It is based on &lt;a href="https://github.com/evilsocket/islazy" target="_blank"&gt;islazy/plugin&lt;/a&gt; which in turn is based on &lt;a href="https://github.com/robertkrimen/otto" target="_blank"&gt;robertkrimen/otto&lt;/a&gt;.&lt;br /&gt;
Defining a JS file with our custom logic, it is possible create a complex filter.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;path&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;path of the Javascript file (it can contains multiple functions)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;function&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;name of the function in the JS file to call when a &lt;code&gt;Message&lt;/code&gt; is received&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | js(path=&amp;quot;script.js&amp;quot;, function=&amp;quot;MyFunction&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The output &lt;code&gt;Message&lt;/code&gt; of this filter depends on the return value of the JS function itself.&lt;/p&gt;</description></item><item><title>Build and install</title><link>https://matrix86.github.io/driplane/en/doc/installation/build/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/installation/build/</guid><description>&lt;h2 id="build-and-install"&gt;Build and install&lt;/h2&gt;
&lt;p&gt;Launching the follow command go will take care of the downloading, the dependency resolving, the building and finally of the installation of the binary in the &lt;em&gt;$GOBIN&lt;/em&gt; directory.&lt;/p&gt;
&lt;div class="alert alert-success" role="alert" data-dir="ltr"&gt;go get -u github.com/Matrix86/driplane/&amp;hellip;&lt;/div&gt;</description></item><item><title>First look</title><link>https://matrix86.github.io/driplane/en/doc/rules/definition/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/rules/definition/</guid><description>&lt;h2 id="first-look"&gt;First look&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;Driplane&lt;/code&gt; include a simple language to define where to get the stream and what operation to exec, or how to filter the data.&lt;/p&gt;
&lt;p&gt;In the rule could be defined 3 type of nodes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;FEEDER&lt;/code&gt; : it is the node responsible for creating of a stream of data (it reads every changes on a file, gets tweets from Twitter, etc..)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;FILTER&lt;/code&gt; : it receives data from a feeder or another filter and checks some conditions on them or makes some changes on them. It sends the data to the next filter &lt;strong&gt;ONLY&lt;/strong&gt; if the condition is verified.&lt;/p&gt;</description></item><item><title>Docker</title><link>https://matrix86.github.io/driplane/en/doc/installation/docker/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/installation/docker/</guid><description>&lt;h2 id="docker"&gt;Docker&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;driplane&lt;/code&gt; is containerized using a really lightweight Linux distribution called &lt;strong&gt;Alpine Linux&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;To pull the latest image version:&lt;/p&gt;
&lt;div class="alert alert-success" role="alert" data-dir="ltr"&gt;docker pull matrix86/driplane&lt;/div&gt;
&lt;p&gt;To run it:&lt;/p&gt;
&lt;div class="alert alert-success" role="alert" data-dir="ltr"&gt;docker run &amp;ndash;rm -v config:/app/config -it matrix86/driplane:latest -config config/config.yaml&lt;/div&gt;
&lt;p&gt;where the &lt;code&gt;config&lt;/code&gt; directory contains the &lt;code&gt;config.yaml&lt;/code&gt; file, the &lt;code&gt;rule&lt;/code&gt; directory, the &lt;code&gt;js&lt;/code&gt; directory and the &lt;code&gt;templates&lt;/code&gt; directory.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://hub.docker.com/repository/docker/matrix86/driplane" target="_blank"&gt;Link to the Docker repository&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Entrypoint</title><link>https://matrix86.github.io/driplane/en/doc/filters/js/entrypoint/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/js/entrypoint/</guid><description>&lt;h2 id="entrypoint"&gt;Entrypoint&lt;/h2&gt;
&lt;p&gt;The JS file consists of one or more functions, and they can be used in different filters or in combination between them.&lt;br /&gt;
The function must respect some constraints:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the function&amp;rsquo;s name contained in the &lt;code&gt;function&lt;/code&gt; parameter of the filter has to start with a capital letter;&lt;/li&gt;
&lt;li&gt;the function prototype must 3 variables;&lt;/li&gt;
&lt;li&gt;the function must return a JS object with at least the &lt;code&gt;filtered&lt;/code&gt; field;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="functions-prototype"&gt;Function&amp;rsquo;s prototype&lt;/h3&gt;
&lt;p&gt;The function&amp;rsquo;s name specified in the &lt;code&gt;function&lt;/code&gt; parameter of the filter, receives 3 input parameters:&lt;/p&gt;</description></item><item><title>Plugin Packages</title><link>https://matrix86.github.io/driplane/en/doc/filters/js/packages/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/js/packages/</guid><description>&lt;h2 id="packages"&gt;Packages&lt;/h2&gt;
&lt;p&gt;Since the JS doesn&amp;rsquo;t have all the useful functions to perform operations like on file manipulation or http request (see &lt;a href="https://godoc.org/github.com/robertkrimen/otto" target="_blank"&gt;otto docs&lt;/a&gt; for more info), &lt;code&gt;driplane&lt;/code&gt; maps and export to the JS environment some Go functions as packages.&lt;/p&gt;
&lt;div class="alert alert-warning" role="alert" data-dir="ltr"&gt;These mapped functions are not definitive and they could change over time.&lt;/div&gt;
&lt;h3 id="file"&gt;File&lt;/h3&gt;
&lt;p&gt;This package contains functions for manipulating files.&lt;/p&gt;
&lt;h4 id="return"&gt;Return&lt;/h4&gt;
&lt;p&gt;The return value will be a JS object containing 2 fields:&lt;/p&gt;</description></item><item><title>Syntax</title><link>https://matrix86.github.io/driplane/en/doc/rules/syntax/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/rules/syntax/</guid><description>&lt;h2 id="syntax"&gt;Syntax&lt;/h2&gt;
&lt;p&gt;The syntax of the &lt;code&gt;driplane&lt;/code&gt;&amp;rsquo;s rules is very simple. As for the BASH every filter&amp;rsquo;s output is sent to the next filter&amp;rsquo;s input concatenating the two of them with the &lt;code&gt;|&lt;/code&gt; character.&lt;br /&gt;
All the rules have to start with a name and end with a &lt;code&gt;;&lt;/code&gt; char.&lt;/p&gt;
&lt;h3 id="import"&gt;Import&lt;/h3&gt;
&lt;p&gt;Using the directive &lt;code&gt;import&lt;/code&gt; it is possible to include one or more files and their rules in another one. All the rules defined in an included file&lt;br /&gt;
are available for the file that imports them.&lt;/p&gt;</description></item><item><title>Templates</title><link>https://matrix86.github.io/driplane/en/doc/rules/templates/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><guid>https://matrix86.github.io/driplane/en/doc/rules/templates/</guid><description>&lt;h2 id="templates"&gt;Templates&lt;/h2&gt;
&lt;p&gt;Many filters in &lt;code&gt;driplane&lt;/code&gt; support &lt;strong&gt;Go templates&lt;/strong&gt; in their parameters. Templates allow you to dynamically compose strings using the fields of the current &lt;code&gt;Message&lt;/code&gt; (both the &lt;code&gt;main&lt;/code&gt; field and any &lt;code&gt;extra&lt;/code&gt; fields).&lt;/p&gt;
&lt;p&gt;Templates are based on the standard &lt;a href="https://golang.org/pkg/text/template/" target="_blank"&gt;Go text/template&lt;/a&gt; package and are extended with all the functions from the &lt;a href="https://masterminds.github.io/sprig/" target="_blank"&gt;Sprig&lt;/a&gt; library, giving you access to over 100 useful functions for string manipulation, math, date formatting, encoding, and more.&lt;/p&gt;
&lt;h3 id="basic-syntax"&gt;Basic syntax&lt;/h3&gt;
&lt;p&gt;Inside a template, you can reference any field of the &lt;code&gt;Message&lt;/code&gt; using the &lt;code&gt;{{ .field_name }}&lt;/code&gt; syntax:&lt;/p&gt;</description></item><item><title>LLM</title><link>https://matrix86.github.io/driplane/en/doc/filters/llm/</link><pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/llm/</guid><description>&lt;h2 id="llm"&gt;LLM&lt;/h2&gt;
&lt;p&gt;This filter sends the received &lt;code&gt;Message&lt;/code&gt; to a Large Language Model (LLM) and propagates the response. It uses &lt;a href="https://github.com/mozilla-ai/any-llm-go" target="_blank"&gt;any-llm-go&lt;/a&gt; to support multiple LLM providers through a unified interface.&lt;/p&gt;
&lt;p&gt;Both the &lt;code&gt;prompt&lt;/code&gt; and &lt;code&gt;system_prompt&lt;/code&gt; parameters support &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;, allowing you to dynamically compose prompts using the &lt;code&gt;main&lt;/code&gt; field and any extra fields of the incoming &lt;code&gt;Message&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="supported-providers"&gt;Supported Providers&lt;/h3&gt;
&lt;p&gt;OpenAI, Anthropic, Ollama, DeepSeek, Groq, Mistral, Gemini, llama.cpp, Llamafile.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;model&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;(required)&lt;/strong&gt; The model name to use (e.g. &lt;code&gt;&amp;quot;gpt-4&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;claude-3-opus-20240229&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;llama3&amp;quot;&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;prompt&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;(required)&lt;/strong&gt; The user prompt sent to the LLM. Supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt; with &lt;code&gt;Message&lt;/code&gt; fields&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;system_prompt&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;An optional system prompt. Supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt; with &lt;code&gt;Message&lt;/code&gt; fields&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;provider&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;openai&amp;rdquo;&lt;/td&gt;
&lt;td&gt;The LLM provider to use: &lt;code&gt;openai&lt;/code&gt;, &lt;code&gt;anthropic&lt;/code&gt;, &lt;code&gt;ollama&lt;/code&gt;, &lt;code&gt;deepseek&lt;/code&gt;, &lt;code&gt;groq&lt;/code&gt;, &lt;code&gt;mistral&lt;/code&gt;, &lt;code&gt;gemini&lt;/code&gt;, &lt;code&gt;llamacpp&lt;/code&gt;, &lt;code&gt;llamafile&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;api_key&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;API key for the provider (required for cloud providers like OpenAI, Anthropic, etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;api_url&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;Custom base URL for the API endpoint (useful for proxies or self-hosted instances)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;The field of the &lt;code&gt;Message&lt;/code&gt; where the LLM response will be stored. Use &lt;code&gt;&amp;quot;main&amp;quot;&lt;/code&gt; to replace the message content, or any other name to set an extra field&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;temperature&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;FLOAT&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;0.7&lt;/td&gt;
&lt;td&gt;Sampling temperature for the model (higher values produce more random output)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;max_tokens&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;INT&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;1024&lt;/td&gt;
&lt;td&gt;Maximum number of tokens to generate in the response&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | llm(model=&amp;quot;gpt-4&amp;quot;, prompt=&amp;quot;Summarize: {{ .main }}&amp;quot;, api_key=&amp;quot;sk-...&amp;quot;, provider=&amp;quot;openai&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The LLM response text is placed in the field specified by &lt;code&gt;target&lt;/code&gt; (default: &lt;code&gt;main&lt;/code&gt;). The following extra fields are set on the output &lt;code&gt;Message&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>WebRSS</title><link>https://matrix86.github.io/driplane/en/doc/feeders/webrss/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://matrix86.github.io/driplane/en/doc/feeders/webrss/</guid><description>&lt;h2 id="webrss"&gt;WebRSS&lt;/h2&gt;
&lt;p&gt;This feeder creates a stream by scraping a website and extracting articles using CSS selectors.&lt;br /&gt;
It is useful for websites that do not expose an RSS/Atom feed. It is based on &lt;a href="https://github.com/gocolly/colly" target="_blank"&gt;Colly&lt;/a&gt; so you can refer to it for more info on how selectors work.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;url&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;URL of the page to scrape&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;item_selector&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;CSS selector matching each article/item block on the page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;title_selector&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;CSS selector for the article title (relative to the item block)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;link_selector&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;CSS selector for the article link (relative to the item block)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;desc_selector&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;CSS selector for the article description (relative to the item block)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;date_selector&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;CSS selector for the article date (relative to the item block)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;link_attr&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;href&amp;rdquo;&lt;/td&gt;
&lt;td&gt;HTML attribute to read the URL from on the matched link element&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;freq&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&lt;a href="https://golang.org/pkg/time/#ParseDuration" target="_blank"&gt;DURATION&lt;/a&gt;&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;60m&lt;/td&gt;
&lt;td&gt;how often the page should be scraped&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | &amp;lt;webrss: url=&amp;quot;https://website.io/blog&amp;quot;, item_selector=&amp;quot;a[href^='/blog/']&amp;quot;, title_selector=&amp;quot;h4, h3&amp;quot;, link_selector=&amp;quot;self&amp;quot;, desc_selector=&amp;quot;p&amp;quot;, freq=&amp;quot;1h&amp;quot;&amp;gt; | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;h4 id="text"&gt;Text&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;main&lt;/code&gt; field of the Message will contain the &lt;code&gt;title&lt;/code&gt; of the article extracted via &lt;code&gt;title_selector&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Telegram</title><link>https://matrix86.github.io/driplane/en/doc/filters/telegram/</link><pubDate>Sat, 10 Feb 2024 23:02:24 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/telegram/</guid><description>&lt;h2 id="telegram"&gt;Telegram&lt;/h2&gt;
&lt;p&gt;This filter allows you to download files received from the Telegram feeder or send messages.&lt;br /&gt;
Note: it can be used only in a rule with the Telegram Feeder.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;p&gt;The following parameters are required from this filter:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;action&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;send_message&amp;rdquo;&lt;/td&gt;
&lt;td&gt;action to perform: &amp;ldquo;send_message&amp;rdquo;, &amp;ldquo;download_file&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;to&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
&lt;td&gt;used with action &lt;code&gt;send_message&lt;/code&gt;, it has to contain the recipient of the message: username, @username, phone number with the country code (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;to_chatid&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;the recipient of the message will be a chat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;filename&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
&lt;td&gt;specified the path of where to store the downloaded file: &lt;code&gt;msg_filename&lt;/code&gt; in the extra will contain the name of the file (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;text&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
&lt;td&gt;the text of the file (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Each &lt;code&gt;action&lt;/code&gt; can use different parameters:&lt;/p&gt;</description></item><item><title>Telegram</title><link>https://matrix86.github.io/driplane/en/doc/feeders/telegram/</link><pubDate>Sat, 10 Feb 2024 22:55:47 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/feeders/telegram/</guid><description>&lt;h2 id="telegram"&gt;Telegram&lt;/h2&gt;
&lt;p&gt;This feeder creates a stream using the &lt;a href="https://core.telegram.org/schema" target="_blank"&gt;Telegram API&lt;/a&gt;.&lt;br /&gt;
In order to use this feeder, you need to &lt;a href="https://core.telegram.org/api/obtaining_api_id" target="_blank"&gt;create a Telegram Application&lt;/a&gt; and get app_id and app_hash.&lt;br /&gt;
If you set the session folder the session will be stored and only the first run it will ask for the code received from the phone number specified in the config.&lt;/p&gt;
&lt;p&gt;Based on &lt;a href="https://github.com/gotd/td" target="_blank"&gt;gotd/td&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;app_id&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;app ID (see &lt;a href="https://core.telegram.org/api/obtaining_api_id" target="_blank"&gt;this&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;app_hash&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;App hash (see &lt;a href="https://core.telegram.org/api/obtaining_api_id" target="_blank"&gt;this&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;phone_number&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;Phone number of the account to use (it should contain the country code)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;session_folder&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;Path of the folder where storing the sessions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;*events = &amp;ldquo;channel_message&amp;rdquo;,&amp;ldquo;chat_message&amp;rdquo;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Imap</title><link>https://matrix86.github.io/driplane/en/doc/feeders/imap/</link><pubDate>Thu, 16 Nov 2023 20:08:45 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/feeders/imap/</guid><description>&lt;h2 id="imap"&gt;Imap&lt;/h2&gt;
&lt;p&gt;This feeder creates a stream starting from emails received on the account read by an IMAP client. It is possible to define how often the email account should be checked.&lt;br /&gt;
Every time the email inbox is parsed a Message is sent down the lane.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;host&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;Host of the IMAP server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;port&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;Port of the IMAP server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;username&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;Username of the account&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;password&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;Password of the account&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;mailbox&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;INBOX&amp;rdquo;&lt;/td&gt;
&lt;td&gt;Name of the mailbox to read&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;freq&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&lt;a href="https://golang.org/pkg/time/#ParseDuration" target="_blank"&gt;DURATION&lt;/a&gt;&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;1m&amp;rdquo;&lt;/td&gt;
&lt;td&gt;how often the email account should be checked&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;start_from_beginning&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;true&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &amp;ldquo;true&amp;rdquo; it reads all the emails in the mailbox from the beginning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;get_attachments&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;false&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &amp;ldquo;true&amp;rdquo; it reads also the attachments&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | &amp;lt;imap: host=&amp;quot;imap.gmail.com&amp;quot;, port=&amp;quot;993&amp;quot;, username=&amp;quot;test@gmail.com&amp;quot;, password=&amp;quot;xxxxx&amp;quot;, get_attachments=&amp;quot;true&amp;quot;, freq=&amp;quot;30m&amp;quot;&amp;gt; ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;h4 id="text"&gt;Text&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;main&lt;/code&gt; field of the Message will contain the email&amp;rsquo;s subject.&lt;/p&gt;</description></item><item><title>XLS</title><link>https://matrix86.github.io/driplane/en/doc/filters/xls/</link><pubDate>Thu, 16 Nov 2023 20:08:45 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/xls/</guid><description>&lt;h2 id="xls"&gt;XLS&lt;/h2&gt;
&lt;p&gt;This filter allows you to extract all the rows from a Excel file.&lt;br /&gt;
&lt;em&gt;Based on the &lt;a href="https://github.com/qax-os/excelize" target="_blank"&gt;qax-os/excelize&lt;/a&gt; library.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the field of the Message that should be used for the filter (it could be the &lt;code&gt;main&lt;/code&gt; or and extra field)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;filename&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;the filename of the XLS file to parse (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | xls(target=&amp;quot;{{ .extra_field }}&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;div class="notices warning" data-title="Attention"&gt;
The &lt;code&gt;filename&lt;/code&gt; field override the &lt;code&gt;target&lt;/code&gt;. They are mutually exclusive, so you can specify only one of them.
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The filter produces one Message for each row of the XLS file.&lt;/p&gt;</description></item><item><title>RateLimit</title><link>https://matrix86.github.io/driplane/en/doc/filters/ratelimit/</link><pubDate>Tue, 31 Jan 2023 18:50:23 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/ratelimit/</guid><description>&lt;h2 id="ratelimit"&gt;RateLimit&lt;/h2&gt;
&lt;p&gt;This filter allows you to set a rate limit on the messages that can go through it. So for example if we don&amp;rsquo;t want to limit the number of messages in a pipe to 5 messages per second we just to set the parameter &lt;code&gt;rate&lt;/code&gt; to 5.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;rate&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;0&amp;rdquo;&lt;/td&gt;
&lt;td&gt;how many event per second you want to have as rate limiter&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | ratelimit(rate=&amp;quot;5&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The filter will slow down the rate of the messages as specified on the parameter &lt;code&gt;rate&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Json</title><link>https://matrix86.github.io/driplane/en/doc/filters/json/</link><pubDate>Sun, 29 Jan 2023 18:57:01 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/json/</guid><description>&lt;h2 id="json"&gt;Json&lt;/h2&gt;
&lt;p&gt;This filter is used to extract information from a JSON doc received through the Message.&lt;br /&gt;
It is possible to use XPath query for JSON specifying a selector to search in the doc and extract data (it uses &lt;a href="https://github.com/antchfx/jsonquery" target="_blank"&gt;jsonquery&lt;/a&gt;).&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the field of the Message that should be used for the filter (it could be main or an extra field)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;selector&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
&lt;td&gt;the selector to find the data in the JSON&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | json(selector=&amp;quot;id&amp;quot;, target=&amp;quot;doc&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The filter will generate one or more Messages. It is possible to use more than 1 time this filter.&lt;br /&gt;
The field &lt;code&gt;fulltext&lt;/code&gt; will contain the original &lt;code&gt;target&lt;/code&gt; string.&lt;/p&gt;</description></item><item><title>Html</title><link>https://matrix86.github.io/driplane/en/doc/filters/html/</link><pubDate>Tue, 19 Jul 2022 23:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/html/</guid><description>&lt;h2 id="html"&gt;Html&lt;/h2&gt;
&lt;p&gt;This filter is used to extract information from an HTML page received through the Message.&lt;br /&gt;
Like jQuery for JS, we can set a selector to find in the page, extract text from the tags and the html content (we are using &lt;a href="https://github.com/PuerkitoBio/goquery" target="_blank"&gt;goquery library&lt;/a&gt; under the hood).&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the field of the Message that should be used for the filter (it could be main or an extra field)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;selector&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
&lt;td&gt;the selector to find in the HTML page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;get&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;html&amp;rdquo;&lt;/td&gt;
&lt;td&gt;what do we want to retrieve on the tags found in the selected one: &lt;code&gt;html&lt;/code&gt;, &lt;code&gt;text&lt;/code&gt;, &lt;code&gt;attr&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;attr&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
&lt;td&gt;if get is &lt;code&gt;attr&lt;/code&gt; you can define what attr name it should extract&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | html(selector=&amp;quot;.link&amp;quot;, get=&amp;quot;attr&amp;quot;, attr=&amp;quot;href&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The filter will generate one or more Messages. It is possible to use more than 1 time this filter.&lt;br /&gt;
The field &lt;code&gt;fulltext&lt;/code&gt; will contain the original &lt;code&gt;target&lt;/code&gt; string.&lt;/p&gt;</description></item><item><title>Apt</title><link>https://matrix86.github.io/driplane/en/doc/feeders/apt/</link><pubDate>Tue, 15 Mar 2022 11:38:24 +0100</pubDate><guid>https://matrix86.github.io/driplane/en/doc/feeders/apt/</guid><description>&lt;h2 id="apt-feeder"&gt;Apt feeder&lt;/h2&gt;
&lt;p&gt;This feeder can create the stream starting from an apt &lt;a href="https://wiki.debian.org/it/DebianRepository" target="_blank"&gt;repository&lt;/a&gt;. It supports also flat repositories.&lt;br /&gt;
It is possible to specify the frequency of the quering and receive a message every time a new package is published.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;url&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;URL of the apt repo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;freq&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&lt;a href="https://golang.org/pkg/time/#ParseDuration" target="_blank"&gt;DURATION&lt;/a&gt;&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;60s&lt;/td&gt;
&lt;td&gt;how often the feed should be parsed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;suite&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;stable&amp;rdquo;&lt;/td&gt;
&lt;td&gt;suite of the repo to keep under control&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;arch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&amp;quot;&lt;/td&gt;
&lt;td&gt;architecture of the repo, if empty the first arch returned by the Release file will be used&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;index&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;URL of the Packages file (it overrides the url parameter)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;insecure&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;false&lt;/td&gt;
&lt;td&gt;allow repository with insecure certificates&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | &amp;lt;apt: url=&amp;quot;http://apt.modmyi.com/dists/stable/Release&amp;quot;, insecure=&amp;quot;true&amp;quot;, freq=&amp;quot;3h&amp;quot;&amp;gt; | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;h4 id="text"&gt;Text&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;main&lt;/code&gt; field of the Message will contain the filename of the package and all the other field will be present in extra fields.&lt;/p&gt;</description></item><item><title>Elasticsearch</title><link>https://matrix86.github.io/driplane/en/doc/filters/elasticsearch/</link><pubDate>Sat, 12 Mar 2022 15:40:23 +0100</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/elasticsearch/</guid><description>&lt;h2 id="elasticsearch"&gt;ElasticSearch&lt;/h2&gt;
&lt;p&gt;This filter writes on ElasticSearch all the message it receives as input and return as output the document ID.&lt;br /&gt;
You can also specify what message&amp;rsquo;s field it should use as input.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the field of the Message that should be used for filter&amp;rsquo;s output (it could be main or an extra field)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | elasticsearch(target=&amp;quot;input_field&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;main&lt;/code&gt; field will contain the docID returned by ElasticSearch.&lt;/p&gt;</description></item><item><title>File</title><link>https://matrix86.github.io/driplane/en/doc/filters/file/</link><pubDate>Sat, 12 Mar 2022 15:33:42 +0100</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/file/</guid><description>&lt;h2 id="file"&gt;File&lt;/h2&gt;
&lt;p&gt;This filter get as input the path of a local file, read it and return the content back to the pipeline.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the field of the Message that should be used for filter&amp;rsquo;s output (it could be main or an extra field)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | file(target=&amp;quot;file_content&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The output will contain the content of the read file. Using the &lt;code&gt;target&lt;/code&gt; parameter you can specify the output field&amp;rsquo;s name.&lt;/p&gt;</description></item><item><title>Striptag</title><link>https://matrix86.github.io/driplane/en/doc/filters/striptag/</link><pubDate>Thu, 01 Jul 2021 15:35:53 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/striptag/</guid><description>&lt;h2 id="striptag"&gt;StripTag&lt;/h2&gt;
&lt;p&gt;This filter is used to remove all the HTML tags from a string.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the field of the Message that should be used for the filter (it could be main or an extra field)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | striptag(target=&amp;quot;main&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;main&lt;/code&gt; of the output &lt;code&gt;Message&lt;/code&gt; will have the text extracted from the &lt;code&gt;target&lt;/code&gt; config, stripped by all the HTML tags.&lt;/p&gt;</description></item><item><title>Timer</title><link>https://matrix86.github.io/driplane/en/doc/feeders/timer/</link><pubDate>Sat, 20 Feb 2021 18:06:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/feeders/timer/</guid><description>&lt;h2 id="timer-feeder"&gt;Timer feeder&lt;/h2&gt;
&lt;p&gt;This feeder trigger a pipeline every time the timer is fired.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;freq&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&lt;a href="https://golang.org/pkg/time/#ParseDuration" target="_blank"&gt;DURATION&lt;/a&gt;&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;60s&lt;/td&gt;
&lt;td&gt;The intervals (in duration) on how often to execute the pipeline&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;&amp;lt;timer: freq=&amp;quot;30s&amp;quot;&amp;gt; | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;h4 id="text"&gt;Text&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;main&lt;/code&gt; field of the Message will contain time in rfc3339 format.&lt;/p&gt;
&lt;h4 id="extra"&gt;Extra&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;rfc3339&lt;/td&gt;
&lt;td&gt;time in rfc3339 format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;timestamp&lt;/td&gt;
&lt;td&gt;time in Unix timestamp&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="examples"&gt;Examples&lt;/h3&gt;
&lt;div class="alert alert-warning" role="alert" data-dir="ltr"&gt;Soon&amp;hellip;&lt;/div&gt;</description></item><item><title>Folder</title><link>https://matrix86.github.io/driplane/en/doc/feeders/folder/</link><pubDate>Mon, 01 Feb 2021 13:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/feeders/folder/</guid><description>&lt;h2 id="folder-feeder"&gt;Folder feeder&lt;/h2&gt;
&lt;p&gt;This feeder can create the stream of fsnotify events for a given folder or for cloud platform storage like Amazon S3,&lt;br /&gt;
Google Drive and Dropbox.&lt;/p&gt;
&lt;p&gt;The feeder use &lt;a href="https://github.com/Matrix86/cloudwatcher" target="_blank"&gt;cloudwatcher&lt;/a&gt; to keep track of changes on the chosen directory.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;name&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;the path of the folder that it has to keep track&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;type&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;local&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the type of service to use &lt;code&gt;local&lt;/code&gt;, &lt;code&gt;dropbox&lt;/code&gt;, &lt;code&gt;gdrive&lt;/code&gt;, &lt;code&gt;s3&lt;/code&gt; or &lt;code&gt;git&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;freq&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&lt;a href="https://golang.org/pkg/time/#ParseDuration" target="_blank"&gt;DURATION&lt;/a&gt;&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;2s&lt;/td&gt;
&lt;td&gt;how often the directory should be checked for updates&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="alert alert-warning" role="alert" data-dir="ltr"&gt;Some services like Gdrive, S3 and Dropbox require additional configurations (you can check them from &lt;a href="https://github.com/Matrix86/cloudwatcher/blob/main/README.md" target="_blank"&gt;here&lt;/a&gt;).&lt;br /&gt;
You can pass them using the config file (&lt;a href="https://matrix86.github.io/driplane/doc/configuration/" target="_blank"&gt;more here&lt;/a&gt;) OR&lt;br /&gt;
define them in the rule itself: &lt;code&gt;&amp;lt;folder: name=&amp;quot;/&amp;quot;, type=&amp;quot;gdrive&amp;quot;, client_id=&amp;quot;xxx&amp;quot;, client_secret=&amp;quot;yyy&amp;quot;, token=&amp;quot;zzz&amp;quot;&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;&amp;lt;folder: name=&amp;quot;/tmp&amp;quot;, type=&amp;quot;local&amp;quot;&amp;gt; | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;h4 id="text"&gt;Text&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;main&lt;/code&gt; field of the Message will contain the filename while the &lt;code&gt;op&lt;/code&gt; extra the type of event.&lt;/p&gt;</description></item><item><title>Slack</title><link>https://matrix86.github.io/driplane/en/doc/filters/slack/</link><pubDate>Mon, 12 Oct 2020 19:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/slack/</guid><description>&lt;h2 id="slack"&gt;Slack&lt;/h2&gt;
&lt;p&gt;This filter allows you to send files, messages and download files from Slack.&lt;br /&gt;
It can be used alone or with the Slack Feeder to create a simple Slack bot for events API.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;p&gt;The following parameters are required from this filter:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;action&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;send_message&amp;rdquo;&lt;/td&gt;
&lt;td&gt;action to perform: &amp;ldquo;send_message&amp;rdquo;, &amp;ldquo;send_file&amp;rdquo;, &amp;ldquo;download_file&amp;rdquo;, &amp;ldquo;user_info&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;token&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
&lt;td&gt;Slack bot Token&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Each &lt;code&gt;action&lt;/code&gt; can use different parameters:&lt;/p&gt;
&lt;h4 id="action--send_message"&gt;action = send_message&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;to&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
&lt;td&gt;channel ID or User ID that should receive the message (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &lt;code&gt;text&lt;/code&gt; is not used you can choose which field of &lt;code&gt;Message&lt;/code&gt; to use as text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;text&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
&lt;td&gt;you can define the text of the message to send (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;blocks&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;false&lt;/td&gt;
&lt;td&gt;if true you can use the Slack template blocks (&lt;a href="https://api.slack.com/tools/block-kit-builder" target="_blank"&gt;block builder&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="action--send_file"&gt;action = send_file&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;to&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
&lt;td&gt;channel ID or User ID that should receive the message (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &lt;code&gt;filename&lt;/code&gt; is not specified you can choose which field of &lt;code&gt;Message&lt;/code&gt; has to be used as file content to send&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;filename&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
&lt;td&gt;path of the file to send (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="action--download_file"&gt;action = download_file&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;url&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
&lt;td&gt;it should contain the Slack private url for the file download (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;urlprivate&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &lt;code&gt;url&lt;/code&gt; is not specified you can choose which field of &lt;code&gt;Message&lt;/code&gt; contains the Slack private url&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;filename&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
&lt;td&gt;path of where to save the downloaded file. If not specified the file content will be inserted in the &lt;code&gt;main&lt;/code&gt; field (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="action--user_info"&gt;action = user_info&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;user&amp;rdquo;&lt;/td&gt;
&lt;td&gt;this field has to contain the USERID&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;In the output Message you can find all the user information returned by Slack:&lt;/p&gt;</description></item><item><title>Slack</title><link>https://matrix86.github.io/driplane/en/doc/feeders/slack/</link><pubDate>Tue, 06 Oct 2020 22:05:07 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/feeders/slack/</guid><description>&lt;h2 id="slack"&gt;Slack&lt;/h2&gt;
&lt;p&gt;This feeder creates a stream using the &lt;a href="https://api.slack.com/events-api" target="_blank"&gt;Slack Events API&lt;/a&gt;.&lt;br /&gt;
In order to use this feeder, you need to &lt;a href="https://api.slack.com/apps" target="_blank"&gt;create a Slack App&lt;/a&gt;, define its Bot Token scopes and finally enable the Event Subscriptions.&lt;br /&gt;
The feeder will start a webserver to receive the events, so it should be reachable by slack. If you are behind a NAT or Firewall, you can enable &lt;a href="https://theboroer.github.io/localtunnel-www/" target="_blank"&gt;localtunnel&lt;/a&gt;.&lt;br /&gt;
Based on &lt;a href="https://github.com/slack-go/slack" target="_blank"&gt;slack-go/slack&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;bot_token&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;token Bot (starting with xoxb-*)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;app_token&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;App token (starting with xapp-*)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;verification_token&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;token to verify the requests (you can find it in the Basic information section)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;addr&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;:3000&amp;rdquo;&lt;/td&gt;
&lt;td&gt;address and port in the form IP:PORT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;socket_mode&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;false&lt;/td&gt;
&lt;td&gt;enable the Socket Mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;lt_enable&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;false&lt;/td&gt;
&lt;td&gt;enable localtunnel for the server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;lt_baseurl&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;&lt;a href="https://localtunnel.me" target="_blank"&gt;https://localtunnel.me&lt;/a&gt;&amp;rdquo;&lt;/td&gt;
&lt;td&gt;URL to the Proxy server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;lt_subdomain&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;specify a subdomain to use with localtunnel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;events&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;*events&lt;/td&gt;
&lt;td&gt;comma separated event list to handle&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ignore_bot&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;td&gt;if true the bot will ignore mentions and messages created by another bot&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;*events = &amp;ldquo;app_mention&amp;rdquo;,&amp;ldquo;app_home_opened&amp;rdquo;,&amp;ldquo;app_uninstalled&amp;rdquo;,&amp;ldquo;grid_migration_finished&amp;rdquo;,&amp;ldquo;grid_migration_started&amp;rdquo;,&amp;ldquo;link_shared&amp;rdquo;,&amp;ldquo;message&amp;rdquo;,&amp;ldquo;member_joined_channel&amp;rdquo;,&amp;ldquo;member_left_channel&amp;rdquo;,&amp;ldquo;pin_added&amp;rdquo;,&amp;ldquo;pin_removed&amp;rdquo;,&amp;ldquo;reaction_added&amp;rdquo;,&amp;ldquo;reaction_removed&amp;rdquo;,&amp;ldquo;tokens_revoked&amp;rdquo;,&amp;ldquo;file_shared&amp;rdquo;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Cache</title><link>https://matrix86.github.io/driplane/en/doc/filters/cache/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/cache/</guid><description>&lt;h2 id="cache"&gt;Cache&lt;/h2&gt;
&lt;p&gt;This filter introduces a simple cache mechanism in the rule. It is a TTL based cache and it can have a local visibility (cache is only visible to the current filter) or a global visibility (cache shared across &lt;strong&gt;ALL&lt;/strong&gt; the rules).&lt;br /&gt;
If the target of the Message as input has been cached before, and his TTL is not expired, it will be dropped and not propagated to the next filter.&lt;br /&gt;
Otherwise if the target of the Message is new to the cache, it is inserted in it and propagated to the next filter.&lt;/p&gt;</description></item><item><title>Changed</title><link>https://matrix86.github.io/driplane/en/doc/filters/changed/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/changed/</guid><description>&lt;h2 id="changed"&gt;Changed&lt;/h2&gt;
&lt;p&gt;This filter is similar to the cache. It can only stop the propagation of the Message across the lane, but only if the target of the received Message is different from the previous one.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the field of the Message that should be used for the filter (it could be main or and extra field)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | changed(target=&amp;quot;original_author&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The output is not being changed. This filter can only stop or not the propagation of the Message.&lt;/p&gt;</description></item><item><title>Echo</title><link>https://matrix86.github.io/driplane/en/doc/filters/echo/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/echo/</guid><description>&lt;h2 id="echo"&gt;Echo&lt;/h2&gt;
&lt;p&gt;This filter prints the Message on the logs. It is mostly used to debug the rules.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;extra&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;false&amp;rdquo;&lt;/td&gt;
&lt;td&gt;print also all the extra fields&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | echo(extra=&amp;quot;false&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The output is not being changed. This filter prints the received Message and send it to the next filter in the rule.&lt;/p&gt;
&lt;h3 id="examples"&gt;Examples&lt;/h3&gt;
&lt;div class="alert alert-warning" role="alert" data-dir="ltr"&gt;Soon&amp;hellip;&lt;/div&gt;</description></item><item><title>File</title><link>https://matrix86.github.io/driplane/en/doc/feeders/file/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/feeders/file/</guid><description>&lt;h2 id="file-feeder"&gt;File feeder&lt;/h2&gt;
&lt;p&gt;This feeder can create the stream starting from a file. Like the &lt;code&gt;tail -f&lt;/code&gt; command it opens the specified file and propagates a data message if a line is being added to the file.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;filename&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;the path of the file that it has to keep track&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;toend&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;false&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the feeder will start to create data messages only for new added lines&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | &amp;lt;file: filename=&amp;quot;path/of/the/file.txt&amp;quot;, toend=&amp;quot;false&amp;quot;&amp;gt; | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;h4 id="text"&gt;Text&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;main&lt;/code&gt; field of the Message will contain the new read line.&lt;/p&gt;</description></item><item><title>Format</title><link>https://matrix86.github.io/driplane/en/doc/filters/format/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/format/</guid><description>&lt;h2 id="format"&gt;Format&lt;/h2&gt;
&lt;p&gt;This filter is used to format the received Message. It is based on&lt;br /&gt;
&lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;Go templates&lt;/a&gt; and it can load templates from the &lt;code&gt;template_path&lt;/code&gt;&lt;br /&gt;
directory specified in the configuration file. All &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/#sprig-functions"&gt;Sprig functions&lt;/a&gt; are available.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;type&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;text&amp;rdquo;&lt;/td&gt;
&lt;td&gt;specify the type of template to use : &lt;code&gt;&amp;quot;text&amp;quot;&lt;/code&gt; or &lt;code&gt;&amp;quot;html&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;template&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;a template could be specified directly here, instead of load it from file (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;file&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;load the template from file (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the field of the Message that should be used for the filter (it could be main or an extra field)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;In the template is allowed to use all the fields of the received Message: main or extra.&lt;/p&gt;</description></item><item><title>Hash</title><link>https://matrix86.github.io/driplane/en/doc/filters/hash/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/hash/</guid><description>&lt;h2 id="hash"&gt;Hash&lt;/h2&gt;
&lt;p&gt;This filter is used to search or extract hashes from a Message.&lt;br /&gt;
Supported types of hashes are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MD5&lt;/li&gt;
&lt;li&gt;SHA1&lt;/li&gt;
&lt;li&gt;SHA256&lt;/li&gt;
&lt;li&gt;SHA512&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the field of the Message that should be used for the filter (it could be main or an extra field)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;extract&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;false&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &lt;code&gt;&amp;quot;true&amp;quot;&lt;/code&gt; the main field of the output Message will be the extracted hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;md5&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;true&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &lt;code&gt;&amp;quot;false&amp;quot;&lt;/code&gt; md5 hashes will be ignored&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;sha1&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;true&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &lt;code&gt;&amp;quot;false&amp;quot;&lt;/code&gt; sha1 hashes will be ignored&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;sha256&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;true&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &lt;code&gt;&amp;quot;false&amp;quot;&lt;/code&gt; sha256 hashes will be ignored&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;sha512&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;true&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &lt;code&gt;&amp;quot;false&amp;quot;&lt;/code&gt; sha512 hashes will be ignored&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | hash(target=&amp;quot;description&amp;quot;, extract=&amp;quot;true&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;If the &lt;code&gt;extract&lt;/code&gt; parameter is &amp;ldquo;false&amp;rdquo;, the received Message will be propagated only if at least one hash is found in it.&lt;br /&gt;
Otherwise, if &lt;code&gt;extract&lt;/code&gt; is &amp;ldquo;true&amp;rdquo; and the Message contains one or more hashes, the &lt;code&gt;main&lt;/code&gt; field of the propagated Message will contain only the extracted hash.&lt;/p&gt;</description></item><item><title>Http</title><link>https://matrix86.github.io/driplane/en/doc/filters/http/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/http/</guid><description>&lt;h2 id="http"&gt;HTTP&lt;/h2&gt;
&lt;p&gt;This filter allows you to send HTTP requests. When a &lt;code&gt;Message&lt;/code&gt; arrives to the filter, we can decide if use the &lt;code&gt;main&lt;/code&gt; field of the &lt;code&gt;Message&lt;/code&gt; as URL on the request, or its content for the HTTP data.&lt;br /&gt;
This behaviour can be handled with the parameters.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;url&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;URL of the web page. It is possible use &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt; to use fields of the &lt;code&gt;Message&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;download_to&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;path of where to download the file. It is possible use &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt; to use fields of the &lt;code&gt;Message&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;text_only&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;false&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &amp;ldquo;true&amp;rdquo; it removes all the tags from the body response&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;method&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;GET&amp;rdquo;&lt;/td&gt;
&lt;td&gt;HTTP method to use on the request&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;headers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;JSON&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;Headers to use in the request&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;data&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;JSON&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;POST fields to send with the request (it&amp;rsquo;s not possible to use in combination with &lt;code&gt;rawData&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;rawData&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;raw body of the request (it&amp;rsquo;s not possible to use in combination with &lt;code&gt;data&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;status&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;the filter will propagate the Message only if the returned status has the specified value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;cookies&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;Path of the JSON file containing the cookies to use&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | http(url=&amp;quot;{{ .main }}&amp;quot;, cookies=&amp;quot;exported.json&amp;quot;, headers=&amp;quot;{\&amp;quot;Content-type\&amp;quot;: \&amp;quot;application/json\&amp;quot;}&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;If the request was successful, the output &lt;code&gt;Message&lt;/code&gt; will have the &lt;code&gt;main&lt;/code&gt; field set to the HTTP body response. If the &lt;code&gt;status&lt;/code&gt; is set, and the response http status is different from it, the &lt;code&gt;Message&lt;/code&gt; will be dropped.&lt;/p&gt;</description></item><item><title>Mail</title><link>https://matrix86.github.io/driplane/en/doc/filters/mail/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/mail/</guid><description>&lt;h2 id="mail"&gt;Mail&lt;/h2&gt;
&lt;p&gt;This filter allows you to send an e-mail. When a &lt;code&gt;Message&lt;/code&gt; arrives to the filter, we can decide if use the &lt;code&gt;main&lt;/code&gt; field of the &lt;code&gt;Message&lt;/code&gt; as URL on the request, or its content for the HTTP data.&lt;br /&gt;
This behaviour can be handled with the parameters.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;body&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;the body of the e-mail (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;username&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;username for the host authentication&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;password&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;password for the host authentication&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;host&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;host server used to send the e-mail&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;port&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;port of the host server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;fromAddr&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;source e-mail address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;fromName&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;source name address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;to&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;destination e-mail address (supports multi-destination, comma separated)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;subject&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;subject field of the e-mail to send&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;use_auth&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;false&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &amp;ldquo;true&amp;rdquo; the sendmail server will receive the credentials specified in &lt;code&gt;username&lt;/code&gt; and &lt;code&gt;password&lt;/code&gt; fields&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | http(url=&amp;quot;{{ .main }}&amp;quot;, cookies=&amp;quot;exported.json&amp;quot;, headers=&amp;quot;{\&amp;quot;Content-type\&amp;quot;: \&amp;quot;application/json\&amp;quot;}&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;div class="notices success" data-title="Remember"&gt;
Every default&amp;rsquo;s value can be set in the configuration, creating a section with the name of the&lt;code&gt;Filter&lt;/code&gt;/&lt;code&gt;Feeder&lt;/code&gt;.&lt;br /&gt;
&lt;a href="https://matrix86.github.io/configuration"&gt;more info&lt;/a&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The input &lt;code&gt;Message&lt;/code&gt; is always propagated to the next filter without changes.&lt;/p&gt;</description></item><item><title>MIME type</title><link>https://matrix86.github.io/driplane/en/doc/filters/mimetype/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/mimetype/</guid><description>&lt;h2 id="mime-type"&gt;MIME type&lt;/h2&gt;
&lt;p&gt;This filter allows you to detect the MIME type of a file and its extension.&lt;br /&gt;
&lt;em&gt;Based on the &lt;a href="https://github.com/gabriel-vasile/mimetype" target="_blank"&gt;gabriel-vasile/mimetype&lt;/a&gt; library.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the field of the Message that should be used for the filter (it could be the &lt;code&gt;main&lt;/code&gt; or and extra field)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;filename&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;the filename of the file to detect (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | mime(target=&amp;quot;{{ .extra_field }}&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;div class="notices warning" data-title="Attention"&gt;
The &lt;code&gt;filename&lt;/code&gt; field override the &lt;code&gt;target&lt;/code&gt;. They are mutually exclusive, so you can specify only one of them.
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The propagated Message will contain the mimetype&amp;rsquo;s string in the &lt;code&gt;main&lt;/code&gt; field and the extension in the extra field &lt;code&gt;mimetype_ext&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Number</title><link>https://matrix86.github.io/driplane/en/doc/filters/number/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/number/</guid><description>&lt;h2 id="number"&gt;Number&lt;/h2&gt;
&lt;p&gt;This filter allows you to treat a string from the input Message as numeric value and apply some operator on it (for example, check if this field contains a number greater than X).&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the field of the Message that should be used for the filter (it could be main or and extra field)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;op&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
&lt;td&gt;Compare operator to use for the numeric value (&amp;quot;&amp;gt;&amp;quot;, &amp;ldquo;&amp;gt;=&amp;rdquo;, &amp;ldquo;&amp;lt;&amp;rdquo;, &amp;ldquo;&amp;lt;=&amp;rdquo;, &amp;ldquo;!=&amp;rdquo;, &amp;ldquo;==&amp;rdquo;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;value&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;quot;&amp;quot;&lt;/td&gt;
&lt;td&gt;It has to be a numeric value and it is the number to use for the comparison&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | number(target=&amp;quot;num_field&amp;quot;, op=&amp;quot;&amp;gt;=&amp;quot;, value=&amp;quot;44&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;If the comparison is verified the received Message will be propagated.&lt;/p&gt;</description></item><item><title>Override</title><link>https://matrix86.github.io/driplane/en/doc/filters/override/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/override/</guid><description>&lt;h2 id="override"&gt;Override&lt;/h2&gt;
&lt;p&gt;This filter allows you to change a field of a Message, before sending it to the next filter. &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;Templates&lt;/a&gt; with &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/#sprig-functions"&gt;Sprig functions&lt;/a&gt; can be used.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;name&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;name of the field to change (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;value&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;new value to assign to the Message&amp;rsquo;s field specified (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | override(name=&amp;quot;description&amp;quot;, value=&amp;quot;{{ .title }}&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The propagated Message will be identical to the original, with only the specified field changed.&lt;/p&gt;</description></item><item><title>Pdf</title><link>https://matrix86.github.io/driplane/en/doc/filters/pdf/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/pdf/</guid><description>&lt;h2 id="pdf"&gt;Pdf&lt;/h2&gt;
&lt;p&gt;This filter allows you to extract plain text from a PDF file.&lt;br /&gt;
&lt;em&gt;Based on the &lt;a href="https://github.com/ledongthuc/pdf" target="_blank"&gt;ledongthuc/pdf&lt;/a&gt; library.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the field of the Message that should be used for the filter (it could be the &lt;code&gt;main&lt;/code&gt; or and extra field)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;filename&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;the filename of the PDF file to parse (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | pdf(target=&amp;quot;{{ .extra_field }}&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;div class="notices warning" data-title="Attention"&gt;
The &lt;code&gt;filename&lt;/code&gt; field override the &lt;code&gt;target&lt;/code&gt;. They are mutually exclusive, so you can specify only one of them.
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The propagated Message contains the plain text of the input PDF file (&lt;code&gt;fulltext&lt;/code&gt; will be set to the file name received as input).&lt;/p&gt;</description></item><item><title>Random</title><link>https://matrix86.github.io/driplane/en/doc/filters/random/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/random/</guid><description>&lt;h2 id="random"&gt;Random&lt;/h2&gt;
&lt;p&gt;This filter is used to inject an extra field with a random number in the propagated &lt;code&gt;Message&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;output&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the field of the propagated &lt;code&gt;Message&lt;/code&gt; that will contain the random number&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;min&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;0&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the min value of the extracted number is &lt;code&gt;min&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;max&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;999999&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the max value of the extracted number is &lt;code&gt;max&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | random(output=&amp;quot;random_field&amp;quot;, min=&amp;quot;9&amp;quot;, max=&amp;quot;90&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The output &lt;code&gt;Message&lt;/code&gt; will be equal to the input, but it will also include the new random field.&lt;/p&gt;</description></item><item><title>RSS</title><link>https://matrix86.github.io/driplane/en/doc/feeders/rss/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/feeders/rss/</guid><description>&lt;h2 id="rss"&gt;RSS&lt;/h2&gt;
&lt;p&gt;This feeder creates a stream starting from a feed &lt;code&gt;RSS&lt;/code&gt;, &lt;code&gt;ATOM&lt;/code&gt; or &lt;code&gt;JSON&lt;/code&gt;.&lt;br /&gt;
It is based on &lt;a href="https://github.com/mmcdole/gofeed" target="_blank"&gt;gofeed&lt;/a&gt; so you can refer to it for more info and supported formats.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;url&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;URL of the feed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;freq&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&lt;a href="https://golang.org/pkg/time/#ParseDuration" target="_blank"&gt;DURATION&lt;/a&gt;&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;60s&lt;/td&gt;
&lt;td&gt;how often the feed should be parsed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;start_from_beginning&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;false&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &amp;ldquo;true&amp;rdquo; it starts to parse the feed from the beginning (the first time it will ignore the pubdate field of the feed)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ignore_pubdate&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;false&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &amp;ldquo;true&amp;rdquo; it ignores the pubdate and it returns all the feed content every time&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | &amp;lt;rss: url=&amp;quot;https://example.rss&amp;quot;, freq=&amp;quot;5s&amp;quot;, start_from_beginning=&amp;quot;false&amp;quot;&amp;gt; | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;h4 id="text"&gt;Text&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;main&lt;/code&gt; field of the Message will contain the &lt;code&gt;item.Title&lt;/code&gt; string of the &lt;code&gt;gofeed.Item&lt;/code&gt; struct.&lt;/p&gt;</description></item><item><title>System</title><link>https://matrix86.github.io/driplane/en/doc/filters/system/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/system/</guid><description>&lt;h2 id="system"&gt;System&lt;/h2&gt;
&lt;p&gt;This filter allows you to exec a command on the host machine. The received Message can be used to create the command to launch.&lt;br /&gt;
It supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt; with &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/#sprig-functions"&gt;Sprig functions&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;cmd&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;command line to exec for each received Message (supports &lt;a href="https://matrix86.github.io/driplane/en/doc/rules/templates/"&gt;templates&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | system(cmd=&amp;quot;echo '{{ .author }} wrote {{ .main }}' &amp;gt;&amp;gt; logs.txt&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;The propagated Message will contain the output of the command if it is provided, and it is not failed.&lt;/p&gt;</description></item><item><title>Text</title><link>https://matrix86.github.io/driplane/en/doc/filters/text/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/text/</guid><description>&lt;h2 id="text"&gt;Text&lt;/h2&gt;
&lt;p&gt;This filter searches or extracts strings from the received Message. It can be used with a regular expression or a simple string.&lt;br /&gt;
If the string is found, the condition is matched and the Message is propagated to the next filter.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the field of the Message that should be used for the filter (it could be main or and extra field)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;regexp&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;false&lt;/td&gt;
&lt;td&gt;the pattern field is a regular expression&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;extract&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;false&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &amp;ldquo;true&amp;rdquo; the &lt;code&gt;main&lt;/code&gt; field of the propagated Message will contain the extracted string (it can be used only if &lt;code&gt;regexp&lt;/code&gt; parameter is set true)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;pattern&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;specifies the pattern that should be matched on the Message to check the condition&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | text(target=&amp;quot;description&amp;quot;, pattern=&amp;quot;(#[^\\s]+)&amp;quot;, regexp=&amp;quot;true&amp;quot;, extract=&amp;quot;true&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;If the &lt;code&gt;extract&lt;/code&gt; parameter is &amp;ldquo;false&amp;rdquo;, the received Message will be propagated only if the specified &lt;code&gt;pattern&lt;/code&gt; is matched in the &lt;code&gt;target&lt;/code&gt; field of the Message.&lt;br /&gt;
Otherwise if &lt;code&gt;extract&lt;/code&gt; is &amp;ldquo;true&amp;rdquo; (only &lt;code&gt;regexp&lt;/code&gt; can be used in this case), and one or more strings matches with the pattern, the &lt;code&gt;main&lt;/code&gt; field of the propagated Message will contain only the matched string.&lt;/p&gt;</description></item><item><title>Twitter</title><link>https://matrix86.github.io/driplane/en/doc/feeders/twitter/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/feeders/twitter/</guid><description>&lt;h2 id="twitter"&gt;Twitter&lt;/h2&gt;
&lt;p&gt;This feeder creates a stream from tweets. It is possible to define the keywords, or the users to follow.&lt;br /&gt;
Based on &lt;a href="https://matrix86.github.io/driplane/github.com/g8rswimmer/go-twitter/v2"&gt;go-twitter&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;bearerToken&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;&lt;a href="https://developer.twitter.com/en/docs/twitter-api/getting-started/guide" target="_blank"&gt;Twitter Auth&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;keywords&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;comma separated keywords that should match on the tweets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;users&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;comma separated users list&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;rules&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;set multiple custom rules separated by the char&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;languages&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;filter by language (comma separated languages)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;disable_retweet&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;false&amp;rdquo;&lt;/td&gt;
&lt;td&gt;don&amp;rsquo;t include retweets in the stream&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;disable_quoted&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;false&amp;rdquo;&lt;/td&gt;
&lt;td&gt;don&amp;rsquo;t include quoted tweets in the stream&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | &amp;lt;twitter: users=&amp;quot;goofy, mickeymouse&amp;quot;,keywords=&amp;quot;movie, cartoon&amp;quot;, rules=&amp;quot;rule1:movie OR cartoon|rule2:mickey mouse OR pluto&amp;quot;&amp;gt; | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;h4 id="text"&gt;Text&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;main&lt;/code&gt; field of the Message will contain:&lt;/p&gt;</description></item><item><title>Url</title><link>https://matrix86.github.io/driplane/en/doc/filters/url/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/filters/url/</guid><description>&lt;h2 id="url"&gt;Url&lt;/h2&gt;
&lt;p&gt;This filter is used to search or extract URLs from a Message.&lt;br /&gt;
Currently supported types of URLs are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;http/s&lt;/li&gt;
&lt;li&gt;ftp&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;main&amp;rdquo;&lt;/td&gt;
&lt;td&gt;the field of the Message that should be used for the filter (it could be main or an extra field)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;http&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;true&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &amp;ldquo;false&amp;rdquo;, &lt;code&gt;http&lt;/code&gt; scheme urls are ignored&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;https&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;true&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &amp;ldquo;false&amp;rdquo;, &lt;code&gt;https&lt;/code&gt; scheme urls are ignored&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ftp&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;true&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &amp;ldquo;false&amp;rdquo;, &lt;code&gt;ftp&lt;/code&gt; scheme urls are ignored&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;extract&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;true&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &amp;ldquo;true&amp;rdquo;, the &lt;code&gt;main&lt;/code&gt; field of the propagated Message will contain the found URL&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | url(extract=&amp;quot;true&amp;quot;) | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;p&gt;If the &lt;code&gt;extract&lt;/code&gt; parameter is &amp;ldquo;false&amp;rdquo;, the received Message will be propagated only if at least one URL is found in it.&lt;br /&gt;
Otherwise, if &lt;code&gt;extract&lt;/code&gt; is &amp;ldquo;true&amp;rdquo; and the Message contains one or more URLs, the &lt;code&gt;main&lt;/code&gt; field of the propagated Message will contain only the extracted URLs.&lt;/p&gt;</description></item><item><title>Web</title><link>https://matrix86.github.io/driplane/en/doc/feeders/web/</link><pubDate>Wed, 16 Sep 2020 22:38:02 +0200</pubDate><guid>https://matrix86.github.io/driplane/en/doc/feeders/web/</guid><description>&lt;h2 id="web"&gt;Web&lt;/h2&gt;
&lt;p&gt;This feeder creates a stream starting from a web page. It is possible to define how often the page should be downloaded and parsed.&lt;br /&gt;
Every time the page is parsed a Message is sent down the lane.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;url&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;URL of the web page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;freq&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&lt;a href="https://golang.org/pkg/time/#ParseDuration" target="_blank"&gt;DURATION&lt;/a&gt;&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;60s&lt;/td&gt;
&lt;td&gt;how often the page should be parsed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;text_only&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;BOOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;false&amp;rdquo;&lt;/td&gt;
&lt;td&gt;if &amp;ldquo;true&amp;rdquo; it removes all the tags from the page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;method&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;GET&amp;rdquo;&lt;/td&gt;
&lt;td&gt;HTTP method to use on the requests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;headers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;JSON&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;Headers to use in the request&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;data&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;JSON&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;POST fields to send with the requests (it&amp;rsquo;s not possible to use in combination with &lt;code&gt;rawData&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;rawData&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;raw body of the requests (it&amp;rsquo;s not possible to use in combination with &lt;code&gt;data&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;status&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;the filter will propagate the Message only if the returned status is this&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;cookies&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;STRING&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;empty&lt;/td&gt;
&lt;td&gt;Path of the JSON file containing the cookies to use&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="notices info" data-title="Example"&gt;
&lt;code&gt;... | &amp;lt;web: url=&amp;quot;https://example.com&amp;quot;, freq=&amp;quot;30m&amp;quot;, status=&amp;quot;200&amp;quot;, cookies=&amp;quot;/path/to/exported.json&amp;quot;&amp;gt; | ...&lt;/code&gt;
&lt;/div&gt;
&lt;h3 id="output"&gt;Output&lt;/h3&gt;
&lt;h4 id="text"&gt;Text&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;main&lt;/code&gt; field of the Message will contain the HTML source or the text of the website if the &lt;code&gt;text_only&lt;/code&gt; parameter is set to true.&lt;/p&gt;</description></item></channel></rss>