SuperDesign/Source/开发辅助工具/Manager/APIManager.cs
zilinsoft 1f8c54fe38 - *.[改进]项目支持自动打包功能。
### RySmartEditor    V1.0.2501.2701
- *.[改进]FTP上传时限制300毫秒内只能刷新一次UI进度。
### SuperDesign    V3.0.2501.2701
- *.[新增]新增支持在线升级功能。
#### 项目功能->项目管理
- *.[新增]FTP上传文件列表和打包文件列表支持在软件里直接编辑。
- *.[改进]更新dll版本将比对版本号,只更新版本号更新或者更新日期更新的dll。
#### 项目功能->更新日志
- *.[新增]新增支持自动记录过的分组信息,然后可以进行选择快速插入。
- *.[新增]记录使用过的项目信息到总数据库,以方便总览。
- *.[改进]右键插入日志时直接对富文本框进行编辑,而不是替换内容,从而具备撤销功能。
- *.[改进]改进MD日志输出的样式设计。
- *.[修复]修复《确认日志覆盖》窗口里的按钮,随着窗口大小变化,按钮会错乱的BUG。
- *.[修复]修复双击日志列表显示日志时,针对本周的时间显示不正确的BUG。
- *.[修复]修复右键新增日志时,如果没有分组,插入的行可能不正确的BUG。
- *.[修复]修复设为开发日志后,鼠标指针变到文本开头的问题。
#### 网页抓取工具
- *.[新增]新增多个常用UA。
- *.[新增]切换Url时如果存在Cookie和Header时,则提示是否清空。
- *.[新增]保存记录时新增支持保存UA。
- *.[新增]Url列表支持图标展示。
2025-01-27 15:41:54 +08:00

176 lines
6.7 KiB
C#

using Newtonsoft.Json.Linq;
using ryCommon;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ;
namespace SuperDesign.Manager
{
public class APIManager
{
public static string GetMdLogText(JArray jarr, DateTime dt,bool UseEmoji=false)
{
string log_text = "## :date:" + DateTime.Now.ToString("yyyy-MM-dd dddd") + "更新";
for (int i = 0; i < jarr.Count; i++)
{
var item = jarr[i];
log_text += "\r\n\r\n### " + item.GetJsonValue("ProjectName", "").Trim() + " V" + item.GetJsonValue("VerStr", "");
var logs = item.GetJsonValue("LogText", "").Replace("\r", "\n").Replace("\n\n", "\n").Split('\n');
for (int m = 0; m < logs.Length; m++)
{
if (logs[m].Length == 0) { continue; }
var log_item = logs[m].Replace("[开发]","");
if (log_item.StartsWith("*."))
{
log_item = "- " + log_item;
}
else if (log_item.StartsWith("["))
{
log_item = "- *." + log_item;
}
if (UseEmoji)
{
var is_kf = log_item.IndexOfEx("[开发]") > 0;
var type_item = log_item.GetStr("- *.[", "]");
if (type_item == "修复")
{
log_item = log_item.Replace("*.[" + type_item + "]", ":lady_beetle:"+(is_kf? ":secret:" : "")+"[" + type_item + "]");
}
else if (type_item == "改进")
{
log_item = log_item.Replace("*.[" + type_item + "]", ":100:"+(is_kf? ":secret:" : "")+"[" + type_item + "]");
}
else if (type_item == "新增")
{
log_item = log_item.Replace("*.[" + type_item + "]", ":cactus:"+(is_kf? ":secret:" : "")+"[" + type_item + "]");
}
else if (type_item == "删除")
{
log_item = log_item.Replace("*.[" + type_item + "]", ":x:"+(is_kf? ":secret:" : "")+"[" + type_item + "]");
}
}
log_text += "\r\n" + log_item.Trim();
}
}
return log_text;
}
public static string GetHtmlLogText(string bf_folder, JArray jarr, DateTime dt)
{
ryCommon.Ini ini = new Ini(bf_folder + "\\查看项目.ryp");
string log_text = "";
for (int i = 0; i < jarr.Count; i++)
{
var item = jarr[i];
var eng_name= item.GetJsonValue("ProjectName", "");
if(ini.ReadIni("NoVerHtml", eng_name,0)==1)
{
continue;
}
if (log_text.Length != 0)
{
log_text += "\r\n";
}
var ProjectName = item.GetJsonValue("ProjectChsName", "");
if(ProjectName.Length==0)
{
ProjectName = eng_name;
}
log_text += "<h4>" + System.Web.HttpUtility.HtmlEncode(ProjectName) + "</h4>";
var logs = item.GetJsonValue("LogText", "").Replace("\r", "\n").Replace("\n\n", "\n").Split('\n');
for (int m = 0; m < logs.Length; m++)
{
if (logs[m].Length == 0) { continue; }
var log_item = logs[m];
if (log_item.IndexOfEx("[开发]") >= 0) { continue; }
if (log_item.IndexOfEx("#### ")== 0) {
log_text += "\r\n<h4>" + System.Web.HttpUtility.HtmlEncode(log_item.Substring(5)) + "</h4>";
continue;
}
if (log_item.StartsWith("- *."))
{
log_text += "\r\n<p>" +System.Web.HttpUtility.HtmlEncode(log_item.Substring(2))+"</p>";
}
else
{
log_text += "\r\n<p>" + System.Web.HttpUtility.HtmlEncode(log_item) + "</p>";
}
}
}
return log_text;
}
public static string GetTortoiseGitProcPath()
{
DriveInfo[] driveInfo = DriveInfo.GetDrives();
for (int i = 0; i < driveInfo.Length; i++)
{
var path = driveInfo[i].Name + "Program Files\\TortoiseGit\\bin\\TortoiseGitProc.exe";
if (System.IO.File.Exists(path))
{
return path;
}
}
return "";
}
/// <summary>
/// 获取参数翻译名称
/// </summary>
/// <param name="ParamName"></param>
/// <returns></returns>
public static string GetParamTitle(string ParamName)
{
var title = "";
switch (ParamName.ToLower())
{
case "starttime":
title = "开始时间";
break;
case "endtime":
title = "结束时间";
break;
case "page":
title = "页码";
break;
case "pagesize":
title = "每页数量";
break;
case "title":
title = "标题";
break;
case "name":
title = "名称";
break;
case "id":
title = "id编号";
break;
case "modelid":
title = "资源类型";
break;
case "packagename":
case "pkgname":
title = "包名";
break;
case "filename":
title = "文件名";
break;
case "url":
title = "网址";
break;
case "username":
title = "用户名";
break;
case "realname":
title = "真实姓名";
break;
case "cooperid":
title = "合作包id";
break;
}
return title;
}
}
}