Here are the examples of the csharp api string.Replace(string, string) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
22910 Examples
19
View Source File : UiHelper.Textures.cs
License : GNU Affero General Public License v3.0
Project Creator : 0ceal0t
License : GNU Affero General Public License v3.0
Project Creator : 0ceal0t
public unsafe static AtkUldreplacedet* Createreplacedets(List<string> paths) {
var ret = Createreplacedets((uint)paths.Count);
for (int i = 0; i < paths.Count; i++) {
var hd = JobBars.Config.Use4K ? (byte)2 : (byte)1;
var tex = (AtkTexture*)(new IntPtr(ret) + 0x20 * i + 0x8);
var path = paths[i];
// get mapping to some file in necessary (icon.tex -> C:/mods/icon.tex)
// could also be icon.tex -> icon.tex
var resolvedPath = GetResolvedPath(JobBars.Config.Use4K ? path.Replace(".tex", "_hr1.tex") : path);
PluginLog.Log($"Resolved {path} -> {resolvedPath}");
if (Path.IsPathRooted(resolvedPath)) {
TextureLoadPath(tex, resolvedPath, 1); // don't want to re-apply _hr1
Marshal.WriteByte(new IntPtr(tex->Resource) + 0x1a, hd);
}
else {
TextureLoadPath(tex, path, hd);
}
}
return ret;
}
19
View Source File : GoPhishIntegration.cs
License : GNU General Public License v3.0
Project Creator : 0dteam
License : GNU General Public License v3.0
Project Creator : 0dteam
public static string setReportURL(string headers)
{
// Extract GoPhish Custom Header (X-GOPHISH-ASMN: USERID0123)
var match = new Regex(WebExpID).Match(headers);
foreach (var group in match.Groups)
{
if(group.ToString().Trim()!=string.Empty)
{
// Extract User ID from the header (USERID0123)
string user_id = group.ToString().Replace(WebExpPrefix, string.Empty);
// Build reporting URL, something like this -> https[:]//GOPHISHURL:PORT/report?rid=USERID
string report_url = URLrequest.Replace(@"USERID", user_id);
return report_url;
}
}
// else, no header was found -> No report tracking URL
return "NaN";
}
19
View Source File : RequestObject.cs
License : MIT License
Project Creator : 0ffffffffh
License : MIT License
Project Creator : 0ffffffffh
private string NormalizeValue(string value)
{
value = value.Replace("$lt;", "<").
Replace("$gt;", ">").Replace("$amp;", "&").Replace("$eq;", "=")
.Replace("$percnt;", "%");
value = System.Web.HttpUtility.UrlDecode(value, Encoding.GetEncoding("ISO-8859-9"));
value = System.Web.HttpUtility.HtmlDecode(value).Replace("$plus;","+");
return value;
}
19
View Source File : Helper.cs
License : MIT License
Project Creator : 0ffffffffh
License : MIT License
Project Creator : 0ffffffffh
public static string SanitizeForXSS(string s)
{
return
s.Replace("&", "&").
Replace("<", "<").
Replace(">", ">").
Replace("\"", """).
Replace("%", "%").
Replace("'", "'").
Replace("/", "/");
}
19
View Source File : Helper.cs
License : MIT License
Project Creator : 0ffffffffh
License : MIT License
Project Creator : 0ffffffffh
public static string SanitizeForSQL(string s)
{
return s.Replace("'", "''");
}
19
View Source File : MessageController.cs
License : Apache License 2.0
Project Creator : 0nise
License : Apache License 2.0
Project Creator : 0nise
public static MessageModel main(String message,string fromQQ) {
string resultContent = "\n无数据";
string content = message;
MessageModel messageModel = null;
if (message == null || message == "" || message.Length == 0)
{
messageModel = new MessageModel(sendMessage: MessageConstant.HELP_CONTENT, isAdmin: false, code: "");
return messageModel;
}
resultContent = "\n无数据";
message = executeCodeReplace(message);
message = message.Trim();
if (message.Length == 0 || message == "")
{
messageModel = new MessageModel(sendMessage: MessageConstant.HELP_CONTENT, isAdmin: false, code: "");
return messageModel;
}
else if (message.Contains(MessageConstant.RANDOM_CONTENT_replacedLE)) {
// 标题查询随机文章
message = message.Replace(MessageConstant.RANDOM_CONTENT_replacedLE, "").Trim();
resultContent = DBHelperMySQL.GetContentRandomByreplacedle(message);
// 标题查询随机课程
string clreplacedContent = DBHelperMySQL.getClreplacedRandomByreplacedle(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.RANDOM_CONTENT_replacedLE);
}
else if (message.Contains(MessageConstant.DESC_CONTENT_replacedLE)) {
// 标题查询最新文章
message = message.Replace(MessageConstant.DESC_CONTENT_replacedLE, "").Trim();
string clreplacedContent = "";
if (message.Length == 0 || message == "" || "".Equals(message) || message == null)
{
// 调用每日最新
resultContent = DBHelperMySQL.getContentDateByToday();
// 标题查询最新课程
clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle("");
}
else
{
resultContent = DBHelperMySQL.getContentDateByreplacedle(message);
clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle(message);
}
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_CONTENT_replacedLE);
}
else if (message.Contains(MessageConstant.DESC_CONTENT_AUTHOR)) {
// 作者查询最新文章
message = message.Replace(MessageConstant.DESC_CONTENT_AUTHOR, "").Trim();
resultContent = DBHelperMySQL.getContentDateByAuthor(message);
// 作者查询最新课程
string clreplacedContent = DBHelperMySQL.getClreplacedDateByAuthor(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_CONTENT_AUTHOR);
} else if (message.Contains(MessageConstant.RANDOM_CONTENT_AUTHOR)) {
// 作者查询随机文章
message = message.Replace(MessageConstant.RANDOM_CONTENT_AUTHOR, "").Trim();
resultContent = DBHelperMySQL.getContentRandomByAuthor(message);
// 作者查询随机课程
string clreplacedContent = DBHelperMySQL.getClreplacedRandomByAuthor(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.RANDOM_CONTENT_AUTHOR);
}
else if (message.Contains(MessageConstant.DESC_CONTENT_TODAY) || message.Contains(MessageConstant.DESC_CONTENT))
{
// 今日最新
message = message.Replace(MessageConstant.DESC_CONTENT_TODAY, "").Trim();
resultContent = DBHelperMySQL.getContentDateByToday();
string clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle("");
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_CONTENT_TODAY);
} else if (message.Contains(MessageConstant.GONG_GAO)) {
// 公告处理
bool flag = DBHelperMySQL.isAdmin(fromQQ);
// 判断是否管理员
if (flag) {
message = message.Replace(MessageConstant.GONG_GAO, "来自i春秋机器人的智能推送\n");
resultContent = message;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: true, code: MessageConstant.GONG_GAO);
}
else {
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.GONG_GAO);
}
}
else if (message.Contains(MessageConstant.AITE_ALL))
{
// 艾特全体处理
bool flag = DBHelperMySQL.isAdmin(fromQQ);
if (flag)
{
message = message.Replace(MessageConstant.AITE_ALL, "来自i春秋机器人的智能推送\n");
resultContent = message;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: true, code: MessageConstant.AITE_ALL);
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.AITE_ALL);
}
}
else if (message.Contains(MessageConstant.HELP) || message.Contains(MessageConstant.HELP_TWO))
{
// Help 帮助等指令
resultContent = MessageConstant.HELP_CONTENT;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.HELP_TWO);
} else if (message.Contains(MessageConstant.DESC_VIDEO)) {
// 标题查询最新教程
message = message.Replace(MessageConstant.DESC_VIDEO, "").Trim();
resultContent = DBHelperMySQL.getCourseDateByreplacedle(message);
// 标题查询最新课程
string clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_VIDEO);
}
else if (message.Contains(MessageConstant.RANDOM_VIDEO))
{
// 标题查询随机教程
message = message.Replace(MessageConstant.RANDOM_VIDEO, "").Trim();
resultContent = DBHelperMySQL.getCourseRandomByreplacedle(message);
// 标题查询随机课程
string clreplacedContent = DBHelperMySQL.getClreplacedRandomByreplacedle(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.RANDOM_VIDEO);
}
else if (message.Contains(MessageConstant.TEST))
{
// 测试命令
resultContent = " [CQ:image,file=photo.jpg]";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.TEST);
} else if (message.Contains(MessageConstant.SELECT_MONEY)) {
string tmpStr = message.Replace(MessageConstant.SELECT_MONEY, "").Trim();
// 判断是否为管理员
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
string money = "";
if (tmpStr.Length > 0 && isAdmin)
{
// 查询余额
money = DBHelperMySQL.getBlankMoney(tmpStr);
}
else
{
// 查询余额
money = DBHelperMySQL.getBlankMoney(fromQQ);
}
if (money == "" || money == null || money.Length == 0)
{
resultContent = "没有数据,请联系QQ:758841765 给予昵称QQ等信息。";
}
else
{
resultContent = "\n当前余额为 " + money;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.SELECT_MONEY);
}
else if (message.Contains(MessageConstant.HISTORY_MONEY))
{
// 提现记录
string historyMoney = DBHelperMySQL.getBlankHistory(fromQQ);
// 查询当前余额
string money = DBHelperMySQL.getBlankMoney(fromQQ);
if (money == "" || money == null || money.Length == 0) {
resultContent = "没有数据,请联系QQ:758841765 给予昵称QQ等信息。";
}
else {
resultContent = "\n当前余额为 " + money + "\n";
// 查询历史记录
resultContent += "提现记录\n";
resultContent += "金额\t\t时间\n" + historyMoney;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.HISTORY_MONEY);
}
else if (message.Contains(MessageConstant.APPLY_MONEY))
{
// 申请提现
resultContent = "请联系【坏蛋】,QQ号:286894635。\n[CQ:at,qq=286894635]";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.APPLY_MONEY);
} else if (message.Contains(MessageConstant.ABOUT)) {
resultContent = "i春秋社区机器人,研发人员为:0nise,产品设计为:坏蛋!";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.ABOUT);
} else if (message.Contains(MessageConstant.UPDATE_MONEY)) {
// 更新金额
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin) {
try
{
decimal tmpMoney = 0.0M;
// 提现
if (message.Contains(MessageConstant.PUT_FORWARD))
{
int moneyIndex = message.IndexOf(MessageConstant.PUT_FORWARD + ":");
int index = message.IndexOf(MessageConstant.UPDATE_MONEY);
if (moneyIndex >= 0 && index >= 0)
{
decimal money = Convert.ToDecimal(message.Substring(moneyIndex).Replace("提现:", "").Replace(" ", ""));
if (money > tmpMoney)
{
string qq = message.Replace(message.Substring(moneyIndex), "").Replace(MessageConstant.UPDATE_MONEY, "").Replace(" ", "");
resultContent = DBHelperMySQL.updateBlank(qq, money,"0");
}
else
{
resultContent = "提现金额必须大于0!";
}
}
}
// 加钱
else if (message.Contains(MessageConstant.ADD_MONEY))
{
int moneyIndex = message.IndexOf(MessageConstant.ADD_MONEY + ":");
int index = message.IndexOf(MessageConstant.ADD_MONEY);
if (moneyIndex >= 0 && index >= 0)
{
decimal money = Convert.ToDecimal(message.Substring(moneyIndex).Replace("加钱:", "").Replace(" ", ""));
if (money > tmpMoney)
{
string qq = message.Replace(message.Substring(moneyIndex), "").Replace(MessageConstant.UPDATE_MONEY, "").Replace(" ", "");
resultContent = DBHelperMySQL.updateBlank(qq, money,"1");
}
else
{
resultContent = "加钱金额必须大于0!";
}
}
}
}
catch (Exception)
{
resultContent = "更新失败。";
}
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.UPDATE_MONEY);
}
else if (message.Contains(MessageConstant.TODAY_COUNT))
{
// 今日使用数量
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
int count = DBHelperMySQL.getToday();
resultContent = "今日使用人数达"+count+"人";
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.TODAY_COUNT);
}
else if (message.Contains(MessageConstant.USER_TOTAL))
{
// 总人数
// 判定是否为管理员
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
int count = DBHelperMySQL.getUserTotal();
DateTime dt = DateTime.Now;
// 获取日期
string date = dt.ToLongDateString().ToString();
resultContent = "截止" + date + ",机器人历史使用人数达"+count+"人。";
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.USER_TOTAL);
}
else if (message.Contains(MessageConstant.THIS_WEEK))
{
// 七日使用
// 判定是否为管理员
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
Hashtable hashtable = DBHelperMySQL.getThisWeek();
resultContent = "";
foreach (Object item in hashtable.Keys)
{
string dateData = item.ToString();
string count = hashtable[item].ToString();
resultContent += dateData + " 使用人数为:" + count + "人;\n";
}
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.USER_TOTAL);
}
else if (message.Contains(MessageConstant.QUN_TOTAL))
{
// 群数量
// 判定是否为管理员
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
resultContent = "群数量";
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.QUN_TOTAL);
}
else if (message.Contains(MessageConstant.MONEY_DESC))
{
// 财富榜
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
// 检索是否为做作家团
if (DBHelperMySQL.exitsUser(fromQQ) || isAdmin)
{
resultContent = DBHelperMySQL.Top30Money();
}
else
{
resultContent = "您不是作家团成员!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.MONEY_DESC);
}
else
{
// 其他内容
resultContent = MessageConstant.HELP_CONTENT;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: "");
}
if (resultContent == "" || resultContent == null || resultContent.Length == 0) {
messageModel.SendMessage = "\n无数据";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.HELP);
}
// 记录用户操作数据
DBHelperMySQL.addUserData(fromQQ, content, resultContent);
return messageModel;
}
19
View Source File : MessageController.cs
License : Apache License 2.0
Project Creator : 0nise
License : Apache License 2.0
Project Creator : 0nise
public static MessageModel main(String message,string fromQQ) {
string resultContent = "\n无数据";
string content = message;
MessageModel messageModel = null;
if (message == null || message == "" || message.Length == 0)
{
messageModel = new MessageModel(sendMessage: MessageConstant.HELP_CONTENT, isAdmin: false, code: "");
return messageModel;
}
resultContent = "\n无数据";
message = executeCodeReplace(message);
message = message.Trim();
if (message.Length == 0 || message == "")
{
messageModel = new MessageModel(sendMessage: MessageConstant.HELP_CONTENT, isAdmin: false, code: "");
return messageModel;
}
else if (message.Contains(MessageConstant.RANDOM_CONTENT_replacedLE)) {
// 标题查询随机文章
message = message.Replace(MessageConstant.RANDOM_CONTENT_replacedLE, "").Trim();
resultContent = DBHelperMySQL.GetContentRandomByreplacedle(message);
// 标题查询随机课程
string clreplacedContent = DBHelperMySQL.getClreplacedRandomByreplacedle(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.RANDOM_CONTENT_replacedLE);
}
else if (message.Contains(MessageConstant.DESC_CONTENT_replacedLE)) {
// 标题查询最新文章
message = message.Replace(MessageConstant.DESC_CONTENT_replacedLE, "").Trim();
string clreplacedContent = "";
if (message.Length == 0 || message == "" || "".Equals(message) || message == null)
{
// 调用每日最新
resultContent = DBHelperMySQL.getContentDateByToday();
// 标题查询最新课程
clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle("");
}
else
{
resultContent = DBHelperMySQL.getContentDateByreplacedle(message);
clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle(message);
}
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_CONTENT_replacedLE);
}
else if (message.Contains(MessageConstant.DESC_CONTENT_AUTHOR)) {
// 作者查询最新文章
message = message.Replace(MessageConstant.DESC_CONTENT_AUTHOR, "").Trim();
resultContent = DBHelperMySQL.getContentDateByAuthor(message);
// 作者查询最新课程
string clreplacedContent = DBHelperMySQL.getClreplacedDateByAuthor(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_CONTENT_AUTHOR);
} else if (message.Contains(MessageConstant.RANDOM_CONTENT_AUTHOR)) {
// 作者查询随机文章
message = message.Replace(MessageConstant.RANDOM_CONTENT_AUTHOR, "").Trim();
resultContent = DBHelperMySQL.getContentRandomByAuthor(message);
// 作者查询随机课程
string clreplacedContent = DBHelperMySQL.getClreplacedRandomByAuthor(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.RANDOM_CONTENT_AUTHOR);
}
else if (message.Contains(MessageConstant.DESC_CONTENT_TODAY) || message.Contains(MessageConstant.DESC_CONTENT))
{
// 今日最新
message = message.Replace(MessageConstant.DESC_CONTENT_TODAY, "").Trim();
resultContent = DBHelperMySQL.getContentDateByToday();
string clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle("");
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_CONTENT_TODAY);
} else if (message.Contains(MessageConstant.GONG_GAO)) {
// 公告处理
bool flag = DBHelperMySQL.isAdmin(fromQQ);
// 判断是否管理员
if (flag) {
message = message.Replace(MessageConstant.GONG_GAO, "来自i春秋机器人的智能推送\n");
resultContent = message;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: true, code: MessageConstant.GONG_GAO);
}
else {
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.GONG_GAO);
}
}
else if (message.Contains(MessageConstant.AITE_ALL))
{
// 艾特全体处理
bool flag = DBHelperMySQL.isAdmin(fromQQ);
if (flag)
{
message = message.Replace(MessageConstant.AITE_ALL, "来自i春秋机器人的智能推送\n");
resultContent = message;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: true, code: MessageConstant.AITE_ALL);
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.AITE_ALL);
}
}
else if (message.Contains(MessageConstant.HELP) || message.Contains(MessageConstant.HELP_TWO))
{
// Help 帮助等指令
resultContent = MessageConstant.HELP_CONTENT;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.HELP_TWO);
} else if (message.Contains(MessageConstant.DESC_VIDEO)) {
// 标题查询最新教程
message = message.Replace(MessageConstant.DESC_VIDEO, "").Trim();
resultContent = DBHelperMySQL.getCourseDateByreplacedle(message);
// 标题查询最新课程
string clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_VIDEO);
}
else if (message.Contains(MessageConstant.RANDOM_VIDEO))
{
// 标题查询随机教程
message = message.Replace(MessageConstant.RANDOM_VIDEO, "").Trim();
resultContent = DBHelperMySQL.getCourseRandomByreplacedle(message);
// 标题查询随机课程
string clreplacedContent = DBHelperMySQL.getClreplacedRandomByreplacedle(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.RANDOM_VIDEO);
}
else if (message.Contains(MessageConstant.TEST))
{
// 测试命令
resultContent = " [CQ:image,file=photo.jpg]";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.TEST);
} else if (message.Contains(MessageConstant.SELECT_MONEY)) {
string tmpStr = message.Replace(MessageConstant.SELECT_MONEY, "").Trim();
// 判断是否为管理员
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
string money = "";
if (tmpStr.Length > 0 && isAdmin)
{
// 查询余额
money = DBHelperMySQL.getBlankMoney(tmpStr);
}
else
{
// 查询余额
money = DBHelperMySQL.getBlankMoney(fromQQ);
}
if (money == "" || money == null || money.Length == 0)
{
resultContent = "没有数据,请联系QQ:758841765 给予昵称QQ等信息。";
}
else
{
resultContent = "\n当前余额为 " + money;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.SELECT_MONEY);
}
else if (message.Contains(MessageConstant.HISTORY_MONEY))
{
// 提现记录
string historyMoney = DBHelperMySQL.getBlankHistory(fromQQ);
// 查询当前余额
string money = DBHelperMySQL.getBlankMoney(fromQQ);
if (money == "" || money == null || money.Length == 0) {
resultContent = "没有数据,请联系QQ:758841765 给予昵称QQ等信息。";
}
else {
resultContent = "\n当前余额为 " + money + "\n";
// 查询历史记录
resultContent += "提现记录\n";
resultContent += "金额\t\t时间\n" + historyMoney;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.HISTORY_MONEY);
}
else if (message.Contains(MessageConstant.APPLY_MONEY))
{
// 申请提现
resultContent = "请联系【坏蛋】,QQ号:286894635。\n[CQ:at,qq=286894635]";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.APPLY_MONEY);
} else if (message.Contains(MessageConstant.ABOUT)) {
resultContent = "i春秋社区机器人,研发人员为:0nise,产品设计为:坏蛋!";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.ABOUT);
} else if (message.Contains(MessageConstant.UPDATE_MONEY)) {
// 更新金额
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin) {
try
{
decimal tmpMoney = 0.0M;
// 提现
if (message.Contains(MessageConstant.PUT_FORWARD))
{
int moneyIndex = message.IndexOf(MessageConstant.PUT_FORWARD + ":");
int index = message.IndexOf(MessageConstant.UPDATE_MONEY);
if (moneyIndex >= 0 && index >= 0)
{
decimal money = Convert.ToDecimal(message.Substring(moneyIndex).Replace("提现:", "").Replace(" ", ""));
if (money > tmpMoney)
{
string qq = message.Replace(message.Substring(moneyIndex), "").Replace(MessageConstant.UPDATE_MONEY, "").Replace(" ", "");
resultContent = DBHelperMySQL.updateBlank(qq, money,"0");
}
else
{
resultContent = "提现金额必须大于0!";
}
}
}
// 加钱
else if (message.Contains(MessageConstant.ADD_MONEY))
{
int moneyIndex = message.IndexOf(MessageConstant.ADD_MONEY + ":");
int index = message.IndexOf(MessageConstant.ADD_MONEY);
if (moneyIndex >= 0 && index >= 0)
{
decimal money = Convert.ToDecimal(message.Substring(moneyIndex).Replace("加钱:", "").Replace(" ", ""));
if (money > tmpMoney)
{
string qq = message.Replace(message.Substring(moneyIndex), "").Replace(MessageConstant.UPDATE_MONEY, "").Replace(" ", "");
resultContent = DBHelperMySQL.updateBlank(qq, money,"1");
}
else
{
resultContent = "加钱金额必须大于0!";
}
}
}
}
catch (Exception)
{
resultContent = "更新失败。";
}
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.UPDATE_MONEY);
}
else if (message.Contains(MessageConstant.TODAY_COUNT))
{
// 今日使用数量
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
int count = DBHelperMySQL.getToday();
resultContent = "今日使用人数达"+count+"人";
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.TODAY_COUNT);
}
else if (message.Contains(MessageConstant.USER_TOTAL))
{
// 总人数
// 判定是否为管理员
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
int count = DBHelperMySQL.getUserTotal();
DateTime dt = DateTime.Now;
// 获取日期
string date = dt.ToLongDateString().ToString();
resultContent = "截止" + date + ",机器人历史使用人数达"+count+"人。";
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.USER_TOTAL);
}
else if (message.Contains(MessageConstant.THIS_WEEK))
{
// 七日使用
// 判定是否为管理员
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
Hashtable hashtable = DBHelperMySQL.getThisWeek();
resultContent = "";
foreach (Object item in hashtable.Keys)
{
string dateData = item.ToString();
string count = hashtable[item].ToString();
resultContent += dateData + " 使用人数为:" + count + "人;\n";
}
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.USER_TOTAL);
}
else if (message.Contains(MessageConstant.QUN_TOTAL))
{
// 群数量
// 判定是否为管理员
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
resultContent = "群数量";
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.QUN_TOTAL);
}
else if (message.Contains(MessageConstant.MONEY_DESC))
{
// 财富榜
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
// 检索是否为做作家团
if (DBHelperMySQL.exitsUser(fromQQ) || isAdmin)
{
resultContent = DBHelperMySQL.Top30Money();
}
else
{
resultContent = "您不是作家团成员!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.MONEY_DESC);
}
else
{
// 其他内容
resultContent = MessageConstant.HELP_CONTENT;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: "");
}
if (resultContent == "" || resultContent == null || resultContent.Length == 0) {
messageModel.SendMessage = "\n无数据";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.HELP);
}
// 记录用户操作数据
DBHelperMySQL.addUserData(fromQQ, content, resultContent);
return messageModel;
}
19
View Source File : EdisFace.cs
License : MIT License
Project Creator : 0ffffffffh
License : MIT License
Project Creator : 0ffffffffh
private bool ReplyIndex(HttpListenerContext ctx, string statusMessage)
{
string content = cachedIndexHtml.Replace("%%STATUS_MESSAGE%%", statusMessage);
byte[] data = Encoding.ASCII.GetBytes(content);
try
{
ctx.Response.ContentLength64 = data.Length;
ctx.Response.StatusCode = 200;
ctx.Response.ContentEncoding = Encoding.ASCII;
ctx.Response.ContentType = "text/html";
ctx.Response.OutputStream.Write(data, 0, data.Length);
}
catch (Exception e)
{
Log.Error(e.Message);
data = null;
return false;
}
data = null;
return true;
}
19
View Source File : EdisFace.cs
License : MIT License
Project Creator : 0ffffffffh
License : MIT License
Project Creator : 0ffffffffh
private void RequestHandler(IAsyncResult result)
{
Dictionary<string, string> form;
string objectName,path;
HttpListenerContext ctx;
if (!this.httpListener.IsListening)
return;
try
{
ctx = this.httpListener.EndGetContext(result);
}
catch (Exception e)
{
Log.Error("request completion error: " + e.Message);
RegisterRequestWaiter(null);
return;
}
form = BuildForm(ctx);
objectName = ctx.Request.Url.LocalPath;
var ext = Path.GetExtension(objectName);
objectName = Path.GetFileNameWithoutExtension(objectName);
objectName = objectName.
Replace(".", "").
Replace("/","").
Replace("\\","");
if (string.IsNullOrEmpty(objectName))
objectName = "\\";
else
objectName = "\\" + objectName + ext;
path = Config.Get().HtmlContentRoot + objectName;
RegisterRequestWaiter(null);
if (objectName == "\\")
{
if (ctx.Request.HttpMethod.ToLower() == "post")
{
HandlePost(ctx, form);
}
else
ReplyIndex(ctx, string.Empty);
}
else
{
ReplyWithFile(ctx, path);
}
ctx.Response.Close();
}
19
View Source File : SozlukDataStore.cs
License : MIT License
Project Creator : 0ffffffffh
License : MIT License
Project Creator : 0ffffffffh
private static string BuildFetchAllSQLQuery(ref string baseQueryHash, int rowBegin, int rowEnd, char indexChar)
{
string query;
if (!CacheManager.TryGetCachedResult<string>(baseQueryHash, out query))
{
query = SEARCH_SQL_ALL_BASE;
if ((indexChar >= 'a' && indexChar <= 'z'))
{
query = query.Replace("%%CONDITION%%",
string.Format(" WHERE (LEFT(Baslik,1) = '{0}')", indexChar));
}
else if (indexChar == '*')
{
query = query.Replace("%%CONDITION%%",
string.Format(" WHERE (LEFT(Baslik,1) >= '0' AND LEFT(Baslik,1) <= '9')"));
}
else if (indexChar == '.')
{
query = query.Replace("%%CONDITION%%", "");
}
baseQueryHash = Helper.Md5(query);
CacheManager.CacheObject(baseQueryHash, query);
}
query = query.Replace("%%ROW_LIMIT_CONDITION%%",
string.Format("(RowNum BETWEEN {0} AND {1})", rowBegin, rowEnd));
return query;
}
19
View Source File : SozlukDataStore.cs
License : MIT License
Project Creator : 0ffffffffh
License : MIT License
Project Creator : 0ffffffffh
private static string BuildEntryFetchSQL(string baslik, int baslikId, int pageNumber)
{
int rowBegin, rowEnd;
string query, searchCondition;
rowBegin = (pageNumber * RecordsPerPage) + 1;
rowEnd = rowBegin + RecordsPerPage - 1;
if (baslikId > 0)
searchCondition = "Basliks.Id = " + baslikId.ToString();
else
searchCondition = string.Format("Basliks.Baslik = '{0}'", baslik);
query = GET_ENTRIES_OF_BASLIK_SQL_BASE.Replace("%%BASLIK_SEARCH_CONDITION%%", searchCondition);
query = query.Replace("%%ROW_LIMIT_CONDITION%%",
string.Format("RowNum BETWEEN {0} AND {1}", rowBegin, rowEnd));
return query;
}
19
View Source File : Entry.cs
License : MIT License
Project Creator : 0ffffffffh
License : MIT License
Project Creator : 0ffffffffh
private string PrepareBaslik(string s)
{
return s.Replace("<", "").Replace(">", "");
}
19
View Source File : GroupMessageReceivedMahuaEvent.cs
License : Apache License 2.0
Project Creator : 0nise
License : Apache License 2.0
Project Creator : 0nise
public void ProcessGroupMessage(GroupMessageReceivedContext context)
{
String message = context.Message;
message = message.Trim();
if (message == "" || message.Length == 0 || message == null)
{
return;
}
String myQQ = _mahuaApi.GetLoginQq();
String aiteQQ = "[CQ:at,qq=" + myQQ + "]";
if (message.Contains(aiteQQ)) {
String sendMessage = "[CQ:at,qq=" + context.FromQq + "]\n";
message = message.Replace(aiteQQ, "").Replace("\"\"","").Replace("“","").Replace("”","").Trim();
IDatabase redis = RedisHelper.getRedis();
if (redis.StringGet(context.FromQq).IsNull == false)
{
string tmpStr = "为防止造成刷屏,您每次使用机器人的时间间隔" + Constants.sleepTime + "秒哦!";
sendMessage += tmpStr;
_mahuaApi.SendGroupMessage(context.FromGroup, sendMessage);
}
else
{
redis.StringSet(context.FromQq, "flag");
redis.KeyExpire(context.FromQq, new TimeSpan(10000000 * Convert.ToInt16(Constants.sleepTime)));
MessageModel messageModel = MessageController.main(message, context.FromQq);
// 发送消息
string tmpStr = messageModel.SendMessage;
if (messageModel.IsAdmin)
{
// 群数量
if (MessageConstant.QUN_TOTAL.Equals(messageModel.Code))
{
ModelWithSourceString<IEnumerable<GroupInfo>> modelWithSourceString = _mahuaApi.GetGroupsWithModel();
IEnumerable<GroupInfo> groupInfo = modelWithSourceString.Model;
int count = 0;
foreach (var item in groupInfo)
{
count++;
}
_mahuaApi.SendGroupMessage(context.FromGroup, "群数量:" + count.ToString());
}
else
{
if (tmpStr != "" && tmpStr.Length > 0)
{
sendMessage += tmpStr;
_mahuaApi.SendGroupMessage(context.FromGroup, sendMessage);
}
}
}
else
{
if (tmpStr != "" && tmpStr.Length > 0)
{
sendMessage += tmpStr;
_mahuaApi.SendGroupMessage(context.FromGroup, sendMessage);
}
}
}
}
}
19
View Source File : GroupMessageReceivedMahuaEvent.cs
License : Apache License 2.0
Project Creator : 0nise
License : Apache License 2.0
Project Creator : 0nise
public void ProcessGroupMessage(GroupMessageReceivedContext context)
{
String message = context.Message;
message = message.Trim();
if (message == "" || message.Length == 0 || message == null)
{
return;
}
String myQQ = _mahuaApi.GetLoginQq();
String aiteQQ = "[CQ:at,qq=" + myQQ + "]";
if (message.Contains(aiteQQ)) {
String sendMessage = "[CQ:at,qq=" + context.FromQq + "]";
message = message.Replace(aiteQQ, "").Replace("\"\"","").Replace("“","").Replace("”","").Trim();
IDatabase redis = RedisHelper.getRedis();
// 判断用户是否在缓冲中
if (redis.StringGet(context.FromQq).IsNull)
{
redis.StringSet(context.FromQq, "flag");
redis.KeyExpire(context.FromQq, new TimeSpan(10000000 * Convert.ToInt16(Constants.sleepTime)));
}
else {
string tmpStr = "为防止造成刷屏,您每次使用机器人的时间间隔"+ Constants.sleepTime + "秒哦!";
sendMessage += tmpStr;
_mahuaApi.SendGroupMessage(context.FromGroup, sendMessage);
return;
};
if (message == null || message =="" || message.Length == 0) {
//
}
else
{
MessageModel messageModel = MessageController.main(message, context.FromQq);
// 发送消息
string tmpStr = messageModel.SendMessage;
if (messageModel.IsAdmin) {
// 群数量
if (MessageConstant.QUN_TOTAL.Equals(messageModel.Code))
{
ModelWithSourceString<IEnumerable<GroupInfo>> modelWithSourceString = _mahuaApi.GetGroupsWithModel();
IEnumerable<GroupInfo> groupInfo = modelWithSourceString.Model;
int count = 0;
foreach (var item in groupInfo)
{
count ++;
}
_mahuaApi.SendGroupMessage(context.FromQq, "群数量:" + count.ToString());
}
else
{
if (tmpStr != "" && tmpStr.Length > 0)
{
sendMessage += tmpStr;
_mahuaApi.SendGroupMessage(context.FromQq, sendMessage);
}
}
}
else
{
if (tmpStr != "" && tmpStr.Length > 0)
{
sendMessage += tmpStr;
_mahuaApi.SendGroupMessage(context.FromGroup, sendMessage);
}
}
}
}
}
19
View Source File : MessageController.cs
License : Apache License 2.0
Project Creator : 0nise
License : Apache License 2.0
Project Creator : 0nise
public static MessageModel main(String message,string fromQQ) {
string resultContent = "\n无数据";
string content = message;
MessageModel messageModel = null;
if (message == null || message == "" || message.Length == 0)
{
messageModel = new MessageModel(sendMessage: MessageConstant.HELP_CONTENT, isAdmin: false, code: "");
return messageModel;
}
resultContent = "\n无数据";
message = executeCodeReplace(message);
message = message.Trim();
if (message.Length == 0 || message == "")
{
messageModel = new MessageModel(sendMessage: MessageConstant.HELP_CONTENT, isAdmin: false, code: "");
return messageModel;
}
else if (message.Contains(MessageConstant.RANDOM_CONTENT_replacedLE)) {
// 标题查询随机文章
message = message.Replace(MessageConstant.RANDOM_CONTENT_replacedLE, "").Trim();
resultContent = DBHelperMySQL.GetContentRandomByreplacedle(message);
// 标题查询随机课程
string clreplacedContent = DBHelperMySQL.getClreplacedRandomByreplacedle(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.RANDOM_CONTENT_replacedLE);
}
else if (message.Contains(MessageConstant.DESC_CONTENT_replacedLE)) {
// 标题查询最新文章
message = message.Replace(MessageConstant.DESC_CONTENT_replacedLE, "").Trim();
string clreplacedContent = "";
if (message.Length == 0 || message == "" || "".Equals(message) || message == null)
{
// 调用每日最新
resultContent = DBHelperMySQL.getContentDateByToday();
// 标题查询最新课程
clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle("");
}
else
{
resultContent = DBHelperMySQL.getContentDateByreplacedle(message);
clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle(message);
}
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_CONTENT_replacedLE);
}
else if (message.Contains(MessageConstant.DESC_CONTENT_AUTHOR)) {
// 作者查询最新文章
message = message.Replace(MessageConstant.DESC_CONTENT_AUTHOR, "").Trim();
resultContent = DBHelperMySQL.getContentDateByAuthor(message);
// 作者查询最新课程
string clreplacedContent = DBHelperMySQL.getClreplacedDateByAuthor(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_CONTENT_AUTHOR);
} else if (message.Contains(MessageConstant.RANDOM_CONTENT_AUTHOR)) {
// 作者查询随机文章
message = message.Replace(MessageConstant.RANDOM_CONTENT_AUTHOR, "").Trim();
resultContent = DBHelperMySQL.getContentRandomByAuthor(message);
// 作者查询随机课程
string clreplacedContent = DBHelperMySQL.getClreplacedRandomByAuthor(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.RANDOM_CONTENT_AUTHOR);
}
else if (message.Contains(MessageConstant.DESC_CONTENT_TODAY) || message.Contains(MessageConstant.DESC_CONTENT))
{
// 今日最新
message = message.Replace(MessageConstant.DESC_CONTENT_TODAY, "").Trim();
resultContent = DBHelperMySQL.getContentDateByToday();
string clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle("");
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_CONTENT_TODAY);
} else if (message.Contains(MessageConstant.GONG_GAO)) {
// 公告处理
bool flag = DBHelperMySQL.isAdmin(fromQQ);
// 判断是否管理员
if (flag) {
message = message.Replace(MessageConstant.GONG_GAO, "来自i春秋机器人的智能推送\n");
resultContent = message;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: true, code: MessageConstant.GONG_GAO);
}
else {
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.GONG_GAO);
}
}
else if (message.Contains(MessageConstant.AITE_ALL))
{
// 艾特全体处理
bool flag = DBHelperMySQL.isAdmin(fromQQ);
if (flag)
{
message = message.Replace(MessageConstant.AITE_ALL, "来自i春秋机器人的智能推送\n");
resultContent = message;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: true, code: MessageConstant.AITE_ALL);
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.AITE_ALL);
}
}
else if (message.Contains(MessageConstant.HELP) || message.Contains(MessageConstant.HELP_TWO))
{
// Help 帮助等指令
resultContent = MessageConstant.HELP_CONTENT;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.HELP_TWO);
} else if (message.Contains(MessageConstant.DESC_VIDEO)) {
// 标题查询最新教程
message = message.Replace(MessageConstant.DESC_VIDEO, "").Trim();
resultContent = DBHelperMySQL.getCourseDateByreplacedle(message);
// 标题查询最新课程
string clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_VIDEO);
}
else if (message.Contains(MessageConstant.RANDOM_VIDEO))
{
// 标题查询随机教程
message = message.Replace(MessageConstant.RANDOM_VIDEO, "").Trim();
resultContent = DBHelperMySQL.getCourseRandomByreplacedle(message);
// 标题查询随机课程
string clreplacedContent = DBHelperMySQL.getClreplacedRandomByreplacedle(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.RANDOM_VIDEO);
}
else if (message.Contains(MessageConstant.TEST))
{
// 测试命令
resultContent = " [CQ:image,file=photo.jpg]";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.TEST);
} else if (message.Contains(MessageConstant.SELECT_MONEY)) {
// 查询余额
string money = DBHelperMySQL.getBlankMoney(fromQQ);
if (money == "" || money == null || money.Length == 0)
{
resultContent = "没有数据,请联系QQ:758841765 给予昵称QQ等信息。";
}
else
{
resultContent = "\n当前余额为 " + money;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.SELECT_MONEY);
}
else if (message.Contains(MessageConstant.HISTORY_MONEY))
{
// 提现记录
string historyMoney = DBHelperMySQL.getBlankHistory(fromQQ);
// 查询当前余额
string money = DBHelperMySQL.getBlankMoney(fromQQ);
if (money == "" || money == null || money.Length == 0) {
resultContent = "没有数据,请联系QQ:758841765 给予昵称QQ等信息。";
}
else {
resultContent = "\n当前余额为 " + money + "\n";
// 查询历史记录
resultContent += "提现记录\n";
resultContent += "金额\t\t时间\n" + historyMoney;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.HISTORY_MONEY);
}
else if (message.Contains(MessageConstant.APPLY_MONEY))
{
// 申请提现
resultContent = "请联系【坏蛋】,QQ号:286894635。\n[CQ:at,qq=286894635]";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.APPLY_MONEY);
} else if (message.Contains(MessageConstant.ABOUT)) {
resultContent = "i春秋社区机器人,研发人员为:0nise!";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.ABOUT);
} else if (message.Contains(MessageConstant.UPDATE_MONEY)) {
// 更新金额
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin) {
try
{
int moneyIndex = message.IndexOf("提现:");
int index = message.IndexOf(MessageConstant.UPDATE_MONEY);
if (moneyIndex >= 0 && index >= 0)
{
decimal money = Convert.ToDecimal(message.Substring(moneyIndex).Replace("提现:", "").Replace(" ",""));
string qq = message.Replace(message.Substring(moneyIndex), "").Replace(MessageConstant.UPDATE_MONEY, "").Replace(" ", "");
resultContent = DBHelperMySQL.updateBlank(qq,money);
}
}
catch (Exception)
{
resultContent = "更新失败。";
}
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.UPDATE_MONEY);
}
else if (message.Contains(MessageConstant.TODAY_COUNT))
{
// 今日使用数量
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
int count = DBHelperMySQL.getToday();
resultContent = "今日使用人数达"+count+"人";
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.TODAY_COUNT);
}
else if (message.Contains(MessageConstant.USER_TOTAL))
{
// 总人数
// 判定是否为管理员
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
int count = DBHelperMySQL.getUserTotal();
DateTime dt = DateTime.Now;
// 获取日期
string date = dt.ToLongDateString().ToString();
resultContent = "截止" + date + ",机器人历史使用人数达"+count+"人。";
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.USER_TOTAL);
}
else if (message.Contains(MessageConstant.THIS_WEEK))
{
// 七日使用
// 判定是否为管理员
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
Hashtable hashtable = DBHelperMySQL.getThisWeek();
resultContent = "";
foreach (Object item in hashtable.Keys)
{
string dateData = item.ToString();
string count = hashtable[item].ToString();
resultContent += dateData + " 使用人数为:" + count + "人;\n";
}
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.USER_TOTAL);
}
else if (message.Contains(MessageConstant.QUN_TOTAL))
{
// 群数量
// 判定是否为管理员
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
resultContent = "群数量";
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.QUN_TOTAL);
}
else
{
// 其他内容
resultContent = MessageConstant.HELP_CONTENT;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: "");
}
if (resultContent == "" || resultContent == null || resultContent.Length == 0) {
messageModel.SendMessage = "\n无数据";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.HELP);
}
// 记录用户操作数据
DBHelperMySQL.addUserData(fromQQ, content, resultContent);
return messageModel;
}
19
View Source File : MessageController.cs
License : Apache License 2.0
Project Creator : 0nise
License : Apache License 2.0
Project Creator : 0nise
public static MessageModel main(String message,string fromQQ) {
string resultContent = "\n无数据";
string content = message;
MessageModel messageModel = null;
if (message == null || message == "" || message.Length == 0)
{
messageModel = new MessageModel(sendMessage: MessageConstant.HELP_CONTENT, isAdmin: false, code: "");
return messageModel;
}
resultContent = "\n无数据";
message = executeCodeReplace(message);
message = message.Trim();
if (message.Length == 0 || message == "")
{
messageModel = new MessageModel(sendMessage: MessageConstant.HELP_CONTENT, isAdmin: false, code: "");
return messageModel;
}
else if (message.Contains(MessageConstant.RANDOM_CONTENT_replacedLE)) {
// 标题查询随机文章
message = message.Replace(MessageConstant.RANDOM_CONTENT_replacedLE, "").Trim();
resultContent = DBHelperMySQL.GetContentRandomByreplacedle(message);
// 标题查询随机课程
string clreplacedContent = DBHelperMySQL.getClreplacedRandomByreplacedle(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.RANDOM_CONTENT_replacedLE);
}
else if (message.Contains(MessageConstant.DESC_CONTENT_replacedLE)) {
// 标题查询最新文章
message = message.Replace(MessageConstant.DESC_CONTENT_replacedLE, "").Trim();
string clreplacedContent = "";
if (message.Length == 0 || message == "" || "".Equals(message) || message == null)
{
// 调用每日最新
resultContent = DBHelperMySQL.getContentDateByToday();
// 标题查询最新课程
clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle("");
}
else
{
resultContent = DBHelperMySQL.getContentDateByreplacedle(message);
clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle(message);
}
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_CONTENT_replacedLE);
}
else if (message.Contains(MessageConstant.DESC_CONTENT_AUTHOR)) {
// 作者查询最新文章
message = message.Replace(MessageConstant.DESC_CONTENT_AUTHOR, "").Trim();
resultContent = DBHelperMySQL.getContentDateByAuthor(message);
// 作者查询最新课程
string clreplacedContent = DBHelperMySQL.getClreplacedDateByAuthor(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_CONTENT_AUTHOR);
} else if (message.Contains(MessageConstant.RANDOM_CONTENT_AUTHOR)) {
// 作者查询随机文章
message = message.Replace(MessageConstant.RANDOM_CONTENT_AUTHOR, "").Trim();
resultContent = DBHelperMySQL.getContentRandomByAuthor(message);
// 作者查询随机课程
string clreplacedContent = DBHelperMySQL.getClreplacedRandomByAuthor(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.RANDOM_CONTENT_AUTHOR);
}
else if (message.Contains(MessageConstant.DESC_CONTENT_TODAY) || message.Contains(MessageConstant.DESC_CONTENT))
{
// 今日最新
message = message.Replace(MessageConstant.DESC_CONTENT_TODAY, "").Trim();
resultContent = DBHelperMySQL.getContentDateByToday();
string clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle("");
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_CONTENT_TODAY);
} else if (message.Contains(MessageConstant.GONG_GAO)) {
// 公告处理
bool flag = DBHelperMySQL.isAdmin(fromQQ);
// 判断是否管理员
if (flag) {
message = message.Replace(MessageConstant.GONG_GAO, "来自i春秋机器人的智能推送\n");
resultContent = message;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: true, code: MessageConstant.GONG_GAO);
}
else {
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.GONG_GAO);
}
}
else if (message.Contains(MessageConstant.AITE_ALL))
{
// 艾特全体处理
bool flag = DBHelperMySQL.isAdmin(fromQQ);
if (flag)
{
message = message.Replace(MessageConstant.AITE_ALL, "来自i春秋机器人的智能推送\n");
resultContent = message;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: true, code: MessageConstant.AITE_ALL);
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.AITE_ALL);
}
}
else if (message.Contains(MessageConstant.HELP) || message.Contains(MessageConstant.HELP_TWO))
{
// Help 帮助等指令
resultContent = MessageConstant.HELP_CONTENT;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.HELP_TWO);
} else if (message.Contains(MessageConstant.DESC_VIDEO)) {
// 标题查询最新教程
message = message.Replace(MessageConstant.DESC_VIDEO, "").Trim();
resultContent = DBHelperMySQL.getCourseDateByreplacedle(message);
// 标题查询最新课程
string clreplacedContent = DBHelperMySQL.getClreplacedDateByreplacedle(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.DESC_VIDEO);
}
else if (message.Contains(MessageConstant.RANDOM_VIDEO))
{
// 标题查询随机教程
message = message.Replace(MessageConstant.RANDOM_VIDEO, "").Trim();
resultContent = DBHelperMySQL.getCourseRandomByreplacedle(message);
// 标题查询随机课程
string clreplacedContent = DBHelperMySQL.getClreplacedRandomByreplacedle(message);
if (clreplacedContent.Length > 0 && !"".Equals(clreplacedContent))
{
resultContent += clreplacedContent;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.RANDOM_VIDEO);
}
else if (message.Contains(MessageConstant.TEST))
{
// 测试命令
resultContent = " [CQ:image,file=photo.jpg]";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.TEST);
} else if (message.Contains(MessageConstant.SELECT_MONEY)) {
// 查询余额
string money = DBHelperMySQL.getBlankMoney(fromQQ);
if (money == "" || money == null || money.Length == 0)
{
resultContent = "没有数据,请联系QQ:758841765 给予昵称QQ等信息。";
}
else
{
resultContent = "\n当前余额为 " + money;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.SELECT_MONEY);
}
else if (message.Contains(MessageConstant.HISTORY_MONEY))
{
// 提现记录
string historyMoney = DBHelperMySQL.getBlankHistory(fromQQ);
// 查询当前余额
string money = DBHelperMySQL.getBlankMoney(fromQQ);
if (money == "" || money == null || money.Length == 0) {
resultContent = "没有数据,请联系QQ:758841765 给予昵称QQ等信息。";
}
else {
resultContent = "\n当前余额为 " + money + "\n";
// 查询历史记录
resultContent += "提现记录\n";
resultContent += "金额\t\t时间\n" + historyMoney;
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.HISTORY_MONEY);
}
else if (message.Contains(MessageConstant.APPLY_MONEY))
{
// 申请提现
resultContent = "请联系【坏蛋】,QQ号:286894635。\n[CQ:at,qq=286894635]";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.APPLY_MONEY);
} else if (message.Contains(MessageConstant.ABOUT)) {
resultContent = "i春秋社区机器人,研发人员为:0nise!";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.ABOUT);
} else if (message.Contains(MessageConstant.UPDATE_MONEY)) {
// 更新金额
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin) {
try
{
int moneyIndex = message.IndexOf("提现:");
int index = message.IndexOf(MessageConstant.UPDATE_MONEY);
if (moneyIndex >= 0 && index >= 0)
{
decimal money = Convert.ToDecimal(message.Substring(moneyIndex).Replace("提现:", "").Replace(" ",""));
string qq = message.Replace(message.Substring(moneyIndex), "").Replace(MessageConstant.UPDATE_MONEY, "").Replace(" ", "");
resultContent = DBHelperMySQL.updateBlank(qq,money);
}
}
catch (Exception)
{
resultContent = "更新失败。";
}
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.UPDATE_MONEY);
}
else if (message.Contains(MessageConstant.TODAY_COUNT))
{
// 今日使用数量
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
int count = DBHelperMySQL.getToday();
resultContent = "今日使用人数达"+count+"人";
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.TODAY_COUNT);
}
else if (message.Contains(MessageConstant.USER_TOTAL))
{
// 总人数
// 判定是否为管理员
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
int count = DBHelperMySQL.getUserTotal();
DateTime dt = DateTime.Now;
// 获取日期
string date = dt.ToLongDateString().ToString();
resultContent = "截止" + date + ",机器人历史使用人数达"+count+"人。";
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.USER_TOTAL);
}
else if (message.Contains(MessageConstant.THIS_WEEK))
{
// 七日使用
// 判定是否为管理员
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
Hashtable hashtable = DBHelperMySQL.getThisWeek();
resultContent = "";
foreach (Object item in hashtable.Keys)
{
string dateData = item.ToString();
string count = hashtable[item].ToString();
resultContent += dateData + " 使用人数为:" + count + "人;\n";
}
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.USER_TOTAL);
}
else if (message.Contains(MessageConstant.QUN_TOTAL))
{
// 群数量
// 判定是否为管理员
bool isAdmin = DBHelperMySQL.isAdmin(fromQQ);
if (isAdmin)
{
resultContent = "群数量";
}
else
{
resultContent = "您不是管理员!请联系坏蛋,QQ286894635!";
}
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: isAdmin, code: MessageConstant.QUN_TOTAL);
}
else
{
// 其他内容
resultContent = MessageConstant.HELP_CONTENT;
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: "");
}
if (resultContent == "" || resultContent == null || resultContent.Length == 0) {
messageModel.SendMessage = "\n无数据";
messageModel = new MessageModel(sendMessage: resultContent, isAdmin: false, code: MessageConstant.HELP);
}
// 记录用户操作数据
DBHelperMySQL.addUserData(fromQQ, content, resultContent);
return messageModel;
}
19
View Source File : MessageController.cs
License : Apache License 2.0
Project Creator : 0nise
License : Apache License 2.0
Project Creator : 0nise
public static string executeCodeReplace(string message) {
message = Regex.Replace(message,"随.{2}程","随机教程");
message = Regex.Replace(message, "随.{2}章", "随机文章");
message = Regex.Replace(message, "最.{2}章", "最新文章");
message = Regex.Replace(message, "最.{2}程", "最新教程");
message = message.Replace("余额查询",MessageConstant.SELECT_MONEY);
return message;
}
19
View Source File : CelesteNetMainComponent.cs
License : MIT License
Project Creator : 0x0ade
License : MIT License
Project Creator : 0x0ade
public void Handle(CelesteNetConnection con, DataMoveTo target) {
RunOnMainThread(() => {
Session session = Session;
if (SaveData.Instance == null)
SaveData.InitializeDebugMode();
AreaData area = AreaDataExt.Get(target.SID);
if (area == null) {
if (target.Force || string.IsNullOrEmpty(target.SID)) {
RunOnMainThread(() => {
OnExitLevel(null, null, LevelExit.Mode.SaveAndQuit, null, null);
string message = Dialog.Get("postcard_levelgone");
if (string.IsNullOrEmpty(target.SID))
message = Dialog.Get("postcard_celestenetclient_backtomenu");
message = message.Replace("((player))", SaveData.Instance.Name);
message = message.Replace("((sid))", target.SID);
LevelEnterExt.ErrorMessage = message;
LevelEnter.Go(new(new AreaKey(1).SetSID("")), false);
});
}
19
View Source File : CelesteNetPlayerSession.cs
License : MIT License
Project Creator : 0x0ade
License : MIT License
Project Creator : 0x0ade
public void Start<T>(DataHandshakeClient<T> handshake) where T : DataHandshakeClient<T> {
Logger.Log(LogLevel.INF, "playersession", $"Startup #{ID} {Con}");
using (Server.ConLock.W())
Server.Sessions.Add(this);
Server.PlayersByCon[Con] = this;
Server.PlayersByID[ID] = this;
if (Server.UserData.TryLoad(UID, out BanInfo ban) && !ban.Reason.IsNullOrEmpty()) {
Con.Send(new DataDisconnectReason { Text = string.Format(Server.Settings.MessageIPBan, ban.Reason) });
Con.Send(new DataInternalDisconnect());
return;
}
string name = handshake.Name;
if (name.StartsWith("#")) {
string uid = Server.UserData.GetUID(name.Substring(1));
if (uid.IsNullOrEmpty()) {
Con.Send(new DataDisconnectReason { Text = Server.Settings.MessageInvalidUserKey });
Con.Send(new DataInternalDisconnect());
return;
}
UID = uid;
if (!Server.UserData.TryLoad(uid, out BasicUserInfo userinfo)) {
Con.Send(new DataDisconnectReason { Text = Server.Settings.MessageUserInfoMissing });
Con.Send(new DataInternalDisconnect());
return;
}
name = userinfo.Name.Sanitize(IllegalNameChars, true);
if (name.Length > Server.Settings.MaxNameLength)
name = name.Substring(0, Server.Settings.MaxNameLength);
if (name.IsNullOrEmpty())
name = "Ghost";
if (Server.UserData.TryLoad(UID, out ban) && !ban.Reason.IsNullOrEmpty()) {
Con.Send(new DataDisconnectReason { Text = string.Format(Server.Settings.MessageBan, name, ban.Reason) });
Con.Send(new DataInternalDisconnect());
return;
}
} else {
if (Server.Settings.AuthOnly) {
Con.Send(new DataDisconnectReason { Text = Server.Settings.MessageAuthOnly });
Con.Send(new DataInternalDisconnect());
return;
}
name = name.Sanitize(IllegalNameChars);
if (name.Length > Server.Settings.MaxGuestNameLength)
name = name.Substring(0, Server.Settings.MaxGuestNameLength);
if (name.IsNullOrEmpty())
name = "Guest";
}
if (name.Length > Server.Settings.MaxNameLength)
name = name.Substring(0, Server.Settings.MaxNameLength);
string nameSpace = name;
name = name.Replace(" ", "");
string fullNameSpace = nameSpace;
string fullName = name;
using (Server.ConLock.R()) {
int i = 1;
while (true) {
bool conflict = false;
foreach (CelesteNetPlayerSession other in Server.Sessions)
if (conflict = other.PlayerInfo?.FullName == fullName)
break;
if (!conflict)
break;
i++;
fullNameSpace = $"{nameSpace}#{i}";
fullName = $"{name}#{i}";
}
}
string displayName = fullNameSpace;
using (Stream? avatar = Server.UserData.ReadFile(UID, "avatar.png")) {
if (avatar != null) {
AvatarEmoji = new() {
ID = $"celestenet_avatar_{ID}_",
Data = avatar.ToBytes()
};
displayName = $":{AvatarEmoji.ID}: {fullNameSpace}";
}
}
DataPlayerInfo playerInfo = new() {
ID = ID,
Name = name,
FullName = fullName,
DisplayName = displayName
};
playerInfo.Meta = playerInfo.GenerateMeta(Server.Data);
Server.Data.SetRef(playerInfo);
Logger.Log(LogLevel.INF, "playersession", playerInfo.ToString());
Con.Send(new DataHandshakeServer {
PlayerInfo = playerInfo
});
Con.Send(AvatarEmoji);
DataInternalBlob? blobPlayerInfo = DataInternalBlob.For(Server.Data, playerInfo);
DataInternalBlob? blobAvatarEmoji = DataInternalBlob.For(Server.Data, AvatarEmoji);
using (Server.ConLock.R())
foreach (CelesteNetPlayerSession other in Server.Sessions) {
if (other == this)
continue;
DataPlayerInfo? otherInfo = other.PlayerInfo;
if (otherInfo == null)
continue;
other.Con.Send(blobPlayerInfo);
other.Con.Send(blobAvatarEmoji);
Con.Send(otherInfo);
Con.Send(other.AvatarEmoji);
foreach (DataType bound in Server.Data.GetBoundRefs(otherInfo))
if (!bound.Is<MetaPlayerPrivateState>(Server.Data) || other.Channel.ID == 0)
Con.Send(bound);
}
ResendPlayerStates();
Server.InvokeOnSessionStart(this);
}
19
View Source File : FileSystemUserData.cs
License : MIT License
Project Creator : 0x0ade
License : MIT License
Project Creator : 0x0ade
public override string Create(string uid) {
lock (GlobalLock) {
Global global = LoadRaw<Global>(GlobalPath);
string key = GetKey(uid);
if (!key.IsNullOrEmpty())
return key;
string keyFull;
do {
keyFull = Guid.NewGuid().ToString().Replace("-", "");
key = keyFull.Substring(0, 16);
} while (global.UIDs.ContainsKey(key));
global.UIDs[key] = uid;
Save(uid, new PrivateUserInfo {
Key = key,
KeyFull = keyFull
});
SaveRaw(GlobalPath, global);
return key;
}
}
19
View Source File : SqliteUserData.cs
License : MIT License
Project Creator : 0x0ade
License : MIT License
Project Creator : 0x0ade
public override string Create(string uid) {
lock (GlobalLock) {
string key = GetKey(uid);
if (!key.IsNullOrEmpty())
return key;
string keyFull;
do {
keyFull = Guid.NewGuid().ToString().Replace("-", "");
key = keyFull.Substring(0, 16);
} while (!GetUID(key).IsNullOrEmpty());
using MiniCommand mini = new(this) {
SqliteOpenMode.ReadWrite,
@"
REPLACE INTO meta (uid, key, keyfull, registered)
VALUES ($uid, $key, $keyfull, 1);
",
{ "$uid", uid },
{ "$key", key },
{ "$keyfull", keyFull },
};
mini.Run();
return key;
}
}
19
View Source File : Ribbon.cs
License : GNU General Public License v3.0
Project Creator : 0dteam
License : GNU General Public License v3.0
Project Creator : 0dteam
public String GetURLsAndAttachmentsInfo(MailItem mailItem)
{
string urls_and_attachments = "---------- URLs and Attachments ----------";
var domainsInEmail = new List<string>();
var emailHTML = mailItem.HTMLBody;
var doc = new HtmlAgilityPack.HtmlDoreplacedent();
doc.LoadHtml(emailHTML);
// extracting all links
var urlsText = "";
var urlNodes = doc.DoreplacedentNode.SelectNodes("//a[@href]");
if(urlNodes != null)
{
urlsText = "\n\n # of URLs: " + doc.DoreplacedentNode.SelectNodes("//a[@href]").Count;
foreach (HtmlNode link in doc.DoreplacedentNode.SelectNodes("//a[@href]"))
{
HtmlAttribute att = link.Attributes["href"];
if (att.Value.Contains("a"))
{
urlsText += "\n --> URL: " + att.Value.Replace(":", "[:]");
// Domain Extraction
try
{
domainsInEmail.Add(new Uri(att.Value).Host);
}
catch (UriFormatException)
{
// Try to process URL as email address. Example -> <a href="mailto:[email protected]">...etc
String emailAtChar = "@";
int ix = att.Value.IndexOf(emailAtChar);
if (ix != -1)
{
string emailDomain = att.Value.Substring(ix + emailAtChar.Length);
try
{
domainsInEmail.Add(new Uri(emailDomain).Host);
}
catch (UriFormatException)
{
// if it fails again, ignore domain extraction
Console.WriteLine("Bad url: {0}", emailDomain);
}
}
}
}
}
}
else
urlsText = "\n\n # of URLs: 0";
// Get domains
domainsInEmail = domainsInEmail.Distinct().ToList();
urls_and_attachments += "\n # of unique Domains: " + domainsInEmail.Count;
foreach (string item in domainsInEmail)
{
urls_and_attachments += "\n --> Domain: " + item.Replace(":", "[:]");
}
// Add Urls
urls_and_attachments += urlsText;
urls_and_attachments += "\n\n # of Attachments: " + mailItem.Attachments.Count;
foreach (Attachment a in mailItem.Attachments)
{
// Save attachment as txt file temporarily to get its hashes (saves under User's Temp folder)
var filePath = Environment.ExpandEnvironmentVariables(@"%TEMP%\Outlook-Phishaddin-" + a.DisplayName + ".txt");
a.SaveAsFile(filePath);
string fileHash_md5 = "";
string fileHash_sha256 = "";
if (File.Exists(filePath))
{
fileHash_md5 = CalculateMD5(filePath);
fileHash_sha256 = GetHashSha256(filePath);
// Delete file after getting the hashes
File.Delete(filePath);
}
urls_and_attachments += "\n --> Attachment: " + a.FileName + " (" + a.Size + " bytes)\n\t\tMD5: " + fileHash_md5 + "\n\t\tSha256: " + fileHash_sha256 + "\n";
}
return urls_and_attachments;
}
19
View Source File : Ribbon.cs
License : GNU General Public License v3.0
Project Creator : 0dteam
License : GNU General Public License v3.0
Project Creator : 0dteam
static string CalculateMD5(string filename)
{
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(filename))
{
var hash = md5.ComputeHash(stream);
return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
}
}
}
19
View Source File : StringInjectExtension.cs
License : MIT License
Project Creator : 0x0ade
License : MIT License
Project Creator : 0x0ade
public static string InjectSingleValue(this string formatString, string key, object replacementValue) {
string result = formatString;
//regex replacement of key with value, where the generic key format is:
//Regex foo = new("{(foo)(?:}|(?::(.[^}]*)}))");
Regex attributeRegex = new("{(" + key + ")(?:}|(?::(.[^}]*)}))"); //for key = foo, matches {foo} and {foo:SomeFormat}
//loop through matches, since each key may be used more than once (and with a different format string)
foreach (Match? m in attributeRegex.Matches(formatString)) {
if (m == null)
continue;
string replacement = m.ToString();
if (m.Groups[2].Length > 0) {
//matched {foo:SomeFormat}
//do a double string.Format - first to build the proper format string, and then to format the replacement value
string attributeFormatString = string.Format(CultureInfo.InvariantCulture, "{{0:{0}}}", m.Groups[2]);
replacement = string.Format(CultureInfo.CurrentCulture, attributeFormatString, replacementValue);
} else {
//matched {foo}
replacement = replacementValue.ToString() ?? string.Empty;
}
//perform replacements, one match at a time
result = result.Replace(m.ToString(), replacement); //attributeRegex.Replace(result, replacement, 1);
}
return result;
}
19
View Source File : Frontend.cs
License : MIT License
Project Creator : 0x0ade
License : MIT License
Project Creator : 0x0ade
public Stream? OpenContent(string path, out string pathNew, out DateTime? lastMod, out string? contentType) {
pathNew = path;
try {
string dir = Path.GetFullPath(Settings.ContentRoot);
string pathFS = Path.GetFullPath(Path.Combine(dir, path));
if (pathFS.StartsWith(dir) && File.Exists(pathFS)) {
lastMod = File.GetLastWriteTimeUtc(pathFS);
contentType = GetContentType(pathFS);
return File.OpenRead(pathFS);
}
} catch {
}
#if DEBUG
try {
string dir = Path.GetFullPath(Path.Combine("..", "..", "..", "Content"));
string pathFS = Path.GetFullPath(Path.Combine(dir, path));
if (pathFS.StartsWith(dir) && File.Exists(pathFS)) {
lastMod = File.GetLastWriteTimeUtc(pathFS);
contentType = GetContentType(pathFS);
return File.OpenRead(pathFS);
}
} catch {
}
try {
string dir = Path.GetFullPath(Path.Combine("..", "..", "..", "..", "CelesteNet.Server.FrontendModule", "Content"));
string pathFS = Path.GetFullPath(Path.Combine(dir, path));
if (pathFS.StartsWith(dir) && File.Exists(pathFS)) {
lastMod = File.GetLastWriteTimeUtc(pathFS);
contentType = GetContentType(pathFS);
return File.OpenRead(pathFS);
}
} catch {
}
#endif
if (!path.EndsWith("/index.html")) {
path = path.EndsWith("/") ? path : (path + "/");
Stream? index = OpenContent(path + "index.html", out _, out lastMod, out contentType);
if (index != null) {
pathNew = path;
return index;
}
}
lastMod = null;
contentType = GetContentType(path);
return typeof(CelesteNetServer).replacedembly.GetManifestResourceStream("Celeste.Mod.CelesteNet.Server.Content." + path.Replace("/", "."));
}
19
View Source File : Program.cs
License : GNU General Public License v3.0
Project Creator : 0x2b00b1e5
License : GNU General Public License v3.0
Project Creator : 0x2b00b1e5
static void Execute()
{
string batchpath = Path.Combine(FolderExe, "SHORTCUT.bat");
CreateBatch(FLStudioPaths, batchpath);
if (ReplaceDesktop)
{
CreateShortcut(string.Format("FL Studio {0}", VersionNumber), Environment.GetFolderPath(Environment.SpecialFolder.Desktop), batchpath, IconPath());
CreateShortcut(string.Format("FL Studio {0}", VersionNumber), Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Programs), "Image-Line"), batchpath, IconPath());
CreateShortcut(string.Format("FL Studio {0}", VersionNumber), Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Microsoft\\Windows\\Start Menu\\Programs\\Image-Line"), batchpath, IconPath());
}
if (WriteShortcuts[0] != "")
{
foreach (string p in WriteShortcuts)
{
string realP = p.Replace(@"""", string.Empty);
CreateShortcut(string.Format("FL Studio {0}", VersionNumber), realP , batchpath, IconPath());
}
}
Console.WriteLine("\n\n Done, Thank you!");
}
19
View Source File : Program.cs
License : GNU General Public License v3.0
Project Creator : 0x2b00b1e5
License : GNU General Public License v3.0
Project Creator : 0x2b00b1e5
static void GetFLPaths()
{
string path = (string)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Image-Line\\Shared\\Paths", "FL Studio", null);
if(path == null)
{
Console.WriteLine("No FL Studio path detected!\n\n");
Console.Write("Please enter full path to the FL Studio executable: ");
string output = Console.ReadLine();
System.Diagnostics.FileVersionInfo FLInf = System.Diagnostics.FileVersionInfo.GetVersionInfo(output);
if (FLInf.ProductName != "FL Studio")
{
Console.WriteLine("\n This file doesn't appear to be a FL Studio executable...try again!");
GetFLPaths();
}
FLStudioPaths = output;
}
else
{
FLStudioPaths = path;
Console.WriteLine(string.Format("Found FL Studio at path: {0}", path));
Console.WriteLine("Correct? (Y/N)");
switch (Console.ReadKey().Key)
{
case ConsoleKey.Y:
break;
case ConsoleKey.N:
Console.Write("Please enter full path to the FL Studio executable: ");
string output = Console.ReadLine();
output.Replace("\"", string.Empty);
System.Diagnostics.FileVersionInfo FLInf = System.Diagnostics.FileVersionInfo.GetVersionInfo(output);
if (FLInf.ProductName != "FL Studio")
{
Console.WriteLine("\n This file doesn't appear to be a FL Studio executable...try again!");
System.Threading.Thread.Sleep(1000);
GetFLPaths();
}
FLStudioPaths = output;
break;
}
}
}
19
View Source File : JitDasmOptions.cs
License : MIT License
Project Creator : 0xd4d
License : MIT License
Project Creator : 0xd4d
static Regex CreateRegex(string wildcardString) {
const RegexOptions flags = RegexOptions.CultureInvariant | RegexOptions.IgnoreCase | RegexOptions.Singleline;
return new Regex("^" + Regex.Escape(wildcardString).Replace(@"\*", ".*").Replace(@"\?", ".") + "$", flags);
}
19
View Source File : ElementBase.cs
License : MIT License
Project Creator : 1217950746
License : MIT License
Project Creator : 1217950746
public static DependencyProperty Property<thisType, propertyType>(string name, propertyType defaultValue)
{
return DependencyProperty.Register(name.Replace("Property", ""), typeof(propertyType), typeof(thisType), new PropertyMetadata(defaultValue));
}
19
View Source File : ElementBase.cs
License : MIT License
Project Creator : 1217950746
License : MIT License
Project Creator : 1217950746
public static RoutedEvent RoutedEvent<thisType, propertyType>(string name)
{
return EventManager.RegisterRoutedEvent(name.Replace("Event", ""), RoutingStrategy.Bubble, typeof(propertyType), typeof(thisType));
}
19
View Source File : EnvironmentVariableReader.cs
License : MIT License
Project Creator : 1100100
License : MIT License
Project Creator : 1100100
public static T Get<T>(string variable, T defaultValue = default)
{
var value = Environment.GetEnvironmentVariable(variable);
if (string.IsNullOrWhiteSpace(value))
return defaultValue;
value = value.ReplaceIpPlaceholder();
var matches = Regex.Matches(value, "[{](.*?)[}]");
if (matches.Count > 0)
{
foreach (var match in matches)
{
value = value.Replace(match.ToString(), Environment.GetEnvironmentVariable(match.ToString().TrimStart('{').TrimEnd('}')));
}
}
return (T)Convert.ChangeType(value, typeof(T));
}
19
View Source File : ICachingKeyGenerator.Default.cs
License : MIT License
Project Creator : 1100100
License : MIT License
Project Creator : 1100100
private string MD5(byte[] bytes)
{
using (MD5 md5 = new MD5CryptoServiceProvider())
{
var hash = md5.ComputeHash(bytes);
md5.Clear();
return BitConverter.ToString(hash).Replace("-", "").ToLower();
}
}
19
View Source File : IPHelper.cs
License : MIT License
Project Creator : 1100100
License : MIT License
Project Creator : 1100100
public static string ReplaceIpPlaceholder(this string text)
{
if (!text.Contains(LocalIp))
return text;
return text.Replace(LocalIp, GetLocalInternetIp().ToString());
}
19
View Source File : ZooKeeperServiceDiscovery.cs
License : MIT License
Project Creator : 1100100
License : MIT License
Project Creator : 1100100
private static string GetServiceNameFromPath(string path)
{
return path.Replace(Root, "").Trim('/');
}
19
View Source File : ElementBase.cs
License : MIT License
Project Creator : 1217950746
License : MIT License
Project Creator : 1217950746
public static DependencyProperty Property<thisType, propertyType>(string name)
{
return DependencyProperty.Register(name.Replace("Property", ""), typeof(propertyType), typeof(thisType));
}
19
View Source File : PatternFormatter.cs
License : MIT License
Project Creator : 13xforever
License : MIT License
Project Creator : 13xforever
public static string Format(string pattern, NameValueCollection items)
{
if (string.IsNullOrEmpty(pattern))
return pattern;
foreach (var k in items.AllKeys)
pattern = pattern.Replace($"%{k}%", items[k]);
pattern = pattern.Replace("®", "")
.Replace("™", "")
.Replace("(TM)", "")
.Replace("(R)", "");
return pattern;
}
19
View Source File : Utils.cs
License : MIT License
Project Creator : 13xforever
License : MIT License
Project Creator : 13xforever
public static string Sanitize(this string str)
{
return str?.Replace("`", "`\u200d").Replace("@", "@\u200d");
}
19
View Source File : ExpressionActivator.cs
License : Apache License 2.0
Project Creator : 1448376744
License : Apache License 2.0
Project Creator : 1448376744
private Dictionary<string, string> Factorization(string expression)
{
var experssions = new Dictionary<string, string>();
var pattern = @"\([^\(\)]+\)";
var text = $"({expression})";
while (Regex.IsMatch(text, pattern))
{
var key = $"${experssions.Count}";
var value = Regex.Match(text, pattern).Value;
experssions.Add(key, value);
text = text.Replace(value, key);
}
return experssions;
}
19
View Source File : EntityMapperProvider.cs
License : Apache License 2.0
Project Creator : 1448376744
License : Apache License 2.0
Project Creator : 1448376744
public DataReaderCellInfo FindConstructorParameter(DataReaderCellInfo[] dataInfos, ParameterInfo parameterInfo)
{
foreach (var item in dataInfos)
{
if (item.DataName.Equals(parameterInfo.Name, StringComparison.OrdinalIgnoreCase))
{
return item;
}
else if (item.DataName.Replace("_", "").Equals(parameterInfo.Name, StringComparison.OrdinalIgnoreCase))
{
return item;
}
}
return null;
}
19
View Source File : EntityMapperProvider.cs
License : Apache License 2.0
Project Creator : 1448376744
License : Apache License 2.0
Project Creator : 1448376744
public MemberInfo FindMember(MemberInfo[] properties, DataReaderCellInfo dataInfo)
{
foreach (var item in properties)
{
if (item.Name.Equals(dataInfo.DataName, StringComparison.OrdinalIgnoreCase))
{
return item;
}
else if (item.Name.Equals(dataInfo.DataName.Replace("_", ""), StringComparison.OrdinalIgnoreCase))
{
return item;
}
}
return null;
}
19
View Source File : XmlCommandsProvider.cs
License : Apache License 2.0
Project Creator : 1448376744
License : Apache License 2.0
Project Creator : 1448376744
private string ReplaceVariable(Dictionary<string, string> variables, string text)
{
var matches = Regex.Matches(text, @"\${(?<key>.*?)}");
foreach (Match item in matches)
{
var key = item.Groups["key"].Value;
if (variables.ContainsKey(key))
{
var value = variables[key];
text = text.Replace("${" + key + "}", value);
}
}
return Regex.Replace(text, @"\s+", " ").Trim(' ');
}
19
View Source File : GeneratorClass.cs
License : MIT License
Project Creator : 188867052
License : MIT License
Project Creator : 188867052
private static string GetConvertedNamespace(string name)
{
return name.Replace("Controllers", "Routes");
}
19
View Source File : JwtCredentialBuilder.cs
License : MIT License
Project Creator : 17MKH
License : MIT License
Project Creator : 17MKH
public async Task<IResultModel> Build(List<Claim> claims)
{
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_options.Key));
var signingCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
var jwtSecurityToken = new JwtSecurityToken(_options.Issuer, _options.Audience, claims, DateTime.Now, DateTime.Now.AddMinutes(_options.Expires), signingCredentials);
var token = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken);
_logger.LogDebug("生成AccessToken:{token}", token);
var result = new JwtResultModel
{
AccountId = Guid.Parse(claims.First(m => m.Type == MkhClaimTypes.ACCOUNT_ID).Value),
Platform = claims.First(m => m.Type == MkhClaimTypes.PLATFORM).Value.ToInt(),
AccessToken = token,
ExpiresIn = (_options.Expires < 0 ? 120 : _options.Expires) * 60,
RefreshToken = Guid.NewGuid().ToString().Replace("-", "")
};
//存储令牌信息
await _tokenStorageProvider.Save(result, claims);
return ResultModel.Success(result);
}
19
View Source File : ExpressionResolver.cs
License : MIT License
Project Creator : 17MKH
License : MIT License
Project Creator : 17MKH
private static void ResolveInForGeneric(StringBuilder sqlBuilder, string columnName, Expression exp, Type valueType, bool notContainer = false)
{
var value = ResolveDynamicInvoke(exp);
var isValueType = false;
var list = new List<string>();
if (valueType.IsEnum)
{
isValueType = true;
var valueList = (IEnumerable)value;
if (valueList != null)
{
foreach (var c in valueList)
{
list.Add(Enum.Parse(valueType, c.ToString()!).ToInt().ToString());
}
}
}
else
{
var typeName = valueType.Name;
switch (typeName)
{
case "Guid":
if (value is IEnumerable<Guid> guidValues)
{
foreach (var c in guidValues)
{
list.Add(c.ToString());
}
}
break;
case "DateTime":
if (value is IEnumerable<DateTime> dateTimeValues)
{
foreach (var c in dateTimeValues)
{
list.Add(c.ToString("yyyy-MM-dd HH:mm:ss"));
}
}
break;
case "Byte":
isValueType = true;
if (value is IEnumerable<byte> byteValues)
{
foreach (var c in byteValues)
{
list.Add(c.ToString(CultureInfo.InvariantCulture));
}
}
break;
case "Char":
if (value is IEnumerable<char> charValues)
{
foreach (var c in charValues)
{
list.Add(c.ToString());
}
}
break;
case "Int16":
isValueType = true;
if (value is IEnumerable<short> shortValues)
{
foreach (var c in shortValues)
{
list.Add(c.ToString());
}
}
break;
case "Int32":
isValueType = true;
if (value is IEnumerable<int> intValues)
{
foreach (var c in intValues)
{
list.Add(c.ToString());
}
}
break;
case "Int64":
isValueType = true;
if (value is IEnumerable<long> longValues)
{
foreach (var c in longValues)
{
list.Add(c.ToString());
}
}
break;
case "Double":
isValueType = true;
if (value is IEnumerable<double> doubleValues)
{
foreach (var c in doubleValues)
{
list.Add(c.ToString(CultureInfo.InvariantCulture));
}
}
break;
case "Single":
isValueType = true;
if (value is IEnumerable<float> floatValues)
{
foreach (var c in floatValues)
{
list.Add(c.ToString(CultureInfo.InvariantCulture));
}
}
break;
case "Decimal":
isValueType = true;
if (value is IEnumerable<decimal> decimalValues)
{
foreach (var c in decimalValues)
{
list.Add(c.ToString(CultureInfo.InvariantCulture));
}
}
break;
}
}
if (list!.Count < 1)
return;
sqlBuilder.Append(columnName);
sqlBuilder.Append(notContainer ? " NOT IN (" : " IN (");
//值类型不带引号
if (isValueType)
{
for (var i = 0; i < list.Count; i++)
{
sqlBuilder.AppendFormat("{0}", list[i]);
if (i != list.Count - 1)
{
sqlBuilder.Append(",");
}
}
}
else
{
for (var i = 0; i < list.Count; i++)
{
sqlBuilder.AppendFormat("'{0}'", list[i].Replace("'", "''"));
if (i != list.Count - 1)
{
sqlBuilder.Append(",");
}
}
}
sqlBuilder.Append(")");
}
19
View Source File : DynamicAssembly.cs
License : MIT License
Project Creator : 1996v
License : MIT License
Project Creator : 1996v
public TypeBuilder DefineCollectionFormatterType(Type type, Type elementType)
{
VerifyTypeIsPublic(type);
string pre = "Array2.";
if (Array1FormatterHelper.IsArray1Type(elementType))
{
pre = "Array1.";
}
Type formatterType = typeof(IBssomFormatter<>).MakeGenericType(type);
TypeBuilder typeBuilder = DefineType("Bssom.Formatters." + pre + SubtractFullNameRegex.Replace(type.FullName, string.Empty).Replace(".", "_") + "Formatter" + Interlocked.Increment(ref nameSequence), TypeAttributes.NotPublic | TypeAttributes.Sealed, null, new[] { formatterType });
return typeBuilder;
}
19
View Source File : DynamicAssembly.cs
License : MIT License
Project Creator : 1996v
License : MIT License
Project Creator : 1996v
public TypeBuilder DefineFormatterType(Type type)
{
VerifyTypeIsPublic(type);
Type formatterType = typeof(IBssomFormatter<>).MakeGenericType(type);
TypeBuilder typeBuilder = DefineType("Bssom.Formatters." + SubtractFullNameRegex.Replace(type.FullName, string.Empty).Replace(".", "_") + "Formatter" + Interlocked.Increment(ref nameSequence), TypeAttributes.NotPublic | TypeAttributes.Sealed, null, new[] { formatterType });
return typeBuilder;
}
19
View Source File : DynamicAssembly.cs
License : MIT License
Project Creator : 1996v
License : MIT License
Project Creator : 1996v
public TypeBuilder DefineFormatterDelegateType(Type type)
{
TypeBuilder typeBuilder = DefineType("Bssom.Formatters." + SubtractFullNameRegex.Replace(type.FullName, string.Empty).Replace(".", "_") + "FormatterDelegate" + Interlocked.Increment(ref nameSequence), TypeAttributes.NotPublic | TypeAttributes.Sealed, null, null);
return typeBuilder;
}
19
View Source File : DynamicAssembly.cs
License : MIT License
Project Creator : 1996v
License : MIT License
Project Creator : 1996v
public TypeBuilder DefineInterfaceImpType(Type interfaceType)
{
VerifyTypeIsPublic(interfaceType);
TypeBuilder typeBuilder = DefineType("Bssom.DynamicInterfaceImp." + SubtractFullNameRegex.Replace(interfaceType.FullName, string.Empty).Replace(".", "_") + Interlocked.Increment(ref nameSequence), TypeAttributes.Public | TypeAttributes.Sealed, null, new[] { interfaceType });
return typeBuilder;
}
19
View Source File : FileUploadProvider.cs
License : MIT License
Project Creator : 17MKH
License : MIT License
Project Creator : 17MKH
public async Task<IResultModel<FileDescriptor>> Upload(FileUploadModel model, CancellationToken cancellationToken = default)
{
Check.NotNull(model, nameof(model), "file upload model is null");
Check.NotNull(model.StorageRootDirectory, nameof(model.StorageRootDirectory), "the file storage root directory is null");
var result = new ResultModel<FileDescriptor>();
if (model.FormFile == null)
return result.Failed("请选择文件!");
var size = model.FormFile.Length;
//验证文件大小
if (model.MaxSize > 0 && model.MaxSize < size)
return result.Failed($"文件大小不能超过{new FileSize(model.MaxSize).ToString()}");
var name = model.FileName.IsNull() ? model.FormFile.FileName : model.FileName;
var descriptor = new FileDescriptor(name, size);
//验证扩展名
if (model.LimitExtensions != null && !model.LimitExtensions.Any(m => m.EqualsIgnoreCase(descriptor.Extension)))
return result.Failed($"文件格式无效,请上传{model.LimitExtensions.Aggregate((x, y) => x + "," + y)}格式的文件");
//按照日期来保存文件
var date = DateTime.Now;
descriptor.DirectoryName = Path.Combine(model.StorageRootDirectory, date.ToString("yyyy"), date.ToString("MM"), date.ToString("dd"));
//创建目录
if (!Directory.Exists(descriptor.DirectoryName))
{
Directory.CreateDirectory(descriptor.DirectoryName);
}
//生成文件存储名称
descriptor.StorageName = $"{Guid.NewGuid().ToString().Replace("-", "")}.{descriptor.Extension}";
//写入
await using var stream = new FileStream(descriptor.FullName, FileMode.Create);
//计算MD5
if (model.CalculateMd5)
{
descriptor.Md5 = _md5Encrypt.Encrypt(stream);
}
await model.FormFile.CopyToAsync(stream, cancellationToken);
return result.Success(descriptor);
}
19
View Source File : ControllerResolver.cs
License : MIT License
Project Creator : 17MKH
License : MIT License
Project Creator : 17MKH
private void LoadControllers()
{
ControllerFeature controllerFeature = new ControllerFeature();
_partManager.PopulateFeature(controllerFeature);
foreach (TypeInfo item2 in controllerFeature.Controllers.ToList())
{
if (item2.IsAbstract)
{
continue;
}
ControllerDescriptor controllerDescriptor = new ControllerDescriptor
{
Name = item2.Name.Replace("Controller", ""),
Description = _attributeHelper.GetDescription(item2),
Actions = new List<ActionDescriptor>(),
TypeInfo = item2
};
AreaAttribute areaAttribute = (AreaAttribute)Attribute.GetCustomAttribute(item2, typeof(AreaAttribute));
if (areaAttribute != null)
{
controllerDescriptor.Area = areaAttribute.RouteValue;
}
MethodInfo[] methods = item2.GetMethods(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public);
foreach (MethodInfo methodInfo in methods)
{
if (methodInfo.CustomAttributes.Any(m => m.AttributeType == typeof(HttpGetAttribute) || m.AttributeType == typeof(HttpPostAttribute) || m.AttributeType == typeof(HttpPutAttribute) || m.AttributeType == typeof(HttpOptionsAttribute) || m.AttributeType == typeof(HttpHeadAttribute) || m.AttributeType == typeof(HttpPatchAttribute) || m.AttributeType == typeof(HttpDeleteAttribute)))
{
ActionDescriptor item = new ActionDescriptor
{
Name = methodInfo.Name,
MethodInfo = methodInfo
};
controllerDescriptor.Actions.Add(item);
}
}
Controllers.Add(controllerDescriptor);
}
}
See More Examples