企业微信发送音频视频文件

企业微信发送文件 import requests import json import io class WeChatBot: def __init__(self, api_key): self.api_key = api_key self.base_url = f'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={self.api_key}' self.headers = {'Content-Type': 'application/json'} self.upload_url = f'https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key={self.api_key}&type=file' def send_message(self, data): return self._post_request(self.base_url, data) def upload_media(self, content, file_name, content_type): files = {'media': (file_name, content, content_type)} return self._post_request(self.upload_url, files=files, is_json=False) def upload_text_as_media(self, text_content, file_name): file_stream = io.BytesIO(text_content.encode('utf-8')) return self.upload_media(file_stream, file_name, 'application/octet-stream') def upload_audio_as_media(self, audio_file_path): return self._upload_file(audio_file_path, 'audio/mpeg') def upload_video_as_media(self, video_file_path): return self._upload_file(video_file_path, 'video/mp4') def send_media(self, response): if response.get("media_id"): data = { "msgtype": "file", "file": {"media_id": response["media_id"]} } return self.send_message(data) return response def _post_request(self, url, data=None, files=None, is_json=True): try: if is_json: response = requests.post(url, headers=self.headers, data=json.dumps(data)) else: response = requests.post(url, files=files) response.raise_for_status() return response.json() except requests.RequestException as e: print(f"请求时出错: {e}")……

阅读全文

用vercel做反向代理

用vercel做反向代理 { "rewrites": [ { "source": "/api/(.*)", "destination": "https://myjsapi.gwozai.com/$1" } ] } 可以参考我的vercel vuetest/vercel.json at main · gwozai/vuetest (github.com)……

阅读全文

每周随便写点

每周随便写点,每周一更吧 写博客整理整理思路,加油。 现在是继续考研,心无杂念。 今天买了个typora会员,想花钱。 昨天旧手机花了两百,贴了个钢化膜。 hugo博客很轻量,就用hugo来写博客。……

阅读全文

一些好用的项目

可以用docker搭建的项目 包含docker,windows 的一些好用的程序推荐 [好用的docker项目提交]() nocodb docker run -d --name nocodb-mysql -v "$(pwd)"/nocodb:/usr/app/data/ -p 8383:8080 -e NC_DB="mysql2://minio.gwozai.com:3306?u=nocodb&p=3NMYybaNCzFJCf6M&d=nocodb" -e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" nocodb/nocodb:latest koishi koishi docker run -d –name koishi -v $PWD/koishi.config.js:/app/koishi.config.js -p 5140:5140 koishijs/koishi:latest memos pastme……

阅读全文

jdk安装

linux 安装 java8 图文说明 第一步下载安装包 下载地址: jdk8 官网下载链接 根据自己系统的位数下载相应版本 查询自己的 linux 位数命令:getconf LONG_BIT 根据自己的系统下载相应的包(我的是 64,所以我选 64 位包) 第二步安装 将安装包传到服务器,并进行解压。 解压命令: cd /usr/software tar -zxvf jdk-8u333-linux-x64.tar.gz 解压后我们可以看到,解压目录下多了一个……

阅读全文

rustdesk的安装,替代向日葵

修改于 2023年10月21日 > 原文地址 rustdesk.com (官方的教程还是最好用了) 目前,该脚本将下载和设置中继和信号服务器(hbbr 和 hbbs),生成配置并将它们托管在受密码保护的网页上,以便轻松部署到客户端。 要求 你需要安装Linux,脚本在CentOS Linux 7/8,Ubuntu 18/20和Debi……

阅读全文

onedrive配置

本文由 简悦 SimpRead 转码, 原文地址 cloud.tencent.com Rclone 是一个命令行程序,用于管理云存储上的文件。它是云供应商的网络存储接口的一个功能丰富的替代品。超过 40 种云存储产品支持 rclone,包括 S3… 概述 Rclone 是一个命令行程序,用于管理云存储上的文件。它是云供应商的网络存储接口的一个功能丰富的替代品。超过 40 种云存储产品……

阅读全文

centos 安装 java 11

centos7 安装java11 第一步:肯定是下载jdk,我下载的是”.tar.gz”格式的文件。然后传到合适的地址上。 可以的话去官网下载试试,不想麻烦的话用这个jdk-11.0.13_linux-x64_bin.tar.gz 第二步:解压jdk的安装包,”t……

阅读全文

一言的本地搭建

可以跑起来了 还需要有更灵活的手段 docker 安装 我把服务器的6379端口关了 先有一个没有密码的redis, docker run -it -v /mydata/hitokoto:/usr/src/app/data –network host hitokoto/api:latest docker run -id –name redis -p 6379:6379 -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf docker run -id -v /mydata/hitokoto:/usr/src/app/data --network host hitokoto/api:latest 用docker安装redis –network 再用docker安装hitokoto 示例 https://v1.hitokoto.cn/?c=f&encode=text 看一下nginx如何反向代理 nginx代理 那么麻烦……

阅读全文