Skip to content

Commit

Permalink
适配kook平台的图片接收
Browse files Browse the repository at this point in the history
  • Loading branch information
super1207 committed Jun 28, 2023
1 parent a1a5544 commit 227fe58
Show file tree
Hide file tree
Showing 10 changed files with 498 additions and 91 deletions.
18 changes: 17 additions & 1 deletion src/MiraiCQ/MiraiCQ/MiraiCQ.vcxproj
Expand Up @@ -51,6 +51,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<CopyCppRuntimeToOutputDir>false</CopyCppRuntimeToOutputDir>
<Linkage>StaticLibrary_MT</Linkage>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
Expand Down Expand Up @@ -157,6 +158,7 @@
<ClCompile Include="tool\ImgTool.cpp" />
<ClCompile Include="tool\InputTool.cpp" />
<ClCompile Include="tool\IPCTool.cpp" />
<ClCompile Include="tool\Md5Tool.cpp" />
<ClCompile Include="tool\MsgIdTool.cpp" />
<ClCompile Include="tool\PathTool.cpp" />
<ClCompile Include="tool\StrTool.cpp" />
Expand Down Expand Up @@ -193,6 +195,7 @@
<ClInclude Include="tool\ImgTool.h" />
<ClInclude Include="tool\InputTool.h" />
<ClInclude Include="tool\IPCTool.h" />
<ClInclude Include="tool\Md5Tool.h" />
<ClInclude Include="tool\MsgIdTool.h" />
<ClInclude Include="tool\PathTool.h" />
<ClInclude Include="tool\StrTool.h" />
Expand All @@ -205,6 +208,7 @@
<ItemGroup>
<None Include="..\CQP_BIN\CQP.dll" />
<None Include="debug_tip.json" />
<None Include="packages.config" />
<None Include="plusprocess\cqpexport.def" />
</ItemGroup>
<ItemGroup>
Expand All @@ -215,5 +219,17 @@
<Image Include="MiraiCQ.ico" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\packages\curl-vc140-static-32_64.7.53.0\build\native\curl-vc140-static-32_64.targets" Condition="Exists('..\packages\curl-vc140-static-32_64.7.53.0\build\native\curl-vc140-static-32_64.targets')" />
<Import Project="..\packages\openssl-vc140-static-32_64.1.1.0\build\native\openssl-vc140-static-32_64.targets" Condition="Exists('..\packages\openssl-vc140-static-32_64.1.1.0\build\native\openssl-vc140-static-32_64.targets')" />
<Import Project="..\packages\curlcpp-vc140-static-32_64.1.0.2\build\native\curlcpp-vc140-static-32_64.targets" Condition="Exists('..\packages\curlcpp-vc140-static-32_64.1.0.2\build\native\curlcpp-vc140-static-32_64.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\curl-vc140-static-32_64.7.53.0\build\native\curl-vc140-static-32_64.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\curl-vc140-static-32_64.7.53.0\build\native\curl-vc140-static-32_64.targets'))" />
<Error Condition="!Exists('..\packages\openssl-vc140-static-32_64.1.1.0\build\native\openssl-vc140-static-32_64.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\openssl-vc140-static-32_64.1.1.0\build\native\openssl-vc140-static-32_64.targets'))" />
<Error Condition="!Exists('..\packages\curlcpp-vc140-static-32_64.1.0.2\build\native\curlcpp-vc140-static-32_64.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\curlcpp-vc140-static-32_64.1.0.2\build\native\curlcpp-vc140-static-32_64.targets'))" />
</Target>
</Project>
7 changes: 7 additions & 0 deletions src/MiraiCQ/MiraiCQ/MiraiCQ.vcxproj.filters
Expand Up @@ -249,6 +249,9 @@
<ClCompile Include="center\poke_event.cpp">
<Filter>center</Filter>
</ClCompile>
<ClCompile Include="tool\Md5Tool.cpp">
<Filter>tool</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="log\MiraiLog.h">
Expand Down Expand Up @@ -354,13 +357,17 @@
<ClInclude Include="tool\SysTool.h">
<Filter>tool</Filter>
</ClInclude>
<ClInclude Include="tool\Md5Tool.h">
<Filter>tool</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\CQP_BIN\CQP.dll" />
<None Include="plusprocess\cqpexport.def">
<Filter>plusprocess</Filter>
</None>
<None Include="debug_tip.json" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="MiraiCQ.rc" />
Expand Down
21 changes: 16 additions & 5 deletions src/MiraiCQ/MiraiCQ/center/event.cpp
Expand Up @@ -10,6 +10,7 @@
#include "../tool/BinTool.h"
#include "../tool/ImgTool.h"
#include "../tool/MsgIdTool.h"
#include "../tool/Md5Tool.h"
#include <websocketpp/base64/base64.hpp>


Expand Down Expand Up @@ -423,19 +424,20 @@ static bool deal_json_array(Json::Value & json_arr)
std::string md5_str;
std::string url;
std::string file_str = StrTool::get_str_from_json(dat_json, "file", "");
bool is_qq = false;
if (is_qq_url(dat_json)) {
is_qq = true;
md5_str = get_md5_from_file_str(file_str);
if (md5_str == "") {
md5_str = get_md5_from_imgurl(StrTool::get_str_from_json(dat_json, "url", ""));
}
url = "https://gchat.qpic.cn/gchatpic_new/0/0-0-" + md5_str + "/0?term=2";
}
else {
md5_str = get_md5_from_file_str(file_str);
url = StrTool::get_str_from_json(dat_json, "url", "");
}

if (md5_str == "")
if (md5_str == "" && is_qq == true)
{
MiraiLog::get_instance()->add_warning_log("Center", "无法从file字段获取图片的md5");
node = Json::Value();
Expand All @@ -450,8 +452,9 @@ static bool deal_json_array(Json::Value & json_arr)

/* 获得图片信息需要下载一部分图片 */
ImgTool::ImgInfo info;
info.md5_str = md5_str;
/* 这里进行两次尝试,增大成功概率 */
if (!ImgTool::get_info(url, info) && !ImgTool::get_info(url, info))
if (!ImgTool::get_info(url, info, is_qq) && !ImgTool::get_info(url, info, is_qq))
{
MiraiLog::get_instance()->add_warning_log("Center", "无法从url中获取图片信息:" + url);
/*
Expand All @@ -463,14 +466,22 @@ static bool deal_json_array(Json::Value & json_arr)
info.height = info.width = info.size = 0;
info.type = "image";
}
std::string cqimg_name = md5_str + "." + info.type;

if (info.md5_str == "")
{
MiraiLog::get_instance()->add_warning_log("Center", "无法从file字段获取图片的md5");
node = Json::Value();
continue;
}

std::string cqimg_name = info.md5_str + "." + info.type;
/* 创建目录 */
std::string exe_dir = PathTool::get_exe_dir();
PathTool::create_dir(exe_dir + "data");
PathTool::create_dir(exe_dir + "data\\image");
std::string cqimg_path = exe_dir + "data\\image\\" + cqimg_name + ".cqimg";
/* 此处将图片信息直接写入cqimg文件即可 */
WritePrivateProfileStringA("image", "md5", md5_str.c_str(), cqimg_path.c_str());
WritePrivateProfileStringA("image", "md5", info.md5_str.c_str(), cqimg_path.c_str());
WritePrivateProfileStringA("image", "width", std::to_string(info.width).c_str(), cqimg_path.c_str());
WritePrivateProfileStringA("image", "height", std::to_string(info.height).c_str(), cqimg_path.c_str());
WritePrivateProfileStringA("image", "size", std::to_string(info.size).c_str(), cqimg_path.c_str());
Expand Down
6 changes: 3 additions & 3 deletions src/MiraiCQ/MiraiCQ/mainprocess/mainprocess.cpp
Expand Up @@ -133,7 +133,7 @@ static void login_dlg_cb(Fl_Widget* o, void* p) {
static bool login_dlg()
{
LOGIN_INFO login_info;
Fl_Window win(300, 180, "MiraiCQ V2.4.1");
Fl_Window win(300, 180, "MiraiCQ V2.4.2");
win.begin();
login_info.ws_url = Config::get_instance()->get_ws_url();
login_info.access_token = Config::get_instance()->get_access_token();
Expand Down Expand Up @@ -450,7 +450,7 @@ static void ex_btn_cb(Fl_Widget* o, void* p)
static void plus_dlg()
{
//fl_register_images();
std::string str1 = StrTool::to_utf8("MiraiCQ插件管理V2.4.1 " + Config::get_instance()->get_name());
std::string str1 = StrTool::to_utf8("MiraiCQ插件管理V2.4.2 " + Config::get_instance()->get_name());
Fl_Double_Window win(508, 400, str1.c_str());
win.color(fl_rgb_color(0, 255, 255));
win.size_range(500, 400, 500, 400);
Expand Down Expand Up @@ -637,7 +637,7 @@ void mainprocess()
hide_all_window();
}

MiraiLog::get_instance()->add_info_log("VERSION", "V2.4.1");
MiraiLog::get_instance()->add_info_log("VERSION", "V2.4.2");
MiraiLog::get_instance()->add_info_log("CORE", "开源地址:https://github.com/super1207/MiraiCQ");

// 释放CQP.dll
Expand Down
6 changes: 6 additions & 0 deletions src/MiraiCQ/MiraiCQ/packages.config
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="curlcpp-vc140-static-32_64" version="1.0.2" targetFramework="native" />
<package id="curl-vc140-static-32_64" version="7.53.0" targetFramework="native" />
<package id="openssl-vc140-static-32_64" version="1.1.0" targetFramework="native" />
</packages>

0 comments on commit 227fe58

Please sign in to comment.