(头图作者:B 站:Arice_夜声)《辉夜大小姐想让我告白~天才们的恋爱头脑战~》,简称《辉告》或《辉夜》。是日本漫画家赤坂明以恋爱喜剧为题材创作的校园漫画作品,现于《周刊 YOUNG JUMP》连载中。后改编为动画,于 2019 年 1 月开播,在第三集的书记舞之后火爆 B 站,拿下当季 B 霸。当然了,实际上不止国内,国外的死宅们对于《辉告》也是十分喜爱,可以说是少见的同时受到全球观众喜爱的动画。当然了,今天要聊的并不是《辉告》的动画,相信大部分观众都已经看过了,我再说一遍也有些无趣了。那么今天就来聊聊漫画版
2019-07-16 node-coolq-robot 使用介绍
node-coolq-robot
作者:草梅友仁
本项目基于 cq-robot、coolq-http-api、cq-websocket ,按照官方 SDK 风格重新封装了事件函数和 api 函数
项目特色
仿官方 SDK 风格,熟悉易语言版的很快就可以上手。
仿酷 Q 目录设计,可以像原生酷 Q 插件那样载入插件,也便于插件的开发
可以使用 JavaScript 和 TypeScript 进行开发,具有一定的跨平台性
项目目录
- /src 源代码
- /app 插件存放的位置
- /com.example.demo 应用根目录
- /data 应用数据存放目录
- index.json/index.jsonc 插件配置项
- index.ts/index.ts 插件入口文件
- /com.example.demo 应用根目录
- /conf
- setting.json/setting.jsonc CQWebSocket 连接配置,用于和 coolq-http-api 建立连接
- /utils 一些工具类
- index.ts 项目运行入口
- /app 插件存放的位置
- /dist 最终需要运行的文件
快速开始
clone 本项目
1
git clone https://github.com/CaoMeiYouRen/node-coolq-robot.git
修改 src/conf/setting.jsonc 中的accessToken【重要】,其他参数可以默认(关于该配置,详见CoolQ HTTP API 配置)
酷 Q 安装 coolq-http-api,修改 酷 Q Pro\data\app\io.github.richardchien.coolqhttpapi\config 下的相关配置,其中 access_token 与上方 accessToken 保持一致(关于该配置,详见CQWebSocketOption)
酷 Q 启动 coolq-http-api,注意,如果修改 access_token 时插件已启用,请重载应用或重启酷 Q
执行 npm run build 生成 dist 文件
执行 dist/index.js,开发环境下可以使用 nodemon,生产环境可以使用 pm2 等
在控制台查看效果(如果出现 [WebSocket] 连接成功 即为成功)
演示效果
安装插件
所有插件放在 src/app 目录下,新建一个由 appId 命名的文件夹(下称为应用根目录),入口文件必须为 index.js/index.ts(编译后均为 index.js),配置项为 index.json 或 index.jsonc【关于 jsonc 需要特别解释下,就是支持注释的 json,即 VScode 中的 JSON with Comments 格式】
应用所有数据需存放在 [appId]/data/ 目录下,以免给用户造成困扰
考虑到插件可能会有自己的 node_modules 依赖,将依赖也装在 项目根目录 下即可(注意,如果安装在项目根目录有问题,也可安装在 应用根目录 ,只不过 src 和 dist 目录下均需安装)
注意:最终执行的文件为 dist 目录下的内容,因此如果有除了 json/jsonc 格式以外的文件需要从 src 目录下复制,请修改 gulpfile.js 文件
插件开发
对于开发者,本人也提供了 demo,建议使用 TypeScript 进行开发,当然也支持用 JavaScript 开发
以下是一个空的 demo 示例,更详细内容请查看本项目的 src/app/下面的 demo
1 | class App extends CQApp { |
关于应用加载:符合以下条件之一的应用不会载入
- AppID 与其根文件夹名称不同
- CQ_API 版本不为 9
- HTTP_API 版本不为 4
- 应用未启用(isEnable=false)
api 权限:在应用根目录的 index.json 中配置,对于没有权限的 api 调用不会执行
插件事件优先级:在应用根目录的 index.json 中配置,数值越低优先级越高,高优先级的可以截断消息。注意:本项目中并未对插件事件优先级做限制,而且也不限制优先级为 10000 时就不能截断消息,但为了与官方要求一致,建议不要使用 10000、20000、30000、40000、50000 以外的优先级,并且不得在优先级为 10000 时截断消息
日志:日志文件会在同级运行目录生成 log 文件夹。在 log 文件夹下有 app 和 debug 两个文件夹,分别是生产环境和开发环境的日志,会记录下 api 的调用和应用接收到的事件信息。当插件处于 debug 模式时,所有日志都在 debug 文件夹下;生产环境下,所有日志都在 app 目录下
项目依赖
node-cq-websocket : https://github.com/momocow/node-cq-websocket
coolq-http-api : https://github.com/richardchien/coolq-http-api
项目参考
JCQ-CoolQ : https://github.com/Meowya/JCQ-CoolQ
(本项目在开发中很大程度上借鉴了 JCQ 的思路,在此表示感谢)
本文作者:草梅友仁
本文地址: https://blog.cmyr.ltd/archives/5e4e9fe0.html
版权声明:本文采用 CC BY-NC-SA 4.0 协议 进行分发,转载请注明出处!
三分钟搭建一个 web 服务器
三分钟搭建一个 web 服务器
by 草梅友仁
项目地址https://github.com/CaoMeiYouRen/simple-web-server
上面的打不开可以访问这个地址https://gitee.com/caomeiyouren/simple-web-server
使用
新建一个目录,然后切换到该目录
运行以下命令即可,前提是已经安装了 git
1 | git clone https://github.com/CaoMeiYouRen/simple-web-server.git |
然后继续运行
1 | npm i #下载依赖 |
运行后可通过 http://127.0.0.1:80 来访问
运行效果
如果不会使用 git 的也可以参考下面的文件目录自己建一个
文件目录
- src/ 源代码
- app.js web 服务脚本
- public/ web 服务器根目录
- index.html
- package.json npm 包配置文件
package.json
1 | { |
app.js
1 | var express = require("express"); |
index.html
1 | <!DOCTYPE html> |
本文作者:草梅友仁
本文地址: https://blog.cmyr.ltd/archives/fd373c4f.html
版权声明:本文采用 CC BY-NC-SA 4.0 协议 进行分发,转载请注明出处!
C#安装 MySQL 驱动以及实现简单的 MySQL 操作
C#安装 MySQL 驱动以及实现简单的 MySQL 操作
by 草梅友仁
一、驱动下载
首先前往 MySql 官网下载驱动。下载地址:https://dev.mysql.com/downloads/connector/net/
注意驱动版本即可。注意:要下载.zip 版本,解压后会看到几个 dll,那个就是需要的驱动
最新的 8.0.16 版本驱动要求.net 版本在 4.5 以上,如果需要 4.0 版本的则需要 6.8.8 版本,选择 4.0 版本驱动即可
由于本人安装的 Visual Studio 2010 最高只支持.net4.0,因此只能使用旧版驱动。不管哪个版本,MySQL 的核心驱动都是 MySql.Data.dll,使用的时候只需要引入这个即可
二、驱动引入
- 新建一个项目,名称随意。
- 找到项目位置,在项目根目录下新建 lib 文件夹
- 将 MySql.Data.dll 复制到该目录下
回到 Visual Studio 2010 中,右键添加添加引用
选择浏览,找到 MySql.Data.dll,选中并点击确定
三、连接数据库
- 新建一个 Database.cs 类,并引用 MySql.Data.MySqlClient 类。注意类名前添加 public,否则无法在其他类中调用这个类
- 写一个初始化方法
1 | public class Database |
3. 在主程序中调用该方法,观察控制台是否有输出,如果显示“数据库连接成功”则表明数据库连接已成功,操作正确。
四、编写数据库操作辅助类
对数据库的操作有很多重复的内容,因此这些可以像初始化方法这样提取出来。
查询操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18/// <summary>
/// 查询操作,成功返回MySqlDataReader,具体的数据可以从该对象中获取;失败返回null
/// </summary>
public static MySqlDataReader Select(String sql)
{
try
{
Init();
MySqlCommand command = new MySqlCommand(sql, conn);
MySqlDataReader data = command.ExecuteReader();//这里返回从数据库获取的数据
return data;
}
catch (Exception e)//注意了,对数据库的操作尤为要注意异常处理,因此直接写在这里即可
{
Console.WriteLine("Exception caught: {0}", e);
return null;
}
}增删改操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19/// <summary>
/// 执行一条sql指令,成功返回true,失败返回fasle
/// 事实上
/// </summary>
public static Boolean DbOp(String sql)
{
try
{
Init();
MySqlCommand command = new MySqlCommand(sql, conn);
int result = command.ExecuteNonQuery();//这里返回的是受影响的数据条数,如果不为零则表明操作成功
return result != 0;
}
catch (Exception e)
{
Console.WriteLine("Exception caught: {0}", e);
return false;
}
}实现字符串的转义
1
2
3
4
5
6
7
8
9
10
11/// <summary>
/// 转义字符串 例如 abc 转为 'abc'
/// </summary>
public static String Escape(Object str)
{
if (str.GetType() == "".GetType())
{//是字符串的进行防注入
return "'" + MySqlHelper.EscapeString(str.ToString()) + "'";//注意,MySQL中表示字符串时一定需要单引号或反引号
}
return str.ToString();
}
五、实现简单的增删查改功能
数据表名称:user
字段:id,类型 int;name,类型 text;pw,类型 text
如果要用 sql 语句创建,可参考如下,也可以用可视化工具创建
1 | CREATE TABLE IF NOT EXISTS `user`( |
- 在项目中新建一个 User.cs 类,内容如下
1 | using System; |
- 实现 user 的查询
1 | /// <summary> |
3.实现 user 的增加
1 | /// <summary> |
4.实现 user 的更新
1 | /// <summary> |
5.实现 user 的删除
1 | /// <summary> |
本文作者:草梅友仁
本文地址: https://blog.cmyr.ltd/archives/9925ae75.html
版权声明:本文采用 CC BY-NC-SA 4.0 协议 进行分发,转载请注明出处!
三分钟搭建一个 vue-webpack 项目
三分钟搭建一个 vue-webpack 项目
by 草梅友仁
项目地址https://github.com/CaoMeiYouRen/simple-vue-webpack
上面的打不开可以访问这个地址https://gitee.com/caomeiyouren/simple-vue-webpack
使用
新建一个目录,然后切换到该目录
运行以下命令即可,前提是已经安装了 git
1 | git clone https://github.com/CaoMeiYouRen/simple-vue-webpack.git |
然后继续运行
1 | npm i #下载依赖 |
运行效果
最后
由于本项目还是有些复杂的,因此建议直接看项目的 readme.md 文件,里面有详细解释
本文作者:草梅友仁
本文地址: https://blog.cmyr.ltd/archives/377812f1.html
版权声明:本文采用 CC BY-NC-SA 4.0 协议 进行分发,转载请注明出处!