自定义扩展文件支持

遇到问题加QQ群聊 群主在线解答 点击加入群聊【星辰开发】

Redis

pip install redis
def get_conn():from redis import Redisfrom configparser import ConfigParserconfig = ConfigParser()config.read('Config.ini')Redis_Host = config['Redis']['Host']Redis_Port = config['Redis']['Port']Redis_pwd = config['Redis']['pwd']Redis_DB = config['Redis']['DB']Redis_Conn = Redis(host=Redis_Host, port=int(Redis_Port), password=Redis_pwd, db=int(Redis_DB))return Redis_Conndef get_key(key):from json import loadsRedis_Conn = get_conn()if key == "*":return Redis_Conn.keys()elif Redis_Conn.exists(key):data = loads(Redis_Conn.get(key))time = Redis_Conn.ttl(key)return data, timereturn False
def keys(key):Redis_Conn = get_conn()return Redis_Conn.keys(key)def Set(key, data, expire=None):from json import dumpsRedis_Conn = get_conn()Redis_Conn.set(key, dumps(data))if expire != None:Redis_Conn.expire(key, expire)def exists(key):key_exists = get_conn().exists(key)return key_existsdef delete(key):get_conn().delete(key)

OneBotAPI

# 拼接NTQQ的URL
def joint_URL(self_id):from configparser import ConfigParserconfig = ConfigParser()config.read('config.ini')QQNT_Host = config['QQNT']['Host']QQNT_Port = config['QQNT']['Port']# 返回 http://127.0.0.1:5001return f"http://{QQNT_Host}:{QQNT_Port}"# 获取消息内容
def get_message(self_id, message_id):import requestsdata = {"message_id": message_id}return requests.get(f"{joint_URL(self_id)}/get_msg", params=data).json()# 发送群消息
def send_group_msg(self_id, group, message, auto_escape=False):import requestsdata = {"group_id": group,"message": message,"auto_escape": auto_escape,"rate_limit_interval": 100000}requests.get(f"{joint_URL(self_id)}/send_group_msg", params=data)# 发送私聊
def send_private_msg(self_id, user_id, message, auto_escape=False):import requestsdata = {"group_id": user_id,"message": message,"auto_escape": auto_escape}requests.get(f"{joint_URL(self_id)}/send_private_msg", params=data)# 群聊禁言
def set_group_ban(self_id, group_id, user_id, duration=0):import requestsdata = {"group_id": group_id,"user_id": user_id,"duration": duration}requests.get(f"{joint_URL(self_id)}/set_group_ban", params=data)# 群聊踢人
def set_group_kick(self_id, group_id, user_id, reject_add_request=False):import requestsdata = {"group_id": group_id,"user_id": user_id,"reject_add_request": reject_add_request}requests.get(f"{joint_URL(self_id)}/set_group_kick", params=data)# 撤回信息
def delete_msg(self_id, message_id):import requestsdata = {"message_id": message_id}requests.get(f"{joint_URL(self_id)}/delete_msg", params=data)# 设置群组专属头衔
def set_group_special_title(self_id, group_id, user_id, special_title):import requestsdata = {"group_id": group_id,"user_id": user_id,"special_title": special_title,}requests.get(f"{joint_URL(self_id)}/set_group_special_title", params=data)# 获取 QQ 相关接口凭证
def get_credentials(self_id, domain):import requestsdata = {"domain": domain,}return requests.get(f"{joint_URL(self_id)}/get_credentials", params=data)# 获取 CSRF Token
def get_csrf_token(self_id):import requestsreturn requests.get(f"{joint_URL(self_id)}/get_csrf_token")

MySQL

def get_conn():from mysql import connectorfrom configparser import ConfigParserconfig = ConfigParser()config.read('config.ini')MySQL_Host = config['MySQL']['Host']MySQL_Port = config['MySQL']['Port']MySQL_User = config['MySQL']['User']MySQL_Password = config['MySQL']['Password']MySQL_Database = config['MySQL']['Database']return connector.connect(user=MySQL_User, password=MySQL_Password, host=MySQL_Host, database=MySQL_Database)# 数据库查询操作
def Select(sql):conn = get_conn()mycursor = conn.cursor()try:conn.ping(reconnect=True)mycursor.execute(sql)  # Get the column namesmyresult = mycursor.fetchall()columns = [i[0] for i in mycursor.description]myresult = [dict(zip(columns, row)) for row in myresult]return myresultexcept Exception as e:print(e)return 0finally:mycursor.close()# 数据库更新操作
def Update(sql):from threading import Lockconn = get_conn()lock = Lock()lock.acquire()  # 获取锁以确保线程安全try:mycursor = conn.cursor()conn.ping(reconnect=True)mycursor.execute(sql)conn.commit()except Exception as e:print(e)finally:mycursor.close()  # 关闭游标conn.close()  # 关闭数据库连接lock.release()  # 释放锁

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/12143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring AI开发前期开发指导(maven依赖下载问题解决)

文章目录 说明开发条件网络环境准备本地环境准备开发工具准备 特殊说明maven配置项目jar一致下载错误解决可行的版本搭配 说明 动力节点视频教程地址,本文章学习该教程,同时说明的maven配置问题导致的项目依赖下载失败的问题和其他问题的记录。 开发条…

nginx-rtmp

1.已经安装nginx;configure配置模块;make编译无需安装;把objs/nginx复制到已安装的宁目录下 ./configure --prefix/usr/local/nginx --add-module/usr/local/src/fastdfs-nginx-module/src --add-module/usr/local/src/nginx-rtmp-module-mas…

浅谈SiC MOSFET之双脉冲原理

1.双脉冲实验实验的必要性 在平常的使用中,我们基本通过芯片手册来了解功率器件的各种性能参数,但是手册中的参数的测量环境都是在理想状态下,与实际使用或多或少都会有差别。通过双脉冲实验可以获取器件在真实工况下的参数,对于产…

Runes 生态一周要览 ▣ 2024.5.06-5.12

1、香港「Runes Asia 2024」符文峰会之行圆满结束。 2、BEVM 宣布首次大规模 RUNES 空投现已结束!符文桥即将上线。 3、来自 Book of Blob 的交互式视听信息铭刻了第一个 Epic Sat 在 coinex 上市交易。 4、 Binance Research 发布了对 Runes 的报告。 5、HOPE•…

redis报错500

之前自己举一反三把value也给序列化了: 然后报错了: 原因是这里传入的是Integer类型,序列化的话就变为string类型了

Android Studio 查看打开Room数据库数据

关于作者: CSDN内容合伙人、技术专家, 从零开始做日活千万级APP,带领团队单日营收超千万。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业化变现、人工智能等,希望大家多多支持。 目录 一、导读二、概览…

前端面试1-15

说一说JS变量提升? 函数和var声明的变量会有变量提升,js在预编译阶段会将函数和var声明的变量提升至最前面先执行,之后再按顺序执行代码块进行赋值,而let和const声明的变量只是创建提升,在预编译中将其创建&#xff0…

漏桶算法:稳定处理大量突发流量的秘密武器!

漏桶算法的介绍 我们经常会遇到这样一种情况:数据包的发送速率不稳定,而网络的带宽有限。如果在短时间内有大量的数据包涌入,那么网络就会出现拥塞,数据包的丢失率就会增大。为了解决这个问题,人们提出了一种叫做“漏…

lerna实战(一)

前言 将大型代码仓库分割成多个独立版本化的 软件包(package)对于代码共享来说非常有用。但是,如果某些更改 跨越了多个代码仓库的话将变得很 麻烦 并且难以跟踪,并且, 跨越多个代码仓库的测试将迅速变得非常复杂。 …

ai语音机器人智能电销机器人具体功能及工作流程

ai语音电销机器人智能,代替的主要是电话销售人员电话筛选客户的工作。因为电话销售人员每天90%的时间都是用在了拨打电话找客户上了。像这类简单、重复性的工作是完全可以由机器人取代的,我们一起来看看电销机器人的工作流程: 1、一键导入要…

Spring MVC 介绍及其使用(详细)

目录 一.什么是SpringMVC呢? 1.1MVC的介绍 1.2SpringMVC和MVC的关系 二.SpringMVC的学习 第一步:创建项目 第二步,SpringMVC的连接 第三步,Spring MVC获取参数 第四步 SpringMVC的输出 总结 特点和优势 核心组件 一.什…

发布一个属于自己的 npm工具包

我们可以发布一个属于自己的工具包到 npm 服务上,方便自己和其他开发者使用,参与社区贡献,操作步骤如下: 创建与发布 npm 初始化工具包,package.json 填写包的信息 (包的名字是唯一的)注册账号 https://www.npmjs.co…

Springboot打包jar如何后台启动和查看日志?

如何后台启动Spring Boot的fat jar 使用nohup命令启动: 在Linux或Unix系统中,你可以使用nohup命令来启动jar包,以确保即使你关闭了终端或断开了SSH连接,程序仍然可以在后台运行。命令格式如下:nohup java -jar yourapp…

利用matplotlib和KNeighborsClassifier,进行DBSACN聚类算法

代码: # -*- coding: utf-8 -*- """ Created on Sat May 11 10:23:50 2024author: admin """ # 调用库 import numpy as np import matplotlib.pyplot as plt # 调用人工智能模型库 from sklearn.neighbors import KNeighborsClassi…

2024届SLAMer秋招算法岗面试题总结

2024届SLAMer秋招算法岗面试题总结 1 实习面试篇禾多科技小米Nreal极智嘉 2 秋招面试篇商汤南测(线下)影石零束中移上研院(线下) 先说一下本人的情况,研究方向视觉slam多传感器融合,bg双985,一篇…

如何解决NodeJS内存不足引起的程序崩溃问题?

当你的内存量不足(比如云服务器上),可以给系统设置虚拟内存,然后用这个方法增加NodeJS可用内存量,以此解决内存不足而导致的程序崩溃问题。 具体的,就是使用--max-old-space-size参数来增加V8引擎的最大内…

前端最方便正则验证手机号

let reg /^((13[0-9])|(14[0-9])|(15[0-9])|(17[0-9])|(18[0-9]))\d{8}$/;if (!reg.test(this.phone)) {uni.showToast({icon: none,title: 请输入正确的11位手机号}) }

009.Rx(Reactive Extenstions)的关系

响应式扩展库在组成响应式系统的应用程序中发挥作用,它与消息驱动的概念相关。Rx不是在应用程序或服务器之间移动消息的机制,而是在消息到达时负责处理消息并将其沿着应用程序内部的执行链传递的机制。需要说明的是,即使您没有开发包含许多组…

【MySQL数据库】丨高可用之MHA集群部署

一、准备工作 1.1 修改主机名 vim /etc/hosts# 添加对应主机 192.168.28.128 mha1 192.168.28.131 mha2 192.168.28.132 mha31.2 关闭防火墙及修改selinux # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭自启动# 修改selinux vim /etc/sy…

nginx配置域名与IP访问服务冲突问题

在最近的一次开发中遇到一个问题,我在云服务器上部署了两个服务,A服务和B服务, A服务在服务器中用的端口是80端口,所以我在浏览器访问的地址就是 B服务在服务器中用的是9818端口,所以我在浏览器访问的是 现在我给B服务…