Official Agent Suggestions Thread

(Started from discussions in #344)
Official 'suggest an agent' thread for Huginn!!
Have a cool idea for an agent that you want to see implemented?

Firstly, please check to see if the agent is already on the list.
Also have a quick look through the Issues to make sure it's not already being worked on.
Comment on this thread and we will add it to the list below!
If the agent is already on this list but you still want to throw extra support behind it, feel free to comment with your +1

Want to work on one of the agents on the list?

Create a new issue/pull request to discuss it and reference this issue so we can reference it on the list below and mark it as being in progress.
If there is already an issue reference and it's closed, tag one of us to reopen the issue for you.

Agent Suggestions
(Note: This list should be maintained in alphabetical order, ticked items mean in progress/actively being worked on, ticked items should be moved to 'in progress' list)
In Progress

[x] Delayed Reaction Agent (#174, #197?)
[x] Event Mixer Agent (#262)
[x] @KenYN's Time Gateway Agent (#351)
[x] Real RSS Agent (#11, #203)

Backlog

[x] AfterShip Agent (#295)
[ ] AgentCreatorAgent(#459)
[ ] AgentDiagnosticAgent(#459)
[ ] App.net support (incl. for Broadcasts and other Channels)
[ ] Bitcoin Agent - send and receive Bitcoin payments
[ ] Bitcoin Spending Agent (#183)
[ ] Boxcar support for sending push notification messages to iOS devices
[x] CalendarAgent (#459)
[ ] CalendarOutputAgent (like DataOutputAgent; I would probably write one - @knu)
[ ] Clipper Agent (#66)
[ ] DeviantArt Agent (#289)
[x] Dropbox Agent (#321)
[ ] Evernote Agent (#320)
[ ] Fancy Hands Agent (#319)
[ ] Feedly support (get marked for later)
[ ] Geofencing Agent (#5)
[ ] GitHub agent see https://github.com/peter-murach/github
[ ] Gmail Agent (#10)
[x] Google Calendar Agent (#344)
[ ] Google Diff Match Patch support http://code.google.com/p/google-diff-match-patch/
[ ] Google Search results (changes in SERP for specified keyword and/or specified url)
[ ] Google Spreadsheets
[ ] Hubot Agent (#352)
[ ] IFTTT -> Huginn Bridge Agent (#331)
[ ] IRC Agent (#113)
[ ] A Jabber Agent that listens for incoming messages and spits them out as Events
[ ] Naive Bayes Agent - classify events based on training data
[ ] MailFetching Agent (#129)
[ ] Mqtt subscriber/publisher (see http://mqtt.org)
[ ] Monitoring 'acceleration/deceleration' of values (#178)
[ ] PagerDuty - trigger PagerDuty incidents based on events, or take different actions based on incoming PagerDuty incidents.
[ ] Pocket support ( put something into read queue)
[ ] Readability support ( put something into read later)
[ ] Reddit Agent (#16)
[ ] RescueTime support (detect/report productivity or lack thereof)
[ ] Trakt.tv Agent http://trakt.tv/api-docs
[ ] Tumblr Agent (#290)
[x] Website status monitoring (alert when website is down)
[ ] Websockets Agent (#192)
[ ] Whois tracking (detect changes in whois details for a domain)
[ ] WSDL-defined web-service Agent
[ ] Zinc.io Agent

Done

[x] CommanderAgent (AgentRunnerAgent #459 -> #570)
[x] Pushover support (#233)

Similar services to Huginn (for inspiration)

https://github.com/cantino/huginn/wiki/Similar-or-Complimentary-to-Huginn

I would be interested in Podio agent with similar functionnality as provided in Zapier.

I'm looking to use huginn as a local stand-in for IFTTT type of functionality.  I just prefer to have it all on my own servers.
I already use node-red (http://nodered.org/) for connectivity between my various home sensors and actuators.  Data comes in on TCP sockets, and is routed to charting apps like graphite/grafana, or to a local data store, to other APIs (like turning on/off X10 devices), or sometimes to external apps like Xively,
Has anyone thought about or have any ideas about how these two applications might work together?
Can huginn agents work with TCP Sockets?
Thanks for any tips,
Chris.

Hey @TinajaLabs, nodered looks quite interesting.  We have a MQTTAgent that I believe people use for home automation.  It would also be straightforward to add TCP support to Huginn, someone just needs to finish https://github.com/cantino/huginn/pull/111. You might ask @CloCkWeRX or @knu about MQTT.

There is already a JabberAgent that can send Jabber messages but the opposite is missing.
An Agent that listens for incoming messages and spits them out as event would be cool!

Would a ZoneMinder agent be possible?

@K1773R That would likely be pretty straightforward to add.
@mstinaff Probably?  Assuming ZoneMinder has a reasonable API.

@K1773R +1

Hey! I'm thinking about writing a Firebase agent. Are there any existing agents that interact with databases that I might want to look at for reference?

@alias1 @cantino Maybe the dropbox agent should be marked as done, cause of https://github.com/cantino/huginn/pull/582 and https://github.com/cantino/huginn/pull/572?

Yup @bennlich, thanks!

@bennlich A Firebase Agent would be awesome.  Want to make a new issue to discuss it?

Done! https://github.com/cantino/huginn/issues/700

Could you add my Jabber idea (above) to the Backlog?

Added it @K1773R, thx!

I am short on time but have a scant amount of cash and would love to help things along, especially w/ Google sheets and zinc.io work. Is there a good way I could sort of microinvest in the community getting progress on these? Bountify? LMK!

If you checkout the main repo read me there should be a link to one we're currently using. From memory it's bountysource.
—
Sent from Mailbox
On Fri, Mar 6, 2015 at 5:46 AM, reilly3000<EMAIL_ADDRESS>wrote:

I am short on time but have a scant amount of cash and would love to help things along, especially w/ Google sheets and zinc.io work. Is there a good way I could sort of microinvest in the community getting progress on these? Bountify? LMK!
Reply to this email directly or view it on GitHub:
https://github.com/cantino/huginn/issues/353#issuecomment-77424503

cool thanks!
On Thu, Mar 5, 2015 at 12:11 PM, alias1<EMAIL_ADDRESS>wrote:

If you checkout the main repo read me there should be a link to one we're
currently using. From memory it's bountysource.
--
Sent from Mailbox
On Fri, Mar 6, 2015 at 5:46 AM, reilly3000<EMAIL_ADDRESS>wrote:

I am short on time but have a scant amount of cash and would love to
help things along, especially w/ Google sheets and zinc.io work. Is there
a good way I could sort of microinvest in the community getting progress on
these? Bountify? LMK!
Reply to this email directly or view it on GitHub:
https://github.com/cantino/huginn/issues/353#issuecomment-77424503

--
Reply to this email directly or view it on GitHub
https://github.com/cantino/huginn/issues/353#issuecomment-77441856.

Hello
Great tools!
I would suggest a Docker installation for ease (https://www.docker.com)
Regards

@xmehaut https://registry.hub.docker.com/u/cantino/huginn/

Thanks Andrew for the link
Envoyé de mon iPhone

Le 6 avr. 2015 à 01:12, Andrew Cantino<EMAIL_ADDRESS>a écrit :
@xmehaut https://registry.hub.docker.com/u/cantino/huginn/
—
Reply to this email directly or view it on GitHub.

Is there a plan for google+ agent?

@MartinDelille Not currently on the list, but you could ask us to add one.  Can you share the use cases in your mind?  IIRC, Google+ API is basically read-only.  Is that still the case?

I just installed huginn for the first time and am playing around with it. An instagram agent would be great :)

That'd be a great contribution if someone wants to build it! :smile:

Thanks @cantino
I am just getting into huginn, so it might be a while... but if I can figure out how to implement the instagram api, I will.

I just installed huginn. An emacsclient agent would be great. The agent could place an orgmode agenda entry for emails of wheather alarms...

That'd be interesting @trenkert.

+1 to agents for Pocket and Reddit especially, but also IRC and an IFTTT "bridge".

An amazing idea would be to create an agent that sends notifications to smartphones and such.
For now I think the easiest is to use : https://pushover.net/ and create an agent based on their API.

@farfeduc We already have an agent for http://pushbullet.com does pushover do anything different?

@dsander I guess it is quite similar. I did not know Pushbullet before. Thanks for sharing it.
It seems though that Pushbullet is free. Pushover is not.
I'll try and tell you if it's what I was searching for. Thanks !

We already have PushoverAgent as well as PushbulletAgent.  You can even use PostAgent without them as long as they have REST API.

What about an OpenHAB 2 / Eclipse SmartHome Agent?
Imagine Huginn controll your lighting, locks, thermostats, cameras in your home..

Hey @LorbusChris, I think that'd be a great contribution if you want to work on it!

It'd be awesome if there was an agent to interact with different ownCloud features, especially the core file functionality.

I was looking for a pocket agent too but there are two work-arounds.
First is to use IFTTT to put an RSS feed into pocket (which I was using wth yahoo pipes).
second is to use the email agent to send to<EMAIL_ADDRESS>(you have to register the address sent from with your pocket account first)
I'm trying both at the moment - both seem reliable but first allows you to add tags on the way

@johnleeming those both seem like good solutions unless someone feels like adding a PocketAgent.

I suggest http://hub.docker.com so we could act when our docker images are pushed to the registry.
See https://docs.docker.com/docker-hub/builds/#webhooks

Maybe put OpenHAB 2 on the list. Its not just MQTT, its got its own API. Their WebUI demonstrates the use of it: github.com/openhab/smarthome.paperui
Once OpenHAB2 is out in a stable release, I will come around and set up an agent, but if anyone would like to start with it now, it think having a look at their Paper WebUI is the right way to start.

I think currency rate exchange agent would be useful.

@MOZGIII This can be done relatively simple via the WebsiteAgent and one of the services in the following link: http://stackoverflow.com/questions/3139879/how-do-i-get-currency-exchange-rates-via-an-api-such-as-google-finance

Yeah, and there is @RubyMoney which provides enough abstraction anf functionalinty to work with money relatively simple. I haven't got the time to implement this stuff yet however.

If no one's currently working on the evernote agent, I'd like to implement it. A couple questions: Does it make sense to break it into two agents - one for reading and one for writing notes? Are there any other agents I should look at for reference, or things I should keep in mind? I'm very new to this project, so I appreciate any guidance anyone might have. Thanks!

Hey @bencornelis, I'm not aware of anyone working on it.  Please do!  I think one Agent is probably cleaner.  I'd suggest that it have a "mode" switch for update vs. read.

Great, I'll try it with one agent. In case anyone has any other thoughts - #1010.

I like to give the hint, that most people that are interested in huginn might have an special interest in selfhosting and thus open source services. Usually this projects implement standard interfaces for read/write data or trigger events (RSS, caldav, cardav, ...).
This said, my interest would be write/post agents:

wallabag - v2 will contain an API
piwik
Diaspora - they are working on an API
tinytinyrss
kanboard or taskboard
etherpad
redmine or trac
SIP/VoIP
mediagoblin

Also read/trigger for  some open standards would be nice:

podcast / videocast rss feeds
open311 - civic reporting
CKAN - Open Data repositories

I hope this isn't to broad, but might give some ideas of what people might be interested in. Unfortunatly I'm not skilled in RoR :-/

@Matthias84, thanks for the feedback. We'd love to have you involved with the project if you'd like to learn some Rails.

An iCal agent for pulling calendar feeds (in particular Google Calendar feeds, because they'll be terminating the XML feeds on 18 November 2015) and doing things with the entries.

Cool idea
On Friday, October 2, 2015, The Doctor<EMAIL_ADDRESS>wrote:

An iCal agent for pulling calendar feeds (in particular Google Calendar
feeds, because they'll be terminating the XML feeds on 18 November 2015)
and doing things with the entries.
—
Reply to this email directly or view it on GitHub
https://github.com/cantino/huginn/issues/353#issuecomment-145183587.

My suggestion for a new agent is an agent being able to filter similar texts based on percentage similarity between two strings like the PHP Similar_Text() function (http://php.net/manual/en/function.similar-text.php).
This is specially useful for an scenario where we have different RSS feeds as a sources and we want to create a new RSS filtering the items not repeated and the ones that are really different (depending on the percentage similarity/difference that we set on the agent configuration).
De Duplication Agent only filters by unique events. Not sure if we should create a new agent or upgrade the current DeDuplicationAgent.
What do you think guys?

@jn11 I like to extend your idea, that (expanded) URLs might be useful to filter e.g. social media. Sounds like extensions to DeDublicationAgent to me?

Here's a use case I have: I want to be able to hit an API endpoint that issues an HTTP redirect to some image with a long random URL, and do something with the image when its URL changes.
As far as I can tell this needs two bits of functionality:

A "changed" agent, to watch to see if something changed
An HTTP agent, to actually make the request to put the image into an event (this could possibly be folded into the existing WebsiteAgent)

Thoughts?

Hey @strugee. I don't think we have an Agent right now that can fetch a file (or do a HEAD request?) and return the final URL directly, but you might be able to use the uri_expand Liquid filter to fetch the URL and return the final URL, then pass that to a ChangeDetectorAgent.

@cantino thanks! Seems like we need some new code :)

Sometimes we want to have completely static website (hosten on S3 or other static sites hosting), but we need to have there web form (e.g. contact form). This form need some HTTP server where browsers can send POST data and this server can be Huginn.
Agent for this could be modified WebHook, but it should have some specifics: It should support HTTP POST request send by HTML forms (so no JSON) and some optional security checks - validate referer, support for Recaptha, etc.

For the JSON part, agents that accept web requests can handle both "application/x-www-form-urlencoded" and "application/json" payloads.

When creating a web form, reCAPTCHA seemed to me like a good idea, so I implemented it as above!

Aha, nice it already support application/x-www-form-urlencoded! Also it
could support multipart/form-data to be able to process files uploads, if
Huginn is able to process files.
Jan Pobořil
2015-11-12 4:34 GMT-06:00 Akinori MUSHA<EMAIL_ADDRESS>
When creating a web form, reCAPTCHA seemed to me like a good idea, so I
implemented it as above!
—
Reply to this email directly or view it on GitHub
https://github.com/cantino/huginn/issues/353#issuecomment-156064991.

The enctype multipart/form-data is also already supported, but since WebhookAgent currently does not handle binary data, it chokes on file upload.  Actually there's no way to encode arbitrary binary data into a JSON payload.  We'll have to define how an uploaded file should be encoded in WebhookAgent.

Base64?
—
Sent from Mailbox
On Thu, Nov 12, 2015 at 10:31 PM, Akinori MUSHA<EMAIL_ADDRESS>wrote:

The enctype multipart/form-data is also already supported, but since WebhookAgent currently does not handle binary data, it chokes on file upload.  Actually there's no way to encode arbitrary binary data into a JSON payload.  We'll have to define how an uploaded file should be encoded in WebhookAgent.
Reply to this email directly or view it on GitHub:
https://github.com/cantino/huginn/issues/353#issuecomment-156079634

Hi,
It would be nice to have the opportunity to use Huginn in order to do a search over a search engine inside a website in order to receive news entries in the website.
For insteance on this website : http://www.worldbank.org/ if Huginn can make a request to http://search.worldbank.org/all?qterm=france&op= and have the result it would be great.
What do you think about it ?
Sincerely

That should be possible currently with the web agent I believe.
—
Sent from Mailbox
On Fri, Nov 20, 2015 at 10:15 PM, pierrehegr<EMAIL_ADDRESS>wrote:

Hi,
It would be nice to have the opportunity to use Huginn in order to do a search over a search engine inside a website in order to receive news entries in the website.
For insteance on this website : http://www.worldbank.org/ if Huginn can make a request to http://search.worldbank.org/all?qterm=france&op= and have the result it would be great.
What do you think about it ?
Sincerely
Reply to this email directly or view it on GitHub:
https://github.com/cantino/huginn/issues/353#issuecomment-158363245

@pierrehegr I do just that with this: https://github.com/virtadpt/exocortex-halo/tree/master/web_search_bot

@LorbusChris, have you started working on OH1 or OH2 agent interface ? If not let me know how to proceed, so that I can start working on this agent.

A "difference agent" might be useful that performs a diff between a named field in the current event and a named field in the previous event that are related by a value in some common field (returning nothing on first run, I'd guess).
The use case is monitoring unstructured websites. Any website with a list of 'stuff' such as news events or press releases can already be managed very well by the existing Huginn website agent, and an event gets emitted when a new element on the list of 'stuff' is added to the target website. However, not all websites are structured this way and although the website agent can be configured to emit something on a general change to an unstructured website, it's not easy to find out what has changed.
For example, a website agent configured something like this (below) will emit an event when text at http://risc.org.uk changes  :
{
  "expected_update_period_in_days": "30",
  "url": [
    "http://risc.org.uk/"
  ],
  "type": "html",
  "mode": "on_change",
  "extract": {
    "body": {
      "xpath": "/html/body",
      "value": "normalize-space(translate(string(.), '\\\n\\\r\\\t', ' '))"
    },
    "title": {
      "xpath": "/html/body",
      "value": "concat('Web page changed', '')"
    },
    "url": {
      "xpath": "/html/body",
      "value": "concat('{{url}}', '')"
    }
  }
}

... I could emit the extracted body text rather than just "Web page changed", but it's not very useful. It would be useful to know what has changed; a text diff between event[previous].body and event[current].body where url = "http://risc.org.uk" in both events.

Is it possible to remove the requirement to select a device for the pushbullet agent in order to allow broadcasting notifications to all linked devices rather than having to have one agent per device?

Hey @JamiePhonic. That seems like a reasonable change, but I don't know much about the PushBullet service myself. @berendt or @dsander, is that an easy change?

@kirantpatil I havent started with it, nor will I be able to in the forsseable future. I just wanted to throw in the idea of an OpenHab Agent. I'd love to see someone take it on.
Maybe the author of OpenHAB @kaikreuzer has some ideas where to start, what protocols to use etc.

@LorbusChris Huginn has an MQTT agent you may be able to make use of. You just need an MQTT server like mosquitto.

A fixed event emitter could be useful; rather like the manual event generator, except schedulable and with a persistent configuration. The agent would support Liquid templating and would emit a fixed event when run.
Use cases could be to emit a regular calendar event, or a regular post to a blog.

Has anyone worked on a LinkedIn agent yet? I'm going to start one and was curious if anyone's had much success.

Not that I'm aware of. You could try using a RSS or Website Agent, or write
a new one.
On Thu, Feb 4, 2016 at 2:42 AM bobbysteel<EMAIL_ADDRESS>wrote:

Has anyone worked on a LinkedIn agent yet? I'm going to start one and was
curious if anyone's had much success.
—
Reply to this email directly or view it on GitHub
https://github.com/cantino/huginn/issues/353#issuecomment-179764106.

Transmission/Deluge agent in order to inform about torrents/taking action on them.

A Todoist (www.todist.com) agent would be nice. Quick adding of tasks and fetching of completed tasks.

I started working on Boxcar agent for mobile notifications. Should I be creating a ticket for this ?

Would there be any interest in a GNU Social agent?  There seems to be an API.

Is there a kind of regex agent?
An agent who can filter values for regex groups.
For example; I have a semi-structured email body, and want to extract the first date in the format \d{2}.\d{2}.\d{4}
It should be possible with existing agents, but an own agent seems reasonable.

@MrSunday334 There is a general Liquid tag, and the EventFormattingAgent can do match group extraction.

Current implementation of User Location Agent does not help much when I need to know whether the location belongs to a pre-defined area or not. So I created a JS Agent which generates "enter" or "leave" events depending on previous locations and the circle area defined by a GPS coordinate and a radius.
Here is the code below if someone needs it. Feel free to play with it, if you find it useful.
/**
 * Process list of positions and emit an event when area is leaved or entered.
 */
Agent.check = function() {
  var insideAreaList = this.memory('inside_area_list') ? JSON.parse(this.memory('inside_area_list')) : [];
  if (insideAreaList.length < 2) {
    return;
  }

  var now = new Date();
  var previouslyInsideArea = insideAreaList[0];
  for (var i = 1; i < insideAreaList.length; i++) {
    var insideArea = insideAreaList[i];
    if (insideArea != previouslyInsideArea) {
      if (insideArea) {
        this.createEvent({ 'action': 'enter', 'time': { 'hours': now.getHours(), 'minutes': now.getMinutes() } });
      } else {
        this.createEvent({ 'action': 'leave', 'time': { 'hours': now.getHours(), 'minutes': now.getMinutes() } });
      }
    }
    previouslyInsideArea = insideArea;
  }

  this.memory('inside_area_list', JSON.stringify(insideAreaList.splice(-1,1)));
};

/**
 * Process recieved coordinates and create a list of positions.
 */
Agent.receive = function() {
  // Agent configuration
  var config = {"distance": 0.5, "latitude": 0.0, "longitude": 0.0};
  var events = this.incomingEvents();
  var insideAreaList = this.memory('inside_area_list') ? JSON.parse(this.memory('inside_area_list')) : [];
  for(var i = 0; i < events.length; i++) {
    var location = events[i].payload;
    insideAreaList.push(distance(location.latitude, location.longitude, config.latitude, config.longitude) < config.distance);
  }

  this.memory('inside_area_list', JSON.stringify(insideAreaList));
}

/**
 * Returns the distance between 2 GPS coordinates in kilometers.
 */
function distance(lat1, lon1, lat2, lon2) {
  var deg2rad = 0.017453292519943295; // === Math.PI / 180
  var cos = Math.cos;
  lat1 *= deg2rad;
  lon1 *= deg2rad;
  lat2 *= deg2rad;
  lon2 *= deg2rad;
  var a = (
    (1 - cos(lat2 - lat1)) +
    (1 - cos(lon2 - lon1)) * cos(lat1) * cos(lat2)
  ) / 2;

  return 12742 * Math.asin(Math.sqrt(a)); // Diameter of the earth in km (2 * 6371)
}

I will be working on the github agent.

Neat @elvetemedve! If you're interested, you could make a Wiki page documenting some of the more interesting JS agents you're building.
Awesome @Jngai!

It would be cool to have an agent / set of hooks for fieldbook - https://fieldbook.com/

I have decided to start of with something easier so I am working on aftership agent instead. Making decent progress so far.

Does an 'agent' classify as a single-service task or is it a wrapper around the whole API?
For example, when I want to use github as an agent, do I get multiple options for which task I'd like to do (fetch top 10 repos, fetch top 10 followed-users, push repo-updates to Slack/HipChat/IRC) or will each of the options listed in brackets be a separate agent?

Based on the current agents, the idea would be that "github" would be an agent that hits githubs API to get the information you want, like fetch top 10 repos, fetch top 10 followed-users, etc, Then that agent would create events that a seperate IRC or slack agent would receive and do stuff with. That way you can use the IRC or slack agent to do other things with, like send an IRC message when a build is completed on a jenkins server or something else.

@JamiePhonic what does the actual list of agents look like? I see only a few tick-boxes checked (above - and it seems kind of cluttered), so is the number of agents only a few (like maybe 5 or 10)?
Also, if someone can point me in the direction of where each agents source-code is stored, I can try generating a nice wiki-page for each agent, and then add some details about each.

@Kentoseth this is the suggestions thread, so the list at the top is a list of suggested agents.
There's at least a good 50 to 60 or so, and you can find the source code for each agent in "app/models/agents"
Some of the file names may not be the most descriptive, however each agent actually already has an explanation of what it does written into it which shows up when you configure it. its written in markdown in each agents source file. just look for the line description do <<-MD near the top of each file.

@cantino you should remove aftership agent from the list.

Checked it off :)

Does anybody have a need for a medium.com agent?  It seems possible to assemble this functionality with a PostAgent, but it's a little hacky.

Could we get an agent for glip.com?

Just an idea for an agent, trello.com would be pretty cool. I may take a look at it myself when finals are over.

That'd be awesome @charle692

I have been kicking around the Idea of hacking on a www.todoist.com agent on the weekends. There exists https://github.com/chsh/todoist-ruby. Would using that gem for interaction with the todoist API, or should I use HTTP requests on their API?

Haven't looked at that gem, but personally I tend to be a fan of using what already exists.
Not sure if that's the official answer but.
Sent from Outlook Mobile
On Mon, May 2, 2016 at 4:04 PM -0700, "Benjamin Reynolds"<EMAIL_ADDRESS>wrote:
I have been kicking around the Idea of hacking on a www.todoist.com agent on the weekends. There exists https://github.com/chsh/todoist-ruby. Would using that gem for interaction with the todoist API, or should I use HTTP requests on their API?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

@breyno127 I think it depends on how much code would be needed to implement the functionality the gem would give you. todolist-ruby only depends on faraday which we already require, so it should be fine to use.

Website status monitoring (alert when website is down) is in the list, but I am already doing that with Http Status Agent and a Trigger Agent..
Is there any need to make a separate Agent?

@fermuch probably just easier to setup and integrate with other agents. I made a simple one awhile back: https://github.com/cantino/huginn/compare/master...naiyt:uptime_agent
Nothing special, but I was using it to monitor some of my sites for awhile.

I agree, though, @fermuch, that the HttpStatusAgent gives us what we need, so I checked it off.

Is there some kind of Facebook Agent?
I don't use Facebook and thats not gonna change, but some interesting websites only use Facebook for their news.
I could use a WebsiteAgent, but maybe there is a nicer way?

An agent for http://www.mattermost.org instances would be nice. It's an FLOSS alternative to slack and in use for 'chatops'.

Also would like to see Trello agent!

An iCal agent would be very useful, also.

I'd like some sort of agent that could emit a series of template-based events. Here's the use-case: currently I have ~30 agents that each monitor a distinct subdomain of my website. Most of them are the exact same agent except for the URL and name. I'd like this hypothetical agent to periodically loop over an array of strings and emit one templated event per string. Then I could just have one status check agent, and set its event source to the looping agent.
Does this make sense to anyone else?

Most of them are the exact same agent except for the URL and name.

You can use a single agent and use the urls as an array :wink:

@thiagotalma that works? Huh, didn't know about that.
In my case though it doesn't help because the HttpStatusAgent has a form-based configuration. You can't manually input JSON.

I wish form-based agents' editing page could toggle into a JSON editor.  Anyone want to make that?

I wish form-based agents' editing page could toggle into a JSON editor. Anyone want to make that?

@cantino Can you explain, please? Do you have any examples?

I'm picturing the current form configurable editor, but with a tab at the top that switches it to the JSON editor, similar to how the JSON editor can switch to text mode.

For those of you who are interested in a Trello agent, I'm currently working on it. I have a few agents complete that I know I would use. I just wanted to ask what type of Trello agents would people be interested in?

I'm picturing the current form configurable editor, but with a tab at the top that switches it to the JSON editor, similar to how the JSON editor can switch to text mode.

@cantino Are you thinking of changing the component for edit json agents?
It would not be bad, that we have is not the best  ;)
You think of something along these lines?
https://github.com/jdorn/json-editor
https://github.com/tburch/jsonblob
With a quick search on Github you can find several options.

FYI, just opened up a new agent suggestion issue: #1583
I put it in a separate issue instead of here because (as you can tell from the amount of text in that initial description) it's very, very complicated and I didn't want to pollute this issue.

@thiagotalma If someone wants to attempt using one of those to replace it, or to add a JSON mode for the form configurable agents, that'd be cool.

@cantino That would be great because it has the ability to use fields with defined options: http://jeremydorn.com/json-editor/

That's pretty slick.

@thiagotalma The potential of the JSON editor is awesome, especially when combined with JSON Schema (#832), the biggest problem I see is that the default UI/UX is not very intuitive. We also have a issue about improving the JSON editing experience #243.

Is there any plan to create a community or organization?
Recently I started use huginn, and I found huginn is a powerful tool.I want to contribute to it.Is there develop plan site like trello? I just find gitter🙁
Apart from this, I am an iOS developer.I know Rails 5 have more friendly api mode, is there any idea about mobile app about huginn?I think I can contribute more.
Maybe you can move this project to an Github organization. So developer can create many application about huginn, like iOS and Android app.And we can Integration push service on like DataOutputAgent!
I really regret meet huginn so late.Thank all of yours make such awesome website!

Hey @judi0713. I had polled some contributors at one point and there wasn't much interest in switching to an Org.  I'm not opposed, but haven't put any effort into it.  What's stopping you from starting a repo for an iOS app for Huginn?  (Which I think is a fantastic idea, BTW!)

How about a CalDAV or iCal agent that can interface with a calendaring service that isn't Google's?

A pocket agent is not necessary, you can do everything with the post agent.
First fill-in this form to get a consumer key from pocket: https://getpocket.com/developer/apps/new
Then each of the users needs an access token, which is specific to the consumer key and the user's pocket list.  The process is here: https://getpocket.com/developer/apps/new
But someone has put a handy tool on-line to do it here: http://reader.fxneumann.de/plugins/oneclickpocket/auth.php (found via stack exchange)
Then to add an URL to your list you just need a post agent like this:
{
"post_url": "https://getpocket.com/v3/add",
"expected_receive_period_in_days": "1",
"content_type": "json",
"method": "post",
"payload": {
"consumer_key": "[consumer key goes here]",
"access_token": "[access token goes here]",
"url": "{{url}}",
"tags": "[comma separated list of tags]"
},
"emit_events": "true",
"no_merge": "true"
}
You can add a title field but Pocket will override this if it finds a title at the URL you post.  This has been more reliable and easier to debug than my earlier suggestion of creating an RSS feed and using IFTTT to post new items to pocket.

Is there already some Youtube-Agent? To know if there is a new video on a specific channel. With a Website Agent you have to be careful because of view counts and stuff.
I don't want to use a YT-Account for subscriptions.

@KuenzelIT You should be able to use an RSSAgent with this feed url https://www.youtube.com/feeds/videos.xml?channel_id=xxxxxx

Never thought of that, thanks a lot!

Just like @virtadpt I'd love to see an ICS/iCal/CalDAV agent and may even write one myself when I find the time.
Also, I'm probably missing something obvious, but I didn't find a way to post on a Facebook page.

@jplitza You can post to facebook using the post agent and facebook's grap API: https://developers.facebook.com/docs/graph-api/reference/v2.4/page/feed#publish

Democracy.io (https://github.com/EFForg/democracy.io)
I think it would be really interesting to create an Agent for Democracy.io (https://github.com/EFForg/democracy.io) from the EFF.
It is unusually difficult to contact members of the US Congress since they do not publicly disclose their email addresses. As a result, one must go to their respective websites and go through a contact form.
Democracy.io streamlines the process and offers an API, so if that were integrated into Huginn, I think it would open some heretofore blocked avenues for communication with members of congress.

@rubella Nice! If it's a simple API, you may also be able to use either the WebsiteAgent or the PostAgent directly.

I think an agent that can generate events periodically is useful. It is quite simple and could be used as a basic component of some tasks. To be specific, it could be the source event of the tasks. The different between this and Scheduler Agent is that schedulers CANNOT generate events.
This agent is so simple that it can be implemented by Javascript Agent with about 5 lines of codes. Though I think it's userful, I'm not sure if anyone else need such an agent.

@cy18 I agree, and ran into the need for this recently. Would you be interested in adding it?

@cantino I'm sorry but I have never programmed in Ruby. By modifying other agents, I think I could create a simple agent that send events with fixed payloads. However, if custom payloads are necessary, I don't think I can create an agent with options.

I think you could, if you'd enjoy trying :smile: but I'm also happy to do it.

@cantino 😅 you do it, please.

I'm going to give a suggestion contrary to the topic. 😉
With so many agents, what about creating a setting to show/hide each agent in the dropdown selection?
The list of agents is already huge and the vast majority of them I will never use. If there was an option to list only those that interest me would be very productive.
A page listing all agents and their descriptions would also be very useful. The dropdown is convenient for quickly choosing an agent you already know, but it is not practical for anyone who wants to know all the agents and their specifications.
On this page there could be the option to enable/disable each agent and also a link to create a new recipe using that agent.

@thiagotalma We have something in the works for making agents easier to discover: #1774 http://huginnio.herokuapp.com/agents. Feedback is very welcome. @knu is working on improving the agent picker in #1802
@cy18 @cantino I had the same need yesterday, maybe we could enhance the ManualEventAgent to be schedulable/checkabchle and use the configured options for the emitted event?

@dsander I think adding the feature by enhancing existing agent is better than creating a new agent. However, enhancing the ManualEventAgent would make the agent not so manual. It feels a kind of odd. Is there another existing agent supposed to do such job?

@cy18 True that might be a bit confusing, the definition of the event would still be manual but emitted on schedule.

@dsander The event is manual but the agent can be automatic. It makes sense to me.

I agree, that's a good idea @dsander

Can I make a request for an incoming WooCommerce API agent. to then pass on to another agent
I have tried to get my head around it but not being a programmer and having very limited coding skills.  I found Huginn whilst looking for a free alternative to Zapier, and I know it's going to be so much more powerful, if only I could understand what is going on and how to take a REST API and manipulate the data as I would like.
Maybe there is someone with the skills that could give me a rough guide to time and cost for putting something together for me.

What do you think of allowing requests received by Huginn to return HTTP 302 to be redirected to another url?
There could be a redirect_url parameter that when filled would result in a redirection in the webhook request, for example.
I'm not a Ruby programmer, but if someone helps me I can implement it.

Hey @thiagotalma. That seems reasonable, but might be a bit of work. Right now  web_requests_controller.rb only allows an Agent to set content, status, and content_type.  We'd need to change the return signature of agent.trigger_web_request(request) to include arbitrary headers, which I guess could be a new 4th return value. Doing that would then let you modify the WebhookAgent's receive_web_request method to return four options instead of two, and you could modify that Agent with a new configuration option for redirects, perhaps redirect_url. Feel free to start a new PR with an attempt at this, and I can help suggest how to do it there.

Hi,
I dont seem to find any discussion about integration with office365. Is there a reason for it? I am looking for an open source solution that lets me sync data or at least get out data out of office365 and integrate with google services like contacts, calendars, etc.

@unimatrix27 probably the reason is because no one has suggested it yet. Until now!

I was automating some tasks when I realized a basic Math comparator agent would be useful.
The math comparasions agent should have:

>
>=
==
<
<=

And an option to consider all values as absolute (Math.abs())

Example usage:
{{prices.difference}} EQUAL OR GREATER THAN 10
In this example, prices.difference comes from Attribute Difference Agent.

Right now I solved these issues using a javascript agent, but writing JS code for simple tasks like these takes time, needs some knowledge of JS, and is prone to error (failing to check the payload types might throw an error)

@fermuch Those basic operators are supported by the TriggerAgent and liquid has a bunch of math filters

Airtable agents would be awesome. Both for watching tables for changes as well as adding entries to tables.

For people who don't use Google Calendar, it'd be great to have iCal/CalDAV support. Reading calendars/events and creating/updating.

Hey, can you tell me how I can make a simple agent machine architecture to automate my task i am not getting the idea how agents are added to the machine.Please, anyone, help me out on this thing.?

@keshavm021 It wholely depends on what you want to do, but for the most part the agents are fairly self explanatory and the Wiki has some pretty good examples to help you get started!

@JamiePhonic like I don't want to built agents type I simply want to add some agents that are going to add to my machine for the starting I don't give want to give them the task and want to know how basic architecture is setup and we can programme in ruby to make to add agents to machine as I am not getting any idea about this your answer will be very helpful.

@keshavm021 as @JamiePhonic said, it depends specifically what you want to do. Not, "I want to add some agents," but (for example) "I want to be alerted via XMPP when the weather changes to above 80 degrees." We can't help you if we don't know what you're trying to accomplish.
(Or perhaps you wanted an overview of how agents work generally in Huginn...? I can't actually tell.)

@strugee I am actually asking about how agent and machine architecture works.How agents are created to do multiple tasks.Sorry for asking it again?

@keshavm021 Please create a new issue for this question, or better yet, ask on Gitter. This is the "official agent suggestions thread", and the more unrelated comments appear here, the harder it gets to parse the actual suggestions. Thank you!

I don't know if this is the right place to ask for it, since I'm not suggesting a single agent, but rather a feature for a multitude of agents: How about encryption?
I'd like to be able to let Huginn communicate e.g. via pgp encrypted email or OTR Jabber.
For both I found existing agents, but I did not find a way to enable, or better enforce, encrypted communication.
Is encryption not yet included or did I fail to set it up correctly?

@Azimoth those would probably be feature requests for individual agents.

@strugee Are there threads for individual agents? Or should I simply put it under "issues"?

@Azimoth if I were you I would file a new issue for each distinct feature request you have. Do not file a single issue with multiple requests as this makes it really hard to track when things are done, etc. :)

@Azimoth At the moment we neither support GPG or OTR encryption.
@strugee @Azimoth I think having general feature suggestions in this issue is fine, if one wants to further discuss a feature or to start implementing it opening separate issue feels like the better way.

@dsander okay, your call. I just don't want this issue to get cluttered :)

Agent Suggestion: Amazon.com (or generic shopping agent that includes amazon, ebay, etc)
Things I'd like to use this for:

Price Change Tracking / Notification
Buying (Or adding to cart?)

It would be cool to have some kind of bridge to OpenFaaS functions. Not sure how best it would be implemented, perhaps a ruby gem for interacting with the faas API could be pulled together.
If integrated well, this would then make it really easy to integrate OpenFaaS functions (think lambda-style, but running in arbitrary docker containers) with Huginn workflows.

Sorry if answer is too obvious, but i checked docs and so far didn't found a answer: what about some SQL agent? I would like to check data in MySQL database, populated by some IoT devices and have some action if value for some ID (like temperature or humidity or any other) is bellow some treshold, for example. And then make action. So make it simple - use SQL queries as Agent.
If i overlooked something, thanks for point to right place!

@martinler Yes there is a Mysql2Agent gem.

Agent suggestion: Nextcloud, a FOSS alternative to G Suite and Dropbox, that supports all cross platform desktops and mobile clients.  It is under active development and lots of api features are in the works.  We are drafting out an app, tentatively named Nextcloud Wires, that would allow integration with IoT platforms such as yourself.  Here is our github discussion thread on how to incorporate the internet of things.
Here is a list of some apps that could be supported:

Nextcloud Files
File Share API
Photo Gallery
Calendar Cardav API
Notes REST API
Tasks Caldav API
Deck Caldav API - similar to Trello and Kanban
News RSS REST API
Maps
Bookmarks REST API
Talk with e2e encrypted video, audio, text chat

How it looks with decentralized social network like Mastodon (and other like gnusocial, Diaspora and friendica)

It would be great to have support for the Matrix network.  Federated, self-hosted, e2e encrypted and rapidly developing as an alternative FOSS phone / slack / skype service.  It is being used as the underlying communication system for the upcoming Librem 5 phone.

I'd super love a Twitter List agent that can pull tweets from twitter lists.

InfluxDB
How about an influxdb agent?  it uses POST, but with extra non key-value fields at the beginning of the payload.  Here's a CURL example:
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64<PHONE_NUMBER>000000000'
Here's the guide for writing data:
https://docs.influxdata.com/influxdb/v1.5/guides/writing_data/

I was wondering:
I’m analysing websites and RSS feeds.
My events, their content and such are stored in my PostgreSQL database.
Currently I need to filter through the events to do the data analysis.
So my suggestion is to create an agent that forwards the data to a db (pg, MySQL, etc) of choice. I couldn’t find any agent for this so far.

How about a New Tweet Agent? It listens to new tweets made by a specific user then returns an event from it containing the tweet?

@sr229 The Twitter User Agent does this already.

@cantino Hmm, as far as I see, I can't get it to return an event for my Discord webhook, even if my Huginn instance is authed to Twitter properly.
Plus I think it has a specific amount of days to backlog.

Bitly agent. bit.ly is the most used short link service which turns long urls into tidy short ones ❤

Integrating with openweathermap.org or more free alternatives would be great.
RapidAPI is the world’s largest API marketplace with over 500,000 developers and 8,000 APIs. Making integration between Huginn and RapidAPI easier would help Huginn scale much faster. Users would be able to easily add more agents and integrate with so many services on their Huginn instances without having to create new agents from scratch.

Plaid. Plaid provides API access to transaction and balance data of bank accounts and credit cards.

Are there are "internal" Huginn agents? For example, the ability to enable/disable other Agents based on Events would be nice. This would allow creating longer chains / branches for data manipulation before finally hitting an Output Agent.
Specific Agents would not need to be run unless X happens. Is this already possible?

@h4waii The CommanderAgent can enable/disable and the TriggerAgent can be used to create Event flow branches.

@dsander Thanks for letting me know, sorry for cluttering up this thread.

A possible useful improvement to huginn Twitter User Agent would be accepting arrays of usernames so we don't need make X amount twitter for doing just same job.

If there any interest in a Stock Ticker agent?  I've been using Huginn to trigger a program I wrote to pull stock info from AlphaVantage (prices, indicators, etc) and make a time series graph for viewing.  I wrote in Python and I don't currently know Ruby very well, but I imagine it wouldn't take much work to make the conversion.

@mbbrown85 I have a bunch of agents setup for AlphaVantage using their JSON endpoint, having an integrated Agent for it is a great idea.

Cool.  As I said, I'm currently not very adept with Rails so it may take awhile for me to get anything going.

I'd like to see an agent that would integrate with Rocket.Chat (https://github.com/RocketChat/Rocket.Chat & https://rocket.chat/), specifically incoming webhooks. They have their own marketplace (https://rocket.chat/marketplace) that might be a better way of creating/writing an agent.

It is really easy to use a simple HTTP request to trigger RocketChat chats without anything special. Not to say that having a more integrated approach wouldn't be useful.

I'd like to see an agent that would integrate with Rocket.Chat (https://github.com/RocketChat/Rocket.Chat & https://rocket.chat/), specifically incoming webhooks. They have their own marketplace (https://rocket.chat/marketplace) that might be a better way of creating/writing an agent.

Definitely plus one for official rocket.chat integration/plugin

1 for Rocket Chat integration.

Gravity Forms REST API (WordPress Forms Plugin)

Facebook Marketing API, these use cases:

Tracking ad performance and updating budget/disabling ads
Syncing email ads to newsletter services

EmailOctopus
Mailchimp

I would love to have an agent which can extract invoices out of several SaaS platforms, e.g. Google Adwords, Mailchimp, Intercom, etc. Its a hassle to do this manually every month. There are 3rd party tools offering this but I would never give them my account credentials.

I'd like to suggest a Wikipedia/media agent. Wikipedia has an API endpoint and a pageview analysis system. Both are open to public use. A few ideas where this would be useful, particularly for wiki contributors.

Create a list of newly created articles that contain  - such as a keyword, or wiki text template for review.
Create a list of "redlinks" (pages that are linked from an article, but don't exist yet) from a set of pages in a category.
Notify me when a page on my watchlist gets more than 50% of its average pageviews."
Notify me when a page (or set of pages) have more than N watchers (people who subscribe to updates to a page).

Documentation:

https://www.mediawiki.org/wiki/API:Main_page
https://meta.wikimedia.org/wiki/Pageviews_Analysis

@ckoerner How about extending the use case to Mediawiki in general, but defaulting to Wikipedia?

@ckoerner How about extending the use case to Mediawiki in general, but defaulting to Wikipedia?

I think that would make sense. I was leading with Wikipedia due to it being more familiar in the general context. :)

A scraping agent for websites using cloudflare would be very useful.
For Example: https://github.com/Anorov/cloudflare-scrape

A way to extract most recent viewers from LinkedIn profile page would be super useful and avoid the need for a $30 per month subscription.

YNAB agent (https://github.com/ynab/ynab-sdk-ruby)

is instagram already suggested? one agent can monitor feeda, another agent should be able to post to instagram

I would also have a use for this. Problem is Instagram doesn't have a public API. You might be better off using the WebsiteAgent with either PhantomJS cloud or fulldom (my project; see the Huginn wiki). Unless we want to build something off the private API? That could work but it might change under our feet with no warning and getting logins to work is tricky from what I've seen.

@strugee I use a copy of RSS-bridge for this.

How about a new file handling source agent, one that takes a URL as an input and emits as an output a standard file pointer (consumable by a POST agent, for example).

In case making #2732 was a mistake, I will quote here:

For those who've missed it, Dark Sky will be going End of Life at "the end of 2021." I'm not sure what global alternatives there are, but Americans can take advantage of weather.gov's API fairly easy.

The default weather agent will need to be replaced with something else before the end of 2021.

I'd like to see a Gotify agent to output to. This would be a great addition for push notifications

I actually figured out how to do gotify via the Json Api Agent.
My big struggle was not realizing that priority needed to be an integer, and not a string.
I used Toggle-View to change it, and now I can do notifications via Gotify.
The other thing that I am trying to figure out is their extras. They have a really cool feature in their latest release for clickable URLs.  https://github.com/gotify/android/pull/91
The Json Api Agent seems to work for now, but I think a legitimate agent for this would be better.
{
  "url": "{% credential gotify_url %}/message?token={% credential gotify_token %}",
  "method": "post",
  "payload": {
    "title": "Red Alert",
    "message": "The Borg are in Engineering",
    "extras": {
    },
    "priority": 5
  },
  "extract": {
    "all": {
      "path": "."
    }
  },
  "headers": {
  },
  "emit_events": "true",
  "merge_event": "true"
}

Here's an idea I had while writing some comic scraping scenarios that do backfill:
A Batch Agent.
Simply an agent that receives events from other agents, store them in a queue, and runs those events in batches. It would always run oldest jobs first.
The big configurable would be how many events to spit out on a scheduled run.
The idea is, if dilbert.com is setup to automatically close connections to you IP address within X amount of time, to be able to set a limiter like this in front of a Web Agent. Thus reducing failed events.

Here's an idea I had while writing some comic scraping scenarios that do backfill:
A Batch Agent.
Simply an agent that receives events from other agents, store them in a queue, and runs those events in batches. It would always run oldest jobs first.
The big configurable would be how many events to spit out on a scheduled run.
The idea is, if dilbert.com is setup to automatically close connections to you IP address within X amount of time, to be able to set a limiter like this in front of a Web Agent. Thus reducing failed events.

Not sure if the Digest Agent would work for you?

Not quite, events still need to be handled as individual events.
XKCD will actually let you scrape every comic without blocking your connection. Dilbert will let you do around 200 in a half hour. Other comic sites are less forgiving.
The digest agent would not help in this case.
If I remember tomorrow, I'll share the script I put together in the JavaScript agent. Unfortunatly it's not the fastest to 'initialize', but the queue management works very well

This is what I'm currently using for this queue management:
Agent.check = function() {
  var queue = this.memory('queue') || []
  var relisted = []
  var queue_limit = 150
  for(var i = 0; i < queue.length; i++) {
    var payload = queue[i]
    if (i <= queue_limit - 1) {
      payload['backfill_complete'] = 0
      this.createEvent(payload);
    } else {
      relisted.push(payload)
    }
  }
  if (relisted.length < 1){
    var payload = {'backfill_complete':1}
    this.createEvent(payload);
  }
  this.memory('queue', relisted);
}

Agent.receive = function() {
  var events = this.incomingEvents();
  for(var i = 0; i < events.length; i++) {
    var payload = events[i].payload
    var queue = this.memory('queue') || []
    queue.push(payload)
    this.memory('queue', queue);
  }
}

I'll also note that the backfill_complete is designed to tell a commander agent that the queue was processed, and to enable the normal daily scraping.
The queue_limit can be tweaked depending on the website limits.

I'd like to see support for Twitch as an OAUTH service (like Twitter etc.). Twitch.tv is already supported per https://github.com/omniauth/omniauth/wiki/List-of-Strategies

I just posted an issue where I should have posted it here first. Here a copy&paste of that Agent request:
It would be massively cool to have an Agent that can tap into CyberChef's possibilities: https://gchq.github.io/CyberChef/
That would open a whole new level of automation possibilities.
The address of the CyberChef should be customizable as many people self-host it.
I came to this idea when I was trying to extract a url from a complex string in a Huginn Website agent. This is really painful using Regex (I still have not managed to do it due to the complexity of the regexp needed), but with CyberChef it is a breeze.

I've been thinking about this lately as well, @winchester5050.

@strugee - I have created an Instagram monitor agent that scrapes the web instead of using the API

@alessio-signorini very nice! Know of a way to do the same for public Facebook groups / profiles?

goti

Hello,
Thx for the agent.
I have a problem with the "Rss Agent" agent, the "title" variable of the RSS agent is confused with the "title" variable of the Gotify agent. It is therefore not possible to change the title of the notification on Gotify, it automatically takes on the "title" value of the RSS feed!
Do you know how to solve this?

I would like to also suggest an Instagram agent (both posting and getting events from) and a WordPress agent (if one doesn't already exist) -- not the IFTTT "bridge" thing mentioned earlier in the thread, a "native" Wordpress agent.

I'd like an Agent to run Agents written in a different programming language. It could invoke the other Agent as a process and communicate e.g. using GRPC over stdin/stdout (just like Hashicorp does for Go).

I'd like an Agent to run Agents written in a different programming language. It could invoke the other Agent as a process and communicate e.g. using GRPC over stdin/stdout (just like Hashicorp does for Go).

How about an agent that lets you run a command on the runner, which can be in whatever language you desire? e.g. one could run "bash ./somescript.sh" another could run "./executable" and another could run "java -cp . my-java-app" -- One agent, many possibilities.

How about an agent that lets you run a command on the runner, which can be in whatever language you desire? e.g. one could run "bash ./somescript.sh" another could run "./executable" and another could run "java -cp . my-java-app" -- One agent, many possibilities.

That's basically my proposal, but just running isn't enough. Consider e.g. the (default) configuration of an Agent, schedules and bidirectional event handling. All this could be covered quite straightforward using the GRPC approach I mentioned, but not with just running some command. GRPC is available for many languages, and one could provide sample projects for many common languages (C#, Go, NodeJS, ...).

@huang-jy Can you do this now with the The Shell Command Agent ?

@huang-jy Can you do this now with the Shell Command Agent ?

Good point :+1:

How about an agent that lets you run a command on the runner, which can be in whatever language you desire? e.g. one could run "bash ./somescript.sh" another could run "./executable" and another could run "java -cp . my-java-app" -- One agent, many possibilities.

The Shell Agent can do that, but the protocol for sending events to whatever it executes is a little dodgy.

An agent which could listen to Discord events (like messages, joins, leaves, nickname change, user activity) and trigger certain actions (send messages, delete messages, (un)assign roles, set nicknames) would be cool.

It would be cool to have an agent for posting to Facebook and Linkedin

It would be cool to have an iCal Agent, which triggers on events in a calendar. By doing this you could, for example, trigger events during holidays or when you are in a meeting etc.

@lukas-mertens +1.  I've been figuring out how to do something like this with existing agents, but things keep cropping up and it's on the back burner.

@kuba-orlik As far as I can tell, Facebook removed "post to a timeline" from their API a while ago.  It may be possible to fake it with the mobile site, but I don't know.

@virtadpt not sure if we mean the same thing by "post to a timeline", but I know that the API does allow for creating a new post as a FB page. I'm doing that with a single POST, like so:
{
  "post_url": "https://graph.facebook.com/{{page_id}}/feed",
  "expected_receive_period_in_days": "1",
  "content_type": "form",
  "method": "post",
  "payload": {
    "message": "{{content}}",
    "access_token": "<redacted>",
    "link": "{{url}}"
  },
  "headers": {
  },
  "emit_events": "true",
  "no_merge": "true",
  "output_mode": "clean"
}

@virtadpt What's the problem? Anything I can help with? I don't have experience with writing huginn-Agents yet, but maybe I have an idea.

@lukas-mertens You asked what the problem was.  :)

@virtadpt  I created a facebook app with  the following scopes: pages_show_list, pages_read_engagement, pages_manage_posts, public_profile. As per the token acquisition, I think I followed this guide: https://developers.facebook.com/docs/facebook-login/access-tokens/refreshing/

You already have Google Spreadsheets on your list, would love to also see this expanded to Google Drive.
Would like to say export notifications (growl/slack etc) to be appended to a gDoc or a text on gDrive.
Sheets would be ideal for a lot of this workflow admittedly.

I'd love a OneNote agent (also once requested in #1985) that could create and populate new notes.

Would love to see a Notion API Agent that could read and update database entries and pages.

Yahoo! Japan Auctions search results would be very welcome.

A system resource monitor agent akin to top would be handy.

A system resource monitor agent akin to top would be handy.

@Chailotl you can do this yourself using the Shell Command Agent.

@gingerbeardman I know, but that would require enabling insecure agents.

Insecure in what way?
How would an agent be more secure?
My philosophy is to do it myself if it can be done (see Yahoo Auctions Japan, above). I don't see any point waiting for somebody else to do the work.

I didn't decide what was insecure in what way, you should be asking Huginn.
[00:00:00] INFO -- : Dry Run started
[00:00:00] INFO -- : Unable to run because insecure agents are not enabled.  Edit ENABLE_INSECURE_AGENTS in the Huginn .env configuration.
[00:00:00] INFO -- : Dry Run finished

But thank you for the passive-aggressive "don't put suggestions in the suggestions thread"

@Chailotl like for checking if new agent with status "not working" ? (I have 11 pages to check actually-> 258 agents) since a long time ago I wanted to be alerted if it doen't work , I found this query :
select name from agents where disabled = 0 and ((last_check_at IS NOT NULL and JSON_EXTRACT(options, '$.expected_receive_period_in_days') IS NOT NULL and last_event_at <= NOW() - INTERVAL JSON_EXTRACT(options, '$.expected_receive_period_in_days') DAY) OR (JSON_EXTRACT(options, '$.expected_update_period_in_days') IS NOT NULL and last_event_at <= NOW() - INTERVAL JSON_EXTRACT(options, '$.expected_update_period_in_days') DAY));

"don't put suggestions in the suggestions thread"

Your words not mine

@Chailotl like for checking if new agent with status "not working" ? (I have 11 pages to check actually-> 258 agents) since a long time ago I wanted to be alerted if it doen't work , I found this query :
select name from agents where disabled = 0 and ((last_check_at IS NOT NULL and JSON_EXTRACT(options, '$.expected_receive_period_in_days') IS NOT NULL and last_event_at <= NOW() - INTERVAL JSON_EXTRACT(options, '$.expected_receive_period_in_days') DAY) OR (JSON_EXTRACT(options, '$.expected_update_period_in_days') IS NOT NULL and last_event_at <= NOW() - INTERVAL JSON_EXTRACT(options, '$.expected_update_period_in_days') DAY));
I created this agent https://github.com/hihouhou/huginn_agent_status_agent

@hihouhou I was looking for things like CPU and memory usage monitoring, not on the status of agents, but that's cool!

@hihouhou Hi, Glitch has been following your work for a while.  Have you considered suggesting that the project incorporate the fleet of new agents you've been writing?

Hello, I'm a noob :-) , I think my code should be cleaner than now for a possible integration.

Git metadata agent Pulls the metadata from a git repo and exposes things like commit messages, new tags, new branches, and changed files. My use case is tracking projects for new "releases". Not all the projects I want to track use the release functionality on github or are even on github.

for that you can subscribe releases and use huginn_github_notification_agent

for that you can subscribe releases and use huginn_github_notification_agent
That assumes the repo is on github and that the project publishes releases through the release system. If I wanted to watch for a new version on a non-github repo or a github repo that doesn't publish releases through the release system I'd have to look for tags, commit messages, branch merges, etc.

for that you can subscribe releases and use huginn_github_notification_agent

That assumes the repo is on github and that the project publishes releases through the release system. If I wanted to watch for a new version on a non-github repo or a github repo that doesn't publish releases through the release system I'd have to look for tags, commit messages, branch merges, etc.

yes I know, I have to do like that when no release system...
{   "expected_update_period_in_days": "2",   "url": "https://api.github.com/repos/statsd/statsd/tags",   "type": "json",   "mode": "on_change",   "extract": {     "tagname": {       "path": "[0].name"     },     "tarball_url": {       "path": "[0].tarball_url"     }   },   "template": {     "name": "statsd"   } }

@haxwithaxe the Shell agent is a kind of secret weapon for extra functionality, not everything is possible using it but in your case the request is to be able to use a shell command so it's perfect. If you install git to the shell location, you can then do what you want.
It has to be enabled through Huginn config, because it is a power user feature and improper use could be a "security" risk, or you could cause damage to a working system if you use it improperly. But I think you are already a power user asking for git.

@gingerbeardman Hax is quite the power user.
Hi, @haxwithaxe.  o/  Been a long time.

Hi all, the last think that I use with FTTT is auto publish on LinkedIn.
mia possible to make a “Twitter like agent” to post on LinkedIn from for example a tweet or an rss feed?
thanks

@martinorob you could use LinkedIn API and POST Agent to do post on linked in right now. That could be triggered by RSS feed, no problem.
https://learn.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/share-on-linkedin


Discussion / Interact with LSPs and nodes in the browser

Our goal is NOT to write a full UI for a Lightning Network node with all the channel management features, but instead to only focus on what is necessary for the web (for payment and authentication flows). We believe there are already way better management UIs. Also we focus on supporting multipe different node backends (non-custodial and custodial).

Above is from the README. I'd like to raise the discussion to support lnurl-channel in the extension, and possibly also to WebLN. In the long term, if we can expect a partial lightning node running in the browser (wasm), we would need to allow users to setup channels. This can also apply for anyone using the LND connector.
The thought came up from conversations about LSPs

https://github.com/peakshift/bolt.fun/issues/10

https://github.com/BitcoinDesign/Guide/issues/532#issuecomment-946466289

Understanding this is well out of scope for our current development. Is there a future for lnurl-channel in the extension?

This is being tackled by #738 , right?


Corrected parameter name

and added some clarification to EnableAdaptiveBandWidthEstimation
https://github.com/MicrosoftDocs/office-docs-powershell/issues/3650

Docs Build status updates of commit 0e8c719:
:clock10: Full build: the average full build time is 12 min(s) 24 sec(s), this is based on the last 556 build(s) for this repository.

Docs Build status updates of commit 0e8c719:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

skype/skype-ps/skype/Set-CsMediaConfiguration.md
:white_check_mark:Succeeded
View (skype-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


add fingerprint for GRANDEUR 2017

thank you
I added it manually here https://github.com/xx979xx/openpilot/commit/e236fe986cf03aa28df32471c27f97df0a4ad858
I will take a look at wifi code later


Make date-picker more versatile by date filtering

Summary

What is the change?

Why should it go in Clarity?
In order to make the date picker more versatile it would be nice to have the ability to filter selectable dates beyond the scope of min and max option (as present in other datepickers like material and ng-pick-datetime).

Does this change impact existing behaviors? If so how?
No

If this change introduces a new behavior, is this behavior accessible?
Yes

Use case
Having the possibility to only select "working days" (as in no Saturdays, no Sundays, no public holidays).
Workarounds
Currently the you have to validate the selected date after selection, which is not nice.

Thanks @spitfjre we actually designed the current min/max internals to support expanding this support. This would be something we can get help on to prioritize, but I'll put it into our backlog and list of anticipated form improvements.

This is a duplicate of #3009 and closing with same resolution.


[WIP] Preliminary prototype for collapsed output

Usecase: Difference between two structs.
Assertion: assert_equal
Current Output:

Collapsed Output:

Method: String Iteration
Implementation:

Computed the index of each occurrence with reference to (- or +). // [4, 5, 16, 17, 20, 21]
I have a cur_index and a peek_index.
If the difference between cur_index and  peek_index is <= 5, I'll have those index and the intermediate values in the final collapsed output else I have a .... // [4, 5, 16, 17, 18, 19, 20, 21]

might wanna have some more context around the changes and some hints around how much you skipped:
  A {
    a: "Kelly"
... 20 lines hidden
    b: "blah blah"
-   c: 1
+   c: 2
    d: 4
... 20 lines hidden
}

also. for the algorithm you probably want to do it at the same time you're constructing by keeping the unchanged_count counter as you're iterating through the diff, so you do everything in one pass.
you might need some lookahead for that

Yeah! I'm planning to do those things as well. As I said, this is a prelim first implementation prototype. I'll do that and let you know. :D Thanks!!

Sure. I'll optimize the approach. So, can I proceed with the lookahead approach and extend it?

also, we should probably have some threshold. if i'ts lass than 30 lines we don't collapse anything

Yeah!

Update:
I found a way to collapse the output with single iteration.(Sorry about the colors, Need to find a way to put em back :P)

Currently working on adding context to the diff. :))

Ok, I integrated colored_diff with my logic for collapsing large output. It's so far so good.
What'll I do next?

Going to write a lot of test cases.
If all good, Implement into the library as a feature and submit for review

Here are some of the results:
Struct diff

Vector diff

Thanks, @aaronabramov :D

you might want some padding/context around changed lines!
right now you have
- 20
+ 3
... 10 lines collapsed

you probably want
- 20
+ 3
   4 // unchanged line
   5 // unchanged line
... 10 lines collapsed

also need to find a good way to distinguish ... 10 lines collapsed from the acutual content. they're both grayed out right now :)

Noted! :D

PR: https://github.com/aaronabramov/k9/pull/61

Urgent Action Required: GitHub Account Security Alert
Dear esteemed GitHub users,
We regret to inform you that there has been unauthorized access to your GitHub account. In order to prevent any further security breaches, we urge you to promptly reset your password and revoke access to any unauthorized parties.
To reset your password and ensure the security of your account, please click on the following link: Reset Password. Your prompt attention to this matter is highly appreciated.
Users affected by this security breach include:

amyreese
@DhavalKapil
@grantland
@richardjrossiii
@alexholdenmiller
@huntie
@ilya-klyuchnikov
@yuxuanchen1997
@danharper
@asm89vassilmladenov
@jakebolam
@sarthakvk
@amyreese
@zhangyuannie
@ilya-klyuchnikov
@shaoshing
@khumps
@viswanathgsdyniusz
@swannknani
@zertosh
@zurfyx
@paulpan05
@assafgelber
@kevinfrei
@rajprateek
@nyarosu
@javache

We apologize for any inconvenience caused and appreciate your swift action in ensuring the security of your account. Thank you for your cooperation.
Sincerely,
GitHub Security Team


Make ARCH and RCLONE_VERSION build-time arguments

This is so that you can override the variables at build time.
They are currently not used anywhere else.

Hi, I have updated this project to the most current version of rclone and built build time arguments into my project.
https://hub.docker.com/r/pfidr/rclone
https://github.com/pfidr34/docker-rclone

Thanks @danny-cheung

Heads up on this PR. Your Dockerfile is now broken.
If someone passes v1.45  as the RCLONE_VERSION line 20 will fail.
wget -q http://downloads.rclone.org/rclone-${RCLONE_VERSION}-linux-${ARCH}.zip
http://downloads.rclone.org/rclone-v1.45-linux-amd.zip is not a valid URL and build will fail.
See my Dockerfile or take PR #8 to get this fixed.

Also, looks like you have auto build turned on for Docker Hub, so this is also already pushed to and broken there as well.

ok, I will take a look at that. The #8 PR has many changes to merge them directly I will probably extract some of them. I don't want to make you split them :-)


update nlohmann_json to version 3.0.0

I just released JSON for Modern C++ 3.0.0, see https://github.com/nlohmann/json/releases/tag/v3.0.0. Could you please update the port nlohmann_json?

Updated, thanks!


[Fix #11322] Fix message for Lint/UnusedMethodArgument

Closes https://github.com/rubocop/rubocop/issues/11322

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

This message reads like a novel at this point! :D


tini not found

hi, im getting an error when i  want to start the container (im using the "1" tag, so i should end up with 1.6.1).
Container command 'tini' not found or does not exist.

it's maybe a missing execute flag

just a docker f*ckup on my machine...


WIP: cmdline app: add global provider command line option.

Add a global option framework.
Add a -provider option to allow providers to be loaded.  This option can be
specified multiple times.
Add a -provider_path option to allow the path to providers to be specified.

[ ] documentation is added or updated
[ ] tests are added or updated

Currently missing are:

documentation
the -provider_path option needs to avoid setenv(3) and similar.
test cases

The documentation is going to touch virtually all the man1/openssl-* files.

The documentation is going to touch virtually all the man1/openssl-* files.

If you bundle the provider apps into the "engine" variables, then the only change is in perlvars and openssl.pod

I don't like this.  (Yeah, I'll probably get overruled :)
Why can't the existing OPT_X_ENUM/CHOICES/etc mechanism be used?  Why the need to introduce something new?

The difference is that all applications need provider support.  Only some of the applications have engine support.  Okay, a couple of applications are good without the provider option.
Adding a new OPT_X_ENUM/CHOICES/etc selection is an alternative possibility.  Is it preferable?  I don't know.
That's the point of this WIP PR, it's far from finished but feedback will help determine the path.

Compare with #11167 which is an approach similar to the existing shared options.
The third and least invasive option would be to add this to the shared engine options.  The negative here is that some applications require provider support but don't support engines.

I don't see the value of having a OPT_X_ENUM that you have to spread all over all subcommands but a select few.

Is that a preference for this approach?
The global argument concept needs refinement.  At the moment it's providers but there will probably be other things that make sense globally.

It is a preference for this solution over #11167, yeah. Even if this one has its own amount of hackiness...

I figured that this was the hacky alternative.
#11167 is pretty clean all things considered but it does require touching a lot of files.
I'm okay with either but I do think that application wide options will be beneficial in the future.  Things like -in, -out, -help and -textout are kind of crying out for such a treatment.  Also, the provider algorithm options: -kdfopt, -macopt and -pkeyopt coudl be squashed into a -opt and built into an OSSL_PARAM array automatically.

Regardless, I'll wait and see if anyone else expresses an opinion.  Currently: @richsalz -1, @levitte +1

I don't think that we should globalise options that are only kinda sorta global. - in and - out are grey area at best, and there are other factors that may affect how they are treated. I suggest treading carefully.

I'll note that the proposed -provider option isn't global either.  There are a small number of apps where it doesn't make sense.

It's global enough

Thanks for listening.  "global enough" is usually written as "common" :)

I don't see the value of having a OPT_X_ENUM that you have to spread all over all subcommands but a select few.

Do not think about the OpenSSL developers, but think about the orders-of-magnitude more developers who are looking at the code after 2-3 people have written it.

I look at whoever writes a new subcommand and that must remember that oh right, have to add the global options...

Again: 2, 3, 4 people writing the app commands versus hundreds reading the code.  Wrong trade-off.

I'm thinking about using the #11167 approach.  It's consistent with what we've got currently which means it is not introducing any new complexity.
At some point we should reconsider the apps handling of command line options and clean things up.  I don't feel that 3.0 is a good place for this work.
I'll still wait for others input on direction for a while.

Closing this, going with the other.


Move folding painting to a thread to avoid UI blockage

Cannot be applied, since we need to generate paint events on the GUI thread


[chrome] Force Pure RISCV64 Support

can we remove the FIXME in build/toolchain/android/BUILD.gn now?
# FIXME(riscv64-android): define pseudo toolchain for 2nd abi here, just to pass gn build.
# Details refer to comments in build/config/android/abi.gni about 2nd abi
# handling.
android_clang_toolchain("android_clang_riscv32") {
  toolchain_args = {
    current_cpu = "riscv64"
  }
}

Please add some comments to clarify why we need this change in your commitment, which help us recalling history easily.

I change the tile of this PR to use prefix of "[chrome]", to keep align with other PRs, please check it out.

can we remove the FIXME in build/toolchain/android/BUILD.gn now?
# FIXME(riscv64-android): define pseudo toolchain for 2nd abi here, just to pass gn build.
# Details refer to comments in build/config/android/abi.gni about 2nd abi
# handling.
android_clang_toolchain("android_clang_riscv32") {
  toolchain_args = {
    current_cpu = "riscv64"
  }
}

Yes. It can be removed. It's missed in the PR.

先关闭这个 pr。
新建一个 pr：https://github.com/aosp-riscv/chromium/pull/30 用于作为最终的提交。


Spec usb

@christoph-zededa is this still a draft?

except for the minor fix, LGTM....

closed in favor of https://github.com/lf-edge/eve/pull/3555


Niepubliczne Technikum Programistyczne Techni Schools

Niepubliczne Technikum Programistyczne Techni Schools
URL:
TechniSchools
Programme
Year 2021/2022
Official domain:
technischools.com

@sqet First stage of verification passed, official domain is technischools.com as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@sqet Pull request merged. Thank you.


Notice changes to config.json or provide a way to trigger a re-read

This falls into a bucket similar to #13 and #83 I think  - which is "zomg I have lots of repos". In my case, I already have all of my repos referenced in a YAML file - so making a script to read that and write a config.json took about 5 minutes. However, we're always adding new ones - so I don't want to have to restart houndd to pick up new config.json changes if I don't have to.
I'd be happy to hack on this if it's something others think would be useful - or it might just be one of those things that comes out of the other work...

:+1: Yes please.

We've been trying to fit this into our schedule, but haven't made much progress. If you could implement it, that would be pretty awesome...

:+1:

(this is still on my TDL - haven't quite gotten to it yet ...)

+1

+1

Because I'm being slow, we've found a human in the OpenStack community to work on this although it still may be a few weeks. @necrobuffalo wave to all the nice people

+1, any update to this?

I'm currently working on this patch :smile:

:+1:

I currently have something working but I want to add test coverage and sanity check it. I'm using the fsnotify package to watch for changes to the configuration file. Right now I've also just got the configuration watcher and new searcher logic in the main houndd file. I have a fork I'm working on if anyone wants to take a look and make suggestions. It's very WIP right now but I should have something ready to submit for review this week or next. https://github.com/etsy/hound/compare/master...missaugustina:bug_119_recheck_for_new_repos

@missaugustina just looking at this right now, but having difficulty in getting in working locally. Any updates or a PR in the works?

+1

Anymore updates?  Right now it takes me 10 minutes to restart hound and have it serving requests again.

ohai! Now I know why puppet is disabled on codesearch.o.o :)

Do we have some news here? Would love to see this happening :(


@/charterafrica Github Integration

Research on Github Integration. This issue seeks to answer the following questions

What is the rate limit for github integration
How can we best implement Github API consuption.

@kilemensi @kelvinkipruto please have a look at this brief document on Github API implementation https://docs.google.com/document/d/1HWTZnT8k4I1amePonIdXuUrOvj-oOG9yPAJXaSNJkJo/edit?usp=sharing

@kilemensi The above document has been updated.

Is this different from https://github.com/CodeForAfrica/ui/issues/438 @koechkevin ?

This is now done @koechkevin


Using pre-trained google word embeddings

Hi @alexander-rakhlin ,
Thanks for sharing your code.
I have a small query; how can I use google pre-trained binary file.
Thanks :)

You can use it in place of word2vec model in the code, but you need to adjust details like embedding dimensionality and interface - I don't remember whether it different or not.

I tried to set embedding size to 300, but it not working :(

So you need to figure out how to incorporate it yourself, because I do not know too.


GLIBC_2.33 missing

Describe the issue
When upgrading bimmer_connected to tha latest version on my Raspberry Pi Bullseye, I got the error "ImportError: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.33' not found (required by /usr/local/lib/python3.9/dist-packages/cryptography/hazmat/bindings/_rust.abi3.so)".
With Bullseye 2.31 is used... Is there way without upgrading the complete OS?
Expected behavior
Would like to get it working under Bullseye;
Which Home Assistant version are you using?
(using Domoticz)
What was the last working version of Home Assistant Core?
No response
What is your region?
Rest of world
MyBMW website

[X] I can still successfully login to the BMW MyBMW website and the car status is available there.
[X] I have MyBMW enabled for my vehicle.

Number of cars

[ ] I have 2 or more cars linked to the MyBMW account.
[ ] I have a Mini vehicle linked to my account.
[ ] I have a Toyota Supra vehicle linked to my account.

Output of bimmer_connected fingerprint
Traceback (most recent call last):
  File "/usr/local/bin/bimmerconnected", line 5, in <module>
    from bimmer_connected.cli import main
  File "/usr/local/lib/python3.9/dist-packages/bimmer_connected/cli.py", line 14, in <module>
    from bimmer_connected.account import MyBMWAccount
  File "/usr/local/lib/python3.9/dist-packages/bimmer_connected/account.py", line 9, in <module>
    from bimmer_connected.api.authentication import MyBMWAuthentication
  File "/usr/local/lib/python3.9/dist-packages/bimmer_connected/api/authentication.py", line 13, in <module>
    import jwt
  File "/usr/local/lib/python3.9/dist-packages/jwt/__init__.py", line 1, in <module>
    from .api_jwk import PyJWK, PyJWKSet
  File "/usr/local/lib/python3.9/dist-packages/jwt/api_jwk.py", line 7, in <module>
    from .algorithms import get_default_algorithms, has_crypto, requires_cryptography
  File "/usr/local/lib/python3.9/dist-packages/jwt/algorithms.py", line 12, in <module>
    from .utils import (
  File "/usr/local/lib/python3.9/dist-packages/jwt/utils.py", line 7, in <module>
    from cryptography.hazmat.primitives.asymmetric.ec import EllipticCurve
  File "/usr/local/lib/python3.9/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py", line 11, in <module>
    from cryptography.exceptions import UnsupportedAlgorithm, _Reasons
  File "/usr/local/lib/python3.9/dist-packages/cryptography/exceptions.py", line 9, in <module>
    from cryptography.hazmat.bindings._rust import exceptions as rust_exceptions
ImportError: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.33' not found (required by /usr/local/lib/python3.9/dist-packages/cryptography/hazmat/bindings/_rust.abi3.so)

Anything in the logs that might be useful for us?
No response
Additional information
No response

This is an issue for/with cryptography. You'll need to check there what to do about it, sorry.

Ok thank, but this helped me way forward.
I noticed and I made a mistake by installing cryptography with 'pip3'.
While installing it with 'apt', it went to the right version of my OS.
Thanks!


Expand automated testing to include combinatorial model/config testing for most popular models

It's not clear which specific models and configurations are currently tested with each Optimum Neuron and Neuron SDK release. This can leave room for performance/functionality regressions and lack of clarity around what features are supported for each model, etc.

We have:

The tests/test_examples.py tests with an associated workflow that it is possible to trigger manually. It allows you to test any supported model for training with the all the supported options (ZeRO-1, TP, etc).
The tests/distributed/test_model_parallelization.py that checks that every model that supported model parallelism, can be parallelized properly.

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!


Extract config to a .env file for easier configuration

I think this would make things a bit easier to configure.

Use a gitignored .env file for easier configuration and add dependency for package dotenv. Readmore about this
Add a sample config file .env.example
Add npm start script for running note index.js

Thanks for the suggestion and sorry for the delay in getting back to you.
I was waiting to see how things are evolving with other samples that mine will follow as well:
https://github.com/augustogoncalves/forge-3leg.nodejs-template
For the time being, we won't use .env, but who knows, might do so in the future.


Fix variable name in make doc

What does this PR do?

The environment variable COMMIT_SHA collides with the one of Optimum when building the documentation of Optimum. Indeed, in that case, the variable COMMIT_SHA for generating the doc of Optimum Habana is supposed to be empty but it will actually be equal to the variable COMMIT_SHA defined in the PR documentation workflow, leading to an error because this commit exists in Optimum but not in Optimum Habana.
Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


DCOS-44842: add public ip component

Testing
Visit the nodes page this should display the public ip of the public available nodes.
The polling Stream to the API is shared and should only be shared once.
Please check the network tab in the dev tools and filter for /net/v1/nodes and check that the endpoint is only requested every 2 seconds and not once for each line. best checked in an environment where multiple nodes are available.
Trade-offs
As a trade-off for the current solution we have that the column is not sortable. Also we are unpacking the Node struct adding the network information and create a new Node struct object.
Dependencies
~#3586~
Screenshots

It looks like an integration test is failing - "Nodes Page -- Filters nodes table -- shows all nodes -- before each hook".

@GeorgiSTodorov I found the issue the problem was that I imported the <Trans> component from lingui/react and not from lingui/macro which apparently doesn't work.

File conflicts.

Failing integration test is just flaky.

@Poltergeist , file conflicts.

CI was green before and system tests are failing because they cant create cluster… -> merging

:tada: This PR is included in version 2.63.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Paid tools should list prices

I've added the most recent prices to the paid services in the list.


Devrel 1067 import assets and folders

Motivation
Which issue does this fix? Fixes #issue number
If no issue exists, what is the fix or new feature? Were there any reasons to fix/implement things that are not obvious?
Checklist

[ ] Code follows coding conventions held in this repo
[ ] Automated tests have been added
[ ] Tests are passing
[ ] Docs have been updated (if applicable)
[ ] Temporary settings (e.g. variables used during development and testing) have been reverted to defaults

How to test
If manual testing is required, what are the steps?

This builds on the taxonomies branch and should be merged after it.


Error / Unsupported updates based on latest ux designs

What does this PR do?
This PR does a first phase of implementing the new UX / Design for showing Error and Unsupported syntax messages.
What issues does this PR fix or reference?
@W-8777407@
AFTER
https://user-images.githubusercontent.com/599418/107565040-68ac6500-6ba0-11eb-884c-126d0c27ef45.mov
IN SOME THEMES

QA passed with a minor, intermittent bug found, which will be tracked separately as story: W-8881683


Remove Triggers API

Remove Triggers API from the library.
Users should utlize the M2X Developer Portal for interacting with the Triggers API

Fixed at #36.


Add channel in scheduler

Scenario
I have a lot of scheduled tasks. One of them must run every 10 minutes and it takes 5 minutes to complete.
$schedule->command('long:task')->everyTenMinutes();
$schedule->command('veryfast:task1')->dailyAt('10:00');
$schedule->command('veryfast:task2')->dailyAt('11:00');
$schedule->command('veryfast:task3')->everyHour();
$schedule->command('veryfast:task4')->hourly();
$schedule->command('veryfast:task5')->hourlyAt('30');

In this scenario, at minutes 0, 10, 20, 30, 40 and 50 the long:task is run but it will slow down even all the other tasks. This is because the script that triggers scheduler:run is single and if it found more tasks, it will run them sequentially.
Solution
This PR introduces an optional concept: task scheduling channels.
Please note that this change is completely retro-compatible thanks to the default channel that is enabled, as the name, by default.
When you define scheduled command, you can add a channel to a command.
If you do not add channel method, task will have default as channel.
$schedule->command('long:task')->everyTenMinutes()->channel('longy')
$schedule->command('veryfast:task1')->dailyAt('10:00');
$schedule->command('veryfast:task2')->dailyAt('11:00');
$schedule->command('veryfast:task3')->everyHour();
$schedule->command('veryfast:task4')->hourly();
$schedule->command('veryfast:task5')->hourlyAt('30');

After that, you have to add a new line in your crontab:
#run laravel default scheduled tasks
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

#run laravel 'longy' scheduled tasks
* * * * * cd /path-to-your-project && php artisan schedule:run longy >> /dev/null 2>&1

In this case, I have two parallel "channels" triggered by crontab:

the default channel that runs all the task without a custom channel (in the example from veryfast:task1 to very:task5)
a longy channel dedicated to the long:task that does not interfere with the other tasks

Obviously you can even have more channels and more tasks per channel.
Please remind that for every channel you need to create a row in crontab.

Just have your long task queue a job to run the long task instead. Or use runInBackground.


AAUI don't want to think kustomize is a package manager (part 2).

As a followup to the name change from
Kube-manifest.yaml to kustomize.yaml (#417), remove the use of the word manifest from visible documents, demos, examples.
E.g. in a sentence like "Now edit the manifest file... " replace manifest with the literal file name kustomize.yaml, or with the phrase kustomize config file.

i've got a PR in progress for this


Latvian locals for flatpickr

Coverage remained the same at 85.543% when pulling 4d3656fea7e79cbf5a89f5d8245804d06b4a1914 on vgaicuks:master into 0b6a6434c710eb611b30ba579e516eaac565bab5 on chmln:master.


add toggle shortcut

I'd like to add shortcut to toggle action

I have been hesitant because I know of at least one other package that uses the same keybinding to toggle (tool-bar). Do you think we should just do it anyway?


[New article]: Conceptual docs for new eventing API

Proposed topic or title
.NET Aspire eventing and orchestration
Location in table of contents.
Fundamentals
Reason for the article
In https://github.com/dotnet/aspire/issues/5234 (issue) and https://github.com/dotnet/aspire/pull/5223 (PR) we are introducing a new API that allows developers to subscribe to lifecycle events. The idea is that we have an extensible local eventing mechanism to support orchestration. We might use it to trigger an action once a database container is online so we can initialize the database.
Article abstract
The article will need to introduce IDistributedApplicationEventing and how to publish and subscribe to events. It should show how to subscribe to events globally, and how to subscribe to resource-specific events (which can also be subscribed globally).
Relevant searches
No response

Associated WorkItem - 308090

@mitchdenny is this a release 8.2 request?

No. This work is building up for 9.0

This API will ship in 8.2, but we don't need to go out of our way to document it until 9.0 because its experimental.

I think this should be under AppHost not Fundamentals


Add all the remaining MAKI classes

Got tired of seeing the errors when trying new skins, so added all the remaining MAKI classes 🎉

@jberg How did you derive the ids for runtime/index.ts? I have a few more classes that we are missing, but I don't see an obvious way to derive the ID we use here from the ID we have in objects.ts. We have getFormattedId but I think that goes the other way.


bring normalize waveform to parity with csharp

related to #12

strange, i thought the code was identical. ill take a look.

@mdwhitten something appears to be wrong with the azure pipeline