------ #### V1.0.2404.1201 - 新增支持手动运行规则。 - 规则播放时间间隔不再针对全局声效,而只针对当前规则声效。 - 修复规则中播放文件夹可能导致无法执行的BUG。 - 修复规则不勾选礼物和点赞,则无法执行的BUG。
439 lines
10 KiB
C#
439 lines
10 KiB
C#
using LiveTools;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using ryCommon;
|
|
using System;
|
|
using System.Data;
|
|
|
|
/// <summary>
|
|
/// json 的摘要说明
|
|
/// </summary>
|
|
public class Json
|
|
{
|
|
private string jsonText = "";
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public JObject jo;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public Json()
|
|
{
|
|
jo = new JObject();
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public string Html { get; private set; } = "";
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public Json(JObject jo)
|
|
{
|
|
this.jo = jo;
|
|
}
|
|
private void LoadJson(string _jsonText)
|
|
{
|
|
Html = _jsonText;
|
|
if (_jsonText == null) { jo = new JObject(); return; }
|
|
if (_jsonText.Length == 0)
|
|
{
|
|
jo = new JObject(); return;
|
|
}
|
|
string xx = _jsonText.GetStr("descUrl", "counterApi");
|
|
jsonText = _jsonText.Replace("+new Date,", "'',");
|
|
jsonText = jsonText.Replace("!true,", "false,");
|
|
if (xx.Length > 0) { jsonText = jsonText.Replace(xx, " :'',\r\n "); }
|
|
try
|
|
{
|
|
if (jsonText.Length == 0)
|
|
{ jo = new JObject(); }
|
|
else
|
|
jo = (JObject)JsonConvert.DeserializeObject(jsonText);
|
|
}
|
|
catch (Exception)
|
|
{
|
|
jo = new JObject();
|
|
}
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="_jsonText"></param>
|
|
public Json(string _jsonText)
|
|
{
|
|
LoadJson(_jsonText);
|
|
}
|
|
/// <summary>
|
|
/// 获取或设置json文本
|
|
/// </summary>
|
|
public string Text
|
|
{
|
|
get { return jo.ToString(); }
|
|
set
|
|
{
|
|
jsonText = value;
|
|
if (value.Length == 0)
|
|
{
|
|
jo = new JObject();
|
|
}
|
|
else
|
|
{
|
|
jo = (JObject)JsonConvert.DeserializeObject(value);
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <returns></returns>
|
|
public string GetJsonValue(string name)
|
|
{
|
|
if (jo[name] == null) { return ""; }
|
|
else
|
|
{ return jo[name].ToString(); }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public string GetJsonValue(string name, string defvalue)
|
|
{
|
|
if (jo[name] == null) { return defvalue; }
|
|
else
|
|
{ return jo[name].ToString(); }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public bool GetJsonValue(string name, bool defvalue)
|
|
{
|
|
if (jo[name] == null) { return defvalue; }
|
|
else
|
|
{
|
|
string value = jo[name].ToString().ToLower();
|
|
return value == "1" || value == "true";
|
|
}
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public int GetJsonValue(string name, int defvalue)
|
|
{
|
|
if (jo[name] == null) { return defvalue; }
|
|
else
|
|
{ return jo[name].ToInt(defvalue); }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="min"></param>
|
|
/// <param name="max"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public int GetJsonValue(string name, int min, int max, int defvalue)
|
|
{
|
|
if (jo[name] == null) { return defvalue; }
|
|
else
|
|
{ return jo[name].ToInt(min, max, defvalue); }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="min"></param>
|
|
/// <param name="max"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public decimal GetJsonValue(string name, decimal min, decimal max, decimal defvalue)
|
|
{
|
|
if (jo[name] == null) { return defvalue; }
|
|
else
|
|
{ return jo[name].ToDecimal(min, max, defvalue); }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public Int64 GetJsonValue(string name, Int64 defvalue)
|
|
{
|
|
if (jo[name] == null) { return defvalue; }
|
|
else
|
|
{ return jo[name].ToInt64(defvalue); }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public decimal GetJsonValue(string name, decimal defvalue)
|
|
{
|
|
if (jo[name] == null) { return defvalue; }
|
|
else
|
|
{ return jo[name].ToDecimal(defvalue); }
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public double GetJsonValue(string name, double defvalue)
|
|
{
|
|
if (jo[name] == null) { return defvalue; }
|
|
else
|
|
{ return jo[name].ToDouble(defvalue); }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public JObject GetJsonValue(string name, JObject defvalue)
|
|
{
|
|
if (jo[name] == null) { return defvalue; }
|
|
else
|
|
{
|
|
try
|
|
{
|
|
return (JObject)jo[name];
|
|
}
|
|
catch { return defvalue; }
|
|
}
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public JArray GetJsonValue(string name, JArray defvalue)
|
|
{
|
|
if (jo[name] == null) { return defvalue; }
|
|
else
|
|
{
|
|
try
|
|
{
|
|
return (JArray)jo[name];
|
|
}
|
|
catch { return defvalue; }
|
|
}
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public void SetJsonValue(string name, decimal defvalue)
|
|
{
|
|
if (jo[name] == null) { Add(name, defvalue); }
|
|
else
|
|
{ jo[name] = defvalue.ToString(); }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public void SetJsonValue(string name, int defvalue)
|
|
{
|
|
if (jo[name] == null) { Add(name, defvalue); }
|
|
else
|
|
{ jo[name] = defvalue.ToString(); }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public void SetJsonValue(string name, string defvalue)
|
|
{
|
|
if (jo[name] == null) { Add(name, defvalue); }
|
|
else
|
|
{ jo[name] = defvalue; }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public void SetJsonValue(string name, bool defvalue)
|
|
{
|
|
if (jo[name] == null) { Add(name, defvalue); }
|
|
else
|
|
{ jo[name] = defvalue ? 1 : 0; }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public void SetJsonValue(string name, JObject defvalue)
|
|
{
|
|
if (jo[name] == null) { Add(name, defvalue); }
|
|
else
|
|
{ jo[name] = defvalue; }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="defvalue"></param>
|
|
/// <returns></returns>
|
|
public void SetJsonValue(string name, JArray defvalue)
|
|
{
|
|
if (jo[name] == null) { Add(name, defvalue); }
|
|
else
|
|
{ jo[name] = defvalue; }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetJsonValueByTable(string name)
|
|
{
|
|
if (jo[name] == null) { return new DataTable(); }
|
|
else
|
|
{
|
|
try
|
|
{
|
|
return JsonConvert.DeserializeObject(jo[name].ToString(), typeof(DataTable)) as DataTable;
|
|
}
|
|
catch { return new DataTable(); }
|
|
}
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="Name"></param>
|
|
/// <param name="value"></param>
|
|
public void Add(string Name, string value)
|
|
{
|
|
try
|
|
{
|
|
jo.Add(Name, value);
|
|
}
|
|
catch { }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="Name"></param>
|
|
/// <param name="value"></param>
|
|
public void Add(string Name, JObject value)
|
|
{
|
|
try
|
|
{
|
|
jo.Add(Name, value);
|
|
}
|
|
catch { }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="Name"></param>
|
|
/// <param name="value"></param>
|
|
public void Add(string Name, JArray value)
|
|
{
|
|
try
|
|
{
|
|
jo.Add(Name, value);
|
|
}
|
|
catch { }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="Name"></param>
|
|
/// <param name="value"></param>
|
|
public void Add(string Name, int value)
|
|
{
|
|
try
|
|
{
|
|
jo.Add(Name, value);
|
|
}
|
|
catch { }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="Name"></param>
|
|
/// <param name="value"></param>
|
|
public void Add(string Name, long value)
|
|
{
|
|
try
|
|
{
|
|
jo.Add(Name, value);
|
|
}
|
|
catch { }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="Name"></param>
|
|
/// <param name="value"></param>
|
|
public void Add(string Name, bool value)
|
|
{
|
|
try
|
|
{
|
|
jo.Add(Name, value ? 1 : 0);
|
|
}
|
|
catch { }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="Name"></param>
|
|
/// <param name="value"></param>
|
|
public void Add(string Name, decimal value)
|
|
{
|
|
try
|
|
{
|
|
jo.Add(Name, value);
|
|
}
|
|
catch { }
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="Name"></param>
|
|
/// <param name="value"></param>
|
|
public void Add(string Name, DataTable value)
|
|
{
|
|
try
|
|
{
|
|
jo.Add(Name, Newtonsoft.Json.JsonConvert.SerializeObject(value));
|
|
}
|
|
catch { }
|
|
}
|
|
/// <summary>
|
|
/// 返回Json
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public override string ToString()
|
|
{
|
|
return this.Text;
|
|
}
|
|
} |