From b10fdfaa08d4e230816eb5eb84748e83c154e253 Mon Sep 17 00:00:00 2001 From: wanghe Date: Thu, 7 Nov 2024 11:10:30 +0800 Subject: [PATCH] feat: Add Huginn (#2444) --- huginn/README.md | 25 +++++++++++++++++++++++++ huginn/data.yml | 19 +++++++++++++++++++ huginn/latest/data.yml | 9 +++++++++ huginn/latest/data/.gitkeep | 0 huginn/latest/docker-compose.yml | 16 ++++++++++++++++ huginn/latest/scripts/init.sh | 3 +++ huginn/logo.png | Bin 0 -> 11961 bytes 7 files changed, 72 insertions(+) create mode 100644 huginn/README.md create mode 100755 huginn/data.yml create mode 100755 huginn/latest/data.yml create mode 100644 huginn/latest/data/.gitkeep create mode 100644 huginn/latest/docker-compose.yml create mode 100644 huginn/latest/scripts/init.sh create mode 100644 huginn/logo.png diff --git a/huginn/README.md b/huginn/README.md new file mode 100644 index 000000000..3a6fbcf2b --- /dev/null +++ b/huginn/README.md @@ -0,0 +1,25 @@ +# 默认账户密码 + +``` +username:admin +password:password +``` + +# Huginn + +**Huginn** 是一个用于构建代理的系统,这些代理可为您在线执行自动化任务。它们可以读取网络、监视事件并代表您采取行动。Huginn 的代理会创建和使用事件,并沿着有向图传播它们。您可以将其视为您自己的服务器上可破解的 IFTTT 或 Zapier 版本。您始终知道谁拥有您的数据。您知道。 + +## 以下是你可以使用 Huginn 执行的一些操作: + +- 跟踪天气,当明天将下雨(或下雪)时收到电子邮件(“别忘了带伞!”) +- 列出您关心的术语,并在 Twitter 上这些术语的出现次数发生变化时收到电子邮件。(例如,想知道机器学习领域何时发生了一些有趣的事情?Huginn 会在 Twitter 上关注“机器学习”一词,并在讨论高峰时通知您。) +- 关注航空旅行或购物优惠 +- 在 Twitter 上关注您的项目名称,当人们提及它们时获取更新 +- 抓取网站并在网站发生变化时接收电子邮件 +- 连接到 Adioso、HipChat、FTP、IMAP、Jabber、JIRA、MQTT、nextbus、Pushbullet、Pushover、RSS、Bash、Slack、StubHub、翻译 API、Twilio、Twitter 和微博等等。 +- 在一天中的特定时间发送包含你关心的事情的摘要电子邮件 +- 跟踪高频事件的数量,并在事件激增时立即发送短信,例如“旧金山紧急事件” +- 发送和接收 WebHook +- 运行自定义 JavaScript 或 CoffeeScript 函数 +- 跟踪您的位置随时间的变化 +- 创建 Amazon Mechanical Turk 工作流作为代理的输入或输出(Amazon Turk 代理称为“HumanTaskAgent”)。例如:“每天一次,要求 5 个人提供一张有趣的猫咪照片;将结果发送给另外 5 个人进行评级;将评级最高的照片发送给 5 个人,让他们为其添加有趣的标题;发送给最后 5 个人,让他们对最有趣的标题进行评级;最后,将带有最佳标题的照片发布在我的博客上。” \ No newline at end of file diff --git a/huginn/data.yml b/huginn/data.yml new file mode 100755 index 000000000..01ac49df3 --- /dev/null +++ b/huginn/data.yml @@ -0,0 +1,19 @@ +name: Huginn +tags: + - 实用工具 +title: 一个用于构建代理系统的工具,可以为你在线执行自动化任务 +description: 一个用于构建代理系统的工具,可以为你在线执行自动化任务 +additionalProperties: + key: huginn + name: Huginn + tags: + - Tool + shortDescZh: 一个用于构建代理系统的工具,可以为你在线执行自动化任务 + shortDescEn: A system for building agents that perform automated tasks for you online + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://github.com/huginn/huginn + github: https://github.com/huginn/huginn + document: https://github.com/huginn/huginn/wiki diff --git a/huginn/latest/data.yml b/huginn/latest/data.yml new file mode 100755 index 000000000..90b9543c2 --- /dev/null +++ b/huginn/latest/data.yml @@ -0,0 +1,9 @@ +additionalProperties: + formFields: + - default: 3000 + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: HTTP 端口 + required: true + rule: paramPort + type: number diff --git a/huginn/latest/data/.gitkeep b/huginn/latest/data/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/huginn/latest/docker-compose.yml b/huginn/latest/docker-compose.yml new file mode 100644 index 000000000..23d71e61a --- /dev/null +++ b/huginn/latest/docker-compose.yml @@ -0,0 +1,16 @@ +services: + huginn: + image: ghcr.io/huginn/huginn:latest + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:3000 + volumes: + - ./data:/var/lib/mysql + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/huginn/latest/scripts/init.sh b/huginn/latest/scripts/init.sh new file mode 100644 index 000000000..ec2efdde4 --- /dev/null +++ b/huginn/latest/scripts/init.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +chown -R 1001:0 data \ No newline at end of file diff --git a/huginn/logo.png b/huginn/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..58711f6ff34f604732a7c227d598e164485e58de GIT binary patch literal 11961 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 literal 0 HcmV?d00001