Skip to content

Commit 5397110

Browse files
committed
feat: 添加了中文分词和图片 OCR 接口, 并将必要的类型改为 record
1 parent 8e761e0 commit 5397110

File tree

75 files changed

+404
-70
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+404
-70
lines changed

src/EleCho.GoCqHttpSdk.MessageMatching/EleCho.GoCqHttpSdk.MessageMatching.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<TargetFrameworks>net6.0;net7.0;netcoreapp3.1;netstandard2.0;net462</TargetFrameworks>
55
<Nullable>enable</Nullable>
66
<LangVersion>latest</LangVersion>
7-
<Version>1.0.0</Version>
7+
<Version>1.0.1</Version>
88
<Description>EleCho.GoCqHttpSdk 的消息匹配拓展</Description>
99
<Copyright>Copyright (c) EleCho 2023</Copyright>
1010
<RepositoryUrl>https://github.com/OrgEleCho/EleCho.GoCqHttpSdk</RepositoryUrl>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
using EleCho.GoCqHttpSdk.Action.Model.Params;
2+
3+
namespace EleCho.GoCqHttpSdk.Action
4+
{
5+
/// <summary>
6+
/// 获取分词
7+
/// </summary>
8+
public class CqGetWordSlicesAction : CqAction
9+
{
10+
/// <summary>
11+
/// <inheritdoc/>
12+
/// </summary>
13+
public override CqActionType ActionType => CqActionType.GetWordSlices;
14+
15+
/// <summary>
16+
/// 分词内容
17+
/// </summary>
18+
public string Content { get; set; }
19+
20+
/// <summary>
21+
/// 实例化
22+
/// </summary>
23+
/// <param name="content"></param>
24+
public CqGetWordSlicesAction(string content)
25+
{
26+
Content = content;
27+
}
28+
29+
internal override CqActionParamsModel GetParamsModel()
30+
{
31+
return new CqGetWordSlicesActionParamsModel(Content);
32+
}
33+
}
34+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
using EleCho.GoCqHttpSdk.Action.Model.Params;
2+
3+
namespace EleCho.GoCqHttpSdk.Action
4+
{
5+
/// <summary>
6+
/// 图片 OCR
7+
/// </summary>
8+
public class CqOcrImageAction : CqAction
9+
{
10+
/// <summary>
11+
/// <inheritdoc/>
12+
/// </summary>
13+
public override CqActionType ActionType => CqActionType.OcrImage;
14+
15+
/// <summary>
16+
/// 图片 ID
17+
/// </summary>
18+
public string Image { get; set; }
19+
20+
/// <summary>
21+
/// 实例化
22+
/// </summary>
23+
/// <param name="image"></param>
24+
public CqOcrImageAction(string image)
25+
{
26+
Image = image;
27+
}
28+
29+
internal override CqActionParamsModel GetParamsModel()
30+
{
31+
return new CqOcrImageActionParamsModel(Image);
32+
}
33+
}
34+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#pragma warning disable IDE1006 // Naming Styles
2+
3+
namespace EleCho.GoCqHttpSdk.Action.Model.Params
4+
{
5+
internal class CqGetWordSlicesActionParamsModel : CqActionParamsModel
6+
{
7+
public CqGetWordSlicesActionParamsModel(string content)
8+
{
9+
this.content = content;
10+
}
11+
12+
public string content { get; }
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#pragma warning disable IDE1006 // Naming Styles
2+
3+
namespace EleCho.GoCqHttpSdk.Action.Model.Params
4+
{
5+
internal class CqOcrImageActionParamsModel : CqActionParamsModel
6+
{
7+
public string image { get; set; }
8+
9+
public CqOcrImageActionParamsModel(string image)
10+
{
11+
this.image = image;
12+
}
13+
}
14+
}

src/EleCho.GoCqHttpSdk/Action/Model/ResultData/CqActionResultDataModel.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ internal class CqActionResultDataModel
8080
GetVersionInfo => dataValue.Deserialize<CqGetVersionInformationActionResultDataModel>(JsonHelper.Options),
8181

8282
ReloadEventFilter => dataValue.Deserialize<CqReloadEventFilterActionResultDataModel>(JsonHelper.Options),
83+
GetWordSlices => dataValue.Deserialize<CqGetWordSlicesActionResultDataModel>(JsonHelper.Options),
84+
OcrImage => dataValue.Deserialize<CqOcrImageActionResultDataModel>(JsonHelper.Options),
8385

8486
_ => throw new NotImplementedException()
8587
};

src/EleCho.GoCqHttpSdk/Action/Model/ResultData/CqBanGroupAnonymousMemberActionResultDataModel.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
using System;
1+
using EleCho.GoCqHttpSdk.DataStructure.Model;
2+
using System;
23
using System.Collections.Generic;
34
using System.Linq;
45
using System.Text;
6+
using System.Text.Json.Serialization;
57
using System.Threading.Tasks;
68

79
namespace EleCho.GoCqHttpSdk.Action.Model.ResultData
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using System.Text.Json.Serialization;
2+
3+
namespace EleCho.GoCqHttpSdk.Action.Model.ResultData
4+
{
5+
internal class CqGetWordSlicesActionResultDataModel : CqActionResultDataModel
6+
{
7+
public string[] slices { get; }
8+
9+
[JsonConstructor]
10+
public CqGetWordSlicesActionResultDataModel(string[] slices)
11+
{
12+
this.slices = slices;
13+
}
14+
}
15+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using EleCho.GoCqHttpSdk.DataStructure.Model;
2+
3+
namespace EleCho.GoCqHttpSdk.Action.Model.ResultData
4+
{
5+
internal class CqOcrImageActionResultDataModel : CqActionResultDataModel
6+
{
7+
public CqOcrImageActionResultDataModel(CqTextDetectionModel[] texts, string language)
8+
{
9+
this.texts = texts;
10+
this.language = language;
11+
}
12+
13+
public CqTextDetectionModel[] texts { get; }
14+
public string language { get; }
15+
}
16+
}

src/EleCho.GoCqHttpSdk/Action/Result/CqActionResult.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace EleCho.GoCqHttpSdk.Action
1010
/// <summary>
1111
/// 一个 CQ Action 结果
1212
/// </summary>
13-
public abstract class CqActionResult
13+
public abstract record class CqActionResult
1414
{
1515
internal CqActionResult() { }
1616

@@ -106,6 +106,8 @@ internal static CqActionResult CreateActionResultFromActionType(string actionTyp
106106
GetVersionInfo => new CqGetVersionInformationActionResult(),
107107

108108
ReloadEventFilter => new CqReloadEventFilterActionResult(),
109+
GetWordSlices => new CqGetWordSlicesActionResult(),
110+
OcrImage => new CqOcrImageActionResult(),
109111

110112
_ => throw new NotImplementedException()
111113
};

0 commit comments

Comments
 (0)