Telegram-wordpress自动发布机器人

Telegram-wordpress自动发布机器人 前 www 资源站开了有一段时间,但是内容上感觉还是可以的。但是苦于自己没有引流的渠道。流量一直上不来。 为了涨流量,想办法进行资源的分享和搬运。所以搞了个 TG-wordpress 的自动发布机器人。来实现TG 上的资源到 Wordpress 的自动转发。 这里大体的实现上是使用telegram的消息监听,加上n8n的自动化 工作流的实现。因为本身不需要性能上的要求,所以本着快速输出,不重复造轮子的思想。 Telegram 机器人功能 这里贴一下核心代码,具体思路是监听 Tg 的固定的频道。获取新消息之后进行判断以及解析。 如果需要进行二次访问,那么是用接口继续进行二次访问来获取 bot 的消息。最终拿到拿到全部资源 @client.on(events.NewMessage(from_users=user_list)) async def event_handler(event): message = event.message logging.info(msg=message.peer_id) if DEBUG: bot_id = "xxx" else: bot_id = "xxx" global src_output if message.peer_id == PeerChannel(channel["阿里盘盘盘"]): logging.info("get target message, check if msg is valid") if "资源名称" in message.message and "点击获取" in message.message: if message.media is not None: logging.info("发现媒体") resource_pic = await download_image(message) text = message....

七月 17, 2023 · 1 分钟 · r4y

群晖备份Esxi报错踩坑

群晖备份Esxi报错踩坑 前 一篇经验文,没有什么内容,只是因为相关的文献比较少。问题又比较诡异,所以这里记录一下。 因为 家里的homelab 上面接近十个VM 撑起了整个家庭的应用。备份是一定要做好的。所以使用群晖来进行 esxi 的直接备份。 备份的时候出现了奇怪的问问题如下 A general system error occurred: Fault cause: vim.fault.GenericVmConfigFault An error occurred while saving the snapshot: Object type requires hosted I/O. 这里简单地记录下是怎么解决的 正文 vim.fault.GenericVmConfigFault 这个是快照的兼容性问题,执行 Consolidate VMDisks,再关机之后删除全部的快照。之后再次执行 Consolidate VMDisks 。来进行更改合并。 这样就没有无法删除的快照了。就可以进行后面的备份操作。 Object type requires hosted I/O. 这个问题主要可能是 VMDK 的兼容性问题导致,因为安装的 Homeassistant 是使用的 openvm 的格式,使用的时候直接挂载了,没有进行格式转换. 使用下面的命令进行直接格式转换之后进行挂载即可。 vmkfstools -i synoboot.vmdk synoboot-esxi.vmdk synoboot.vmdk is not a ESXi format. You can not create snapshots for synoboot.vmdk before you convert it to ESXi format....

七月 17, 2023 · 1 分钟 · r4y

How to prioritize spending your money - a flowchart (redesigned)

How to prioritize spending your money - a flowchart (redesigned)

七月 16, 2023 · 1 分钟 · r4y

使用n8n来构建自己的工作流

使用n8n来构建自己的工作流 在日常工作中,我们经常需要处理一些重复性的任务,这些任务可能非常耗时和繁琐,但它们又必不可少。为了提高工作效率,我们可以使用自动化工具来自动化这些任务,从而减少手动操作的时间和错误率。其中一款非常强大的自动化工具是n8n。 什么是n8n? n8n是一款开源的自动化工具,它可以帮助用户连接不同的应用程序和服务,并将它们组合在一起以实现自动化工作流程。n8n可以与超过200个不同的应用程序和服务进行集成,包括Slack、Google Drive、Trello、GitHub和Salesforce等。 n8n可以干什么? n8n可以帮助用户自动化各种不同的任务,例如: 将电子邮件通知发送到Slack频道 将新的Google表格行复制到Airtable数据库中 将新的Stripe付款通知发送到Discord频道 将新的GitHub问题创建为Trello卡片 这些只是n8n可以做的一小部分,因为用户可以使用n8n构建任何他们想要的自动化工作流程。n8n还具有其他高级功能,例如条件分支、循环和HTTP请求,使用户可以更复杂地自定义其工作流程。 安装 n8n 使用Docker-compose来进行应用的管理以及一键部署。 version: '3' services: n8n: image: docker.n8n.io/n8nio/n8n container_name: n8n restart: unless-stopped environment: - NODE_FUNCTION_ALLOW_EXTERNAL=* ports: - 5678:5678 volumes: - ./n8n:/home/node/.n8n - ./data:/data 为了在Code段使用到JS的一些其他的特性,以及通过 npm -g 安装的lib 这里需要加上 NODE_FUNCTION_ALLOW_EXTERNAL=* 这个环境变量。 n8n的基础用法 n8n的基础用法非常简单。下面是一些简单的步骤,可以帮助你开始使用n8n: 步骤1:安装n8n n8n可以在不同的操作系统上运行,包括Windows、macOS和Linux。你可以从n8n的官方网站https://n8n.io/下载适合你操作系统的版本。 步骤2:创建一个新的工作流 你可以在n8n的仪表板中创建一个新的工作流。点击页面左侧的“工作流”按钮,然后点击“创建工作流”按钮。 步骤3:添加节点 每个节点代表一个应用程序或服务,你可以在n8n的仪表板中找到超过200个已经准备好的节点。例如,你可能需要添加一个Gmail节点和一个Slack节点。 步骤4:配置节点 你需要配置每个节点的输入和输出,以便将数据传递给下一个节点。例如,你可以配置Gmail节点以在每次收到新邮件时触发,并将邮件内容传递给Slack节点以发布通知。 步骤5:保存工作流 在完成节点的配置后,记得保存工作流程。你可以为工作流程设置一个名称,并在需要时随时编辑它。 结论 总之,n8n是一款功能强大的自动化工具,可以帮助用户构建自己的工作流,提高工作效率,减少手动操作。其简单易用的界面和丰富的集成使其成为一个非常有用的工具。如果你经常需要处理一些重复性的任务,那么n8n绝对值得一试。

七月 5, 2023 · 1 分钟 · r4y

《下沉年代》

《下沉年代》 《下沉年代》是乔治·帕克所著的一本书,通过对美国社会的深入观察和调查,揭示了美国社会分裂和下沉的现象。这本书引发了人们对社会不平等、经济困境和政治分歧的思考。帕克用细腻的笔触和犀利的洞察力,让读者深入了解了下沉阶层的生活和困境,同时也提出了一些改变的可能性。这本书给人带来了对社会问题的关注和反思,引发了对未来的希望和担忧。 要点速记 通过对下沉阶层的生活进行观察和描述,揭示了美国社会的分裂和不平等。 书中提出了下沉阶层的困境主要源于经济问题和政治分歧。 作者认为下沉阶层的处境并非无法改变,而是需要政府和社会共同努力。 书中呼吁关注下沉阶层的声音和需求,推动社会的公平和包容。 通过对下沉阶层个人故事的叙述,书中强调了人性的复杂性和多样性。 经典观点和语录 “这是一个充满故事的时代,每个人都有自己的故事,而这些故事在美国社会的下沉时代中被忽略和遗忘。” “下沉阶层的困境不仅仅是经济问题,更是一种对尊严和尊重的缺失。” “我们不能简单地将下沉阶层视为受害者,他们也是有尊严和价值的个体。” “下沉阶层的声音需要被听见,他们的需求需要被关注,这是构建公平社会的关键。” “只有政府和社会共同努力,才能改变下沉阶层的处境,实现社会的公平和包容。” 浓缩书 美国社会的分裂和不平等 帕克通过对下沉阶层的生活进行观察和描述,揭示了美国社会的分裂和不平等。他通过讲述下沉阶层的故事,展示了他们在经济、教育和医疗等方面所面临的困境。这些困境不仅仅是经济问题,更是一种对尊严和尊重的缺失。帕克强调了下沉阶层的声音需要被听见,他们的需求需要被关注,这是构建公平社会的关键。 经济问题和政治分歧 书中指出,下沉阶层的困境主要源于经济问题和政治分歧。经济的不平等和贫富差距使得下沉阶层难以摆脱困境,而政治的分歧和对抗则进一步加剧了社会的分裂。帕克认为,政府和社会需要共同努力,才能改变下沉阶层的处境,实现社会的公平和包容。 下沉阶层的声音和需求 书中呼吁关注下沉阶层的声音和需求,推动社会的公平和包容。帕克认为,下沉阶层的处境并非无法改变,而是需要政府和社会共同努力。他通过讲述下沉阶层个人故事的方式,强调了人性的复杂性和多样性。只有真正关注下沉阶层的需求,并给予他们应有的机会和尊重,才能实现社会的公平和包容。 对未来的希望和担忧 《下沉年代》不仅仅是对美国社会的现状进行观察和揭示,更是对未来的希望和担忧的思考。帕克通过书中的故事和观点,引发了人们对社会问题的关注和反思。他呼吁政府和社会共同努力,为下沉阶层创造更好的生活条件和机会,以实现社会的公平和包容。 下沉年代的复杂性和多样性 《下沉年代》通过对下沉阶层个人故事的叙述,强调了人性的复杂性和多样性。帕克在书中展示了下沉阶层的个体生活和困境,让读者深入了解了他们的生活和思想。这种细腻的描写和犀利的洞察力,使得这本书更加贴近人们的生活和情感。 通过《下沉年代》,读者可以更加深入了解美国社会的分裂和不平等现象,思考社会问题的根源和解决之道。这本书引发了人们对下沉阶层的关注和思考,同时也带来了对未来的希望和担忧。帕克的细腻观察和深入调查,让读者更加真实地感受到下沉阶层的生活和困境,引发了对社会公平和包容的思考和行动。

七月 1, 2023 · 1 分钟 · r4y

Cloudflare 的安全网关

在开发Web应用程序时,我们通常需要将本地服务器暴露到互联网上,以便我们可以在任何地方测试和访问它。ngrok是一个非常流行的工具,它可以让我们轻松地实现这一点。但是,ngrok的付费计划比较昂贵,而且在一些国家可能无法正常使用。在这种情况下,Cloudflare Tunnel可以成为一个低成本且可靠的替代品。 Cloudflare Tunnel是Cloudflare提供的一项服务,它可以通过一个安全的隧道将本地服务器暴露到互联网上。与ngrok不同的是,Cloudflare Tunnel是免费的,并且没有任何使用限制。此外,由于Cloudflare在全球范围内拥有大量的数据中心,因此您可以轻松地选择最近的数据中心,以获得更好的性能和更低的延迟。 使用 Access 管控開出來的網址的存取權 預設開出來的 Public Hostname 是公開任何人都可以連上的,可能有些安全疑慮(尤其是網址固定的狀況下)。對此我們可以利用 Cloudflare Zero Trust Access 為開出的 public hostname 設定存取權限,例如需要登入、或是 IP 在某個範圍才能使用。 首先,在左側選單的 Applications 點選 Access 底下的 Applications,然後點擊 Add an application: 點選 Access 底下的 Applications,然後點擊 Add an application。 然後在下一步選 Self-hosted: 選 Self-hosted。 再來以下這個步驟需要設定 application 的基本資訊,① 取個名字、② 設定 session 的長度,也就是多久需要重新認證/登入、③ ④ 填入 Application 的網址和 domain,這邊需要填上跟剛剛建立 tunnel public hostname 的時候使用一樣的 Subdomain 和 Domain,否則會無法正確的跳轉到登入畫面: ③、④ Application 的網址和 domain 需要填上跟剛剛建立 tunnel public hostname 的時候使用一樣的 Subdomain 和 Domain,否則會無法正確的跳轉到登入畫面。...

七月 1, 2023 · 1 分钟 · r4y

5折购买BTC-GBTC

关于GBTC GBTC简介 GBTC 的全称是 Grayscale® Bitcoin Trust,翻译过来是灰度公司的比特币信托基金。根据其官方的简介如下 首批仅投资于 BTC 并从其价格中获取价值的证券之一。 Grayscale® Bitcoin Trust 完全被动地投资于 BTC,使投资者能够以证券的形式接触 BTC,同时避免直接购买、存储和保管 BTC 的挑战。 简单来说GBTC 是灰度公司使用信托来购买了BTC,并且把信托进行证券化之后的产物。这种方式和常见的Reits (房地产信托基金)差不多。使用证券化的方式之后,就可以很简单的通过券商来购买BTC,而不需要考虑到存储,链上操作等等的问题。降低了购买操作的复杂度。 Grayscale Bitcoin Trust 的资产存储在离线或“冷”存储中,Coinbase Custody Trust Company, LLC 作为托管人。托管人是纽约银行法第 100 条规定的受托人,也是经修订的 1940 年投资顾问法第 206(4)-2(d)(6) 条规定的合格托管人。 下面是他的基本信息表 Info CN Value Benchmark Index 基准指数 CoinDesk Bitcoin Price Index (XBX) CUSIP 389637109 ISIN 国际证券识别码 US3896371099 Bloomberg GBTC US OTC GBTC Inception Date 成立日期 09/25/2013 Annual Fee 年费 2% AUM 资产管理规模 $16,217,757,167**‡ Shares Outstanding 流通股 692,370,100‡ BTC per share 每股比特币 0....

六月 14, 2023 · 1 分钟 · r4y

使用量化平台来进行交易所的新币打新

前 新币如果在某个交易所首发的话,那么开盘的时候。就是好机会。因为大家的挂单会在很短时间内进行撮合。导致短期可能会有较好的下单机会。此时如果成交那么可能会十分的有利可图。 就借着这个想法就使用量化平台来实现一个开盘低价打新的程序,附录会有完整代码。 正文 设计思路 因为需要在开盘的第一时间冲进去进行下单,所以这里需要做的有 监控开盘时间 开盘时间开始下单 下单力度控制 结束 一共这个四个阶段。 代码说明 整体代码逻辑很清晰,就不用额外说明了,这里有一段这样的代码。是因为发现 Gateio 在开盘之后存在一段时间的有深度但是无法下单的时间。 这样导致代码任务失效。特此补充说明 } else if ( exchange.Buy(0.001, 1000) == null) { msg = "无法正常下单,等待" Log(msg) Sleep(ApiReqInterval) } 附录 function pendingOrders(ordersNum, price, amount, deltaPrice, deltaAmount, volume) { var routineOrders = [] var ordersIDs = [] for (var i = 0 ; i < ordersNum ; i++) { // var routine = exchange.Go("Buy", price + i * deltaPrice, amount + i * deltaAmount) var routine = exchange....

五月 21, 2023 · 3 分钟 · r4y

在 kubernetes 集群中运行比特币节点

在 kubernetes 集群中运行比特币节点 前 最近在研究矿池的架构的K8s上的迁移,在尝试在集群上运行比特币节点。 通过K8s来跑节点存在的一些收益: 共用Prometheus系统来监控的比特币节点状态。 可以和其他的服务快速的集成通过Service 对比专用实例独立部署的话需要更少的资源 到目前为止,节点的pod 已经运行超过 164 天,没有遇到中断问题。下图是 bitcoind pod 状态: 资源准备 B基础镜像 使用dockerhub 的基础镜像ruimarinho/bitcoin-core 时刻保持和官网的最新版本的同步更新 磁盘大小和类型 到 2020 年初,比特币数据的大小约为 333GB [1] 。 所以节点需要分配了一个 600 GB 的 EBS 卷来作为存储。 使用sc1 EBS 类型。虽然速度不是最快。但是节点完全同步之后,IO 需求就会大大减少,后面就足够使用了 硬盘空间目前是足够使用的后面还需要进行继续的扩容。但我们需要再次扩展该卷 集群节点规格 目前所有的 k8s 节点都使用m5.xlarge节点。 所以 bitcoind pod 在m5.xlarge上运行。没有专用节点 部署 SVC bitcoind RPC服务 暴露的yaml 文件: kind: Service apiVersion: v1 metadata: name: bitcoind-mainnet spec: selector: app: bitcoind-mainnet ports: - name: rpc port: 8332 - name: zmq port: 28332 Deploy bitcoind Deployment 的 yaml文件...

四月 24, 2023 · 1 分钟 · r4y

Nginx 战斗准备--优化指南

​ 大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然而,如果你真的想挤压出nginx的性能,你必须更深入一些。在本指南中,我将解释Nginx的那些设置可以微调,以优化处理大量客户端时的性能。需要注意一点,这不是一个全面的微调指南。这是一个简单的预览——那些可以通过微调来提高性能设置的概述。你的情况可能不同。 基本的 (优化过的)配置 我们将修改的唯一文件是nginx.conf,其中包含Nginx不同模块的所有设置。你应该能够在服务器的**/etc/nginx**目录中找到nginx.conf。首先,我们将谈论一些全局设置,然后按文件中的模块挨个来,谈一下哪些设置能够让你在大量客户端访问时拥有良好的性能,为什么它们会提高性能。本文的结尾有一个完整的配置文件。 高层的配置 nginx.conf文件中,Nginx中有少数的几个高级配置在模块部分之上。 user www-data; pid /var/run/nginx.pid; worker_processes auto; worker_rlimit_nofile 100000; user和pid应该按默认设置 - 我们不会更改这些内容,因为更改与否没有什么不同。 worker_processes 定义了nginx对外提供web服务时的worder进程数。最优值取决于许多因素,包括(但不限于)CPU核的数量、存储数据的硬盘数量及负载模式。不能确定的时候,将其设置为可用的CPU内核数将是一个好的开始(设置为“auto”将尝试自动检测它)。 worker_rlimit_nofile 更改worker进程的最大打开文件数限制。如果没设置的话,这个值为操作系统的限制。设置后你的操作系统和Nginx可以处理比“ulimit -a”更多的文件,所以把这个值设高,这样nginx就不会有“too many open files”问题了。 Events模块 events模块中包含nginx中所有处理连接的设置。 events { worker_connections 2048; multi_accept on; use epoll; } worker_connections设置可由一个worker进程同时打开的最大连接数。如果设置了上面提到的worker_rlimit_nofile,我们可以将这个值设得很高。 记住,最大客户数也由系统的可用socket连接数限制(~ 64K),所以设置不切实际的高没什么好处。 multi_accept 告诉nginx收到一个新连接通知后接受尽可能多的连接。 use 设置用于复用客户端线程的轮询方法。如果你使用Linux 2.6+,你应该使用epoll。如果你使用*BSD,你应该使用kqueue。想知道更多有关事件轮询?看下维基百科吧(注意,想了解一切的话可能需要neckbeard和操作系统的课程基础) (值得注意的是如果你不知道Nginx该使用哪种轮询方法的话,它会选择一个最适合你操作系统的) HTTP 模块 HTTP模块控制着nginx http处理的所有核心特性。因为这里只有很少的配置,所以我们只节选配置的一小部分。所有这些设置都应该在http模块中,甚至你不会特别的注意到这段设置。 http { server_tokens off; sendfile on; tcp_nopush on; tcp_nodelay on; ... } server_tokens 并不会让nginx执行的速度更快,但它可以关闭在错误页面中的nginx版本数字,这样对于安全性是有好处的。 sendfile可以让sendfile()发挥作用。sendfile()可以在磁盘和TCP socket之间互相拷贝数据(或任意两个文件描述符)。Pre-sendfile是传送数据之前在用户空间申请数据缓冲区。之后用read()将数据从文件拷贝到这个缓冲区,write()将缓冲区数据写入网络。sendfile()是立即将数据从磁盘读到OS缓存。因为这种拷贝是在内核完成的,sendfile()要比组合read()和write()以及打开关闭丢弃缓冲更加有效(更多有关于sendfile) tcp_nopush 告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送 tcp_nodelay 告诉nginx不要缓存数据,而是一段一段的发送–当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值。...

四月 3, 2023 · 2 分钟 · r4y