mirror of
https://github.com/KOP-XIAO/QuantumultX.git
synced 2026-01-25 17:15:09 +00:00
emoji&ntf
This commit is contained in:
@@ -1,7 +1,8 @@
|
|||||||
/**
|
/**
|
||||||
# Quantumult X 资源解析器 (2020-05-24: 13:59 )
|
# Quantumult X 资源解析器 (2020-05-25: 17:59 )
|
||||||
|
|
||||||
本资源解析器作者: Shawn(请勿私聊问怎么用),有bug请反馈: @Shawn_KOP_bot
|
解析器作者: Shawn(请勿私聊问怎么用)
|
||||||
|
有bug请反馈: @Shawn_KOP_bot
|
||||||
更新请关注tg频道: https://t.me/QuanX_API
|
更新请关注tg频道: https://t.me/QuanX_API
|
||||||
|
|
||||||
主要功能: 将各类服务器订阅解析成 QuantumultX 格式引用(支持 V2RayN/SSR/SS/Trojan/QuanX(conf&list)/Surge(conf&list)格式),并提供 1⃣️ 中的可选参数;
|
主要功能: 将各类服务器订阅解析成 QuantumultX 格式引用(支持 V2RayN/SSR/SS/Trojan/QuanX(conf&list)/Surge(conf&list)格式),并提供 1⃣️ 中的可选参数;
|
||||||
@@ -21,7 +22,7 @@
|
|||||||
- tls13=1, 开启 "tls13=true"(vmess/trojan), 请自行确认服务端是否支持;
|
- tls13=1, 开启 "tls13=true"(vmess/trojan), 请自行确认服务端是否支持;
|
||||||
- sort=1 或 sort=-1, 排序参数,分别根据节点名 正序/逆序 排列;
|
- sort=1 或 sort=-1, 排序参数,分别根据节点名 正序/逆序 排列;
|
||||||
- info=1, 开启通知提示流量信息(前提:原订阅链接有返回该信息),默认关闭;
|
- info=1, 开启通知提示流量信息(前提:原订阅链接有返回该信息),默认关闭;
|
||||||
- b64=1, 由于QuanX的特性,整体base64-encode 后导入时,Quanx 才会自动解码检查并忽视错误节点(所以可在解析提示"内容无效/invalid..."时,尝试使用此参数)
|
- b64=1, 由于QuanX的特性,整体 base64-encode 后导入时,QuanX 会自动解码检查并忽略错误节点(所以可在解析提示"内容无效/invalid..."时,尝试使用此参数)
|
||||||
|
|
||||||
2⃣️ "rewrite(重写)/filter(分流)" 引用--参数说明:
|
2⃣️ "rewrite(重写)/filter(分流)" 引用--参数说明:
|
||||||
- 参数为 "out=xxx", 多个参数用 "+" 连接;
|
- 参数为 "out=xxx", 多个参数用 "+" 连接;
|
||||||
@@ -66,12 +67,12 @@ var Psort0=mark0 && para.indexOf("sort=")!=-1? para.split("#")[1].split("sort=")
|
|||||||
var PTls13=mark0 && para.indexOf("tls13=")!=-1? para.split("#")[1].split("tls13=")[1].split("&")[0].split("+"):0;
|
var PTls13=mark0 && para.indexOf("tls13=")!=-1? para.split("#")[1].split("tls13=")[1].split("&")[0].split("+"):0;
|
||||||
var Pntf0= mark0 && para.indexOf("ntf=")!=-1? para.split("#")[1].split("ntf=")[1].split("&")[0].split("+"):0;
|
var Pntf0= mark0 && para.indexOf("ntf=")!=-1? para.split("#")[1].split("ntf=")[1].split("&")[0].split("+"):0;
|
||||||
var Pb64= mark0 && para.indexOf("b64=")!=-1? para.split("#")[1].split("b64=")[1].split("&")[0].split("+"):0;
|
var Pb64= mark0 && para.indexOf("b64=")!=-1? para.split("#")[1].split("b64=")[1].split("&")[0].split("+"):0;
|
||||||
//$notify(type0,"tt",content0)
|
const subinfo=$resource.info;
|
||||||
|
const subtag=$resource.tag;
|
||||||
|
//$notify(type0,"tt",subtag)
|
||||||
const Base64=new Base64Code();
|
const Base64=new Base64Code();
|
||||||
|
|
||||||
//响应头流量处理部分
|
//响应头流量处理部分
|
||||||
var subinfo=$resource.info;
|
|
||||||
var subtag=$resource.tag;
|
|
||||||
if(Pinfo==1 && subinfo){
|
if(Pinfo==1 && subinfo){
|
||||||
var sinfo=subinfo.replace(/ /g,"").toLowerCase();
|
var sinfo=subinfo.replace(/ /g,"").toLowerCase();
|
||||||
var total="总流量: "+(parseFloat(sinfo.split("total=")[1].split(",")[0])/(1024**3)).toFixed(2)+"GB";
|
var total="总流量: "+(parseFloat(sinfo.split("total=")[1].split(",")[0])/(1024**3)).toFixed(2)+"GB";
|
||||||
@@ -111,11 +112,11 @@ if(type0=="Subs-B64Encode"){
|
|||||||
total=content0.split("\n");
|
total=content0.split("\n");
|
||||||
total=Rule_Handle(total,Pout0);
|
total=Rule_Handle(total,Pout0);
|
||||||
}else if(content0.trim()==""){
|
}else if(content0.trim()==""){
|
||||||
$notify("‼️链接返回內容为空","⁉️请自行复制原始链接到浏览器, 确认链接是否失效",para.split("#")[0]);
|
$notify("‼️ "+"["+subtag+"]"+" 链接返回內容为空","⁉️请自行复制原始链接到浏览器, 确认链接是否失效",para.split("#")[0]);
|
||||||
flag=0;
|
flag=0;
|
||||||
$done({content : ""})
|
$done({content : ""})
|
||||||
}else if(type0=="unknown"){
|
}else if(type0=="unknown"){
|
||||||
$notify("😭 太难写了", "👻 本解析器 暂未支持/未能识别 该订阅格式", "☠️ 已尝试直接导入Quantumult X");
|
$notify("😭 太难写了 "+"["+subtag+"]", "👻 本解析器 暂未支持/未能识别 该订阅格式", "☠️ 已尝试直接导入Quantumult X");
|
||||||
$done({content : content0});
|
$done({content : content0});
|
||||||
flag=-1;
|
flag=-1;
|
||||||
}else { flag=0 }
|
}else { flag=0 }
|
||||||
@@ -127,20 +128,20 @@ if(flag==3){
|
|||||||
}else if(flag==1){
|
}else if(flag==1){
|
||||||
if(Pin0||Pout0){
|
if(Pin0||Pout0){
|
||||||
if(Pntf0!=0){
|
if(Pntf0!=0){
|
||||||
$notify("👥 开始转换节点订阅:","🐶 您已添加节点筛选参数,如下","👍️ 保留的关键字:"+Pin0+"\n👎️ 排除的关键字:"+Pout0);}
|
$notify("👥 "+"["+subtag+"]"+" 开始转换节点订阅","🐶 您已添加节点筛选参数,如下","👍️ 保留的关键字:"+Pin0+"\n👎️ 排除的关键字:"+Pout0);}
|
||||||
total=filter(total,Pin0,Pout0)
|
total=filter(total,Pin0,Pout0)
|
||||||
} else {
|
} else {
|
||||||
if(Pntf0!=0){
|
if(Pntf0!=0){
|
||||||
$notify("🐷 开始转换节点订阅","🐼️ 如需筛选节点请使用in/out及其他参数,可参考此示范:","👉 https://t.me/QuanXNews/110");}
|
$notify("🐷 "+"["+subtag+"]"+" 开始转换节点订阅","🐼️ 如需筛选节点请使用in/out及其他参数,可参考此示范:","👉 https://t.me/QuanXNews/110");}
|
||||||
}
|
}
|
||||||
if(Pemoji){
|
if(Pemoji){
|
||||||
if(Pntf0!=0){
|
if(Pntf0!=0){
|
||||||
$notify("🏳️🌈 开始更改旗帜 emoji","清除emoji请用参数 -1, 国行设备添加emoji请使用参数 2","你当前所用的参数为 emoji="+Pemoji)};
|
$notify("🏳️🌈 "+"["+subtag+"]"+" 开始更改旗帜 emoji","清除emoji请用参数 -1, 国行设备添加emoji请使用参数 2","你当前所用的参数为 emoji="+Pemoji)};
|
||||||
total=emoji_handle(total,Pemoji);
|
total=emoji_handle(total,Pemoji);
|
||||||
}
|
}
|
||||||
if(Prname){
|
if(Prname){
|
||||||
if(Pntf0!=0){
|
if(Pntf0!=0){
|
||||||
$notify("🏳️🌈 开始节点重命名","格式为 \"旧名字@新名字\"","你当前所用的参数为"+Prname);}
|
$notify("🏳️🌈 "+"["+subtag+"]"+" 开始节点重命名","格式为 \"旧名字@新名字\"","你当前所用的参数为"+Prname);}
|
||||||
var Prn=Prname;
|
var Prn=Prname;
|
||||||
total=total.map(Rename);
|
total=total.map(Rename);
|
||||||
}
|
}
|
||||||
@@ -149,7 +150,7 @@ if(flag==3){
|
|||||||
}
|
}
|
||||||
total=TagCheck_QX(total)
|
total=TagCheck_QX(total)
|
||||||
if(total.length==0){
|
if(total.length==0){
|
||||||
$notify("‼️无有效节点","⁉️请自行检查原始链接以及过滤参数",para)
|
$notify("‼️ "+"["+subtag+"]"+"无有效节点","⁉️请自行检查原始链接以及过滤参数",para)
|
||||||
};
|
};
|
||||||
//$notify("Final","List",total)
|
//$notify("Final","List",total)
|
||||||
total=total.join("\n");
|
total=total.join("\n");
|
||||||
@@ -188,7 +189,7 @@ function Type_Check(subs){
|
|||||||
} else if(RuleK.some(RuleCheck) && subs.indexOf(html)==-1){
|
} else if(RuleK.some(RuleCheck) && subs.indexOf(html)==-1){
|
||||||
type="Rule";
|
type="Rule";
|
||||||
} else if(subs.indexOf(html)!=-1){
|
} else if(subs.indexOf(html)!=-1){
|
||||||
$notify("‼️链接返回内容有误","⁉️请自行复制原始链接到浏览器, 确认链接是否失效",para.split("#")[0]);
|
$notify("‼️ "+"["+subtag+"]"+" 链接返回内容有误","⁉️ 请自行复制原始链接到浏览器, 确认链接是否失效",para.split("#")[0]);
|
||||||
type="web"
|
type="web"
|
||||||
}
|
}
|
||||||
return type
|
return type
|
||||||
@@ -223,7 +224,7 @@ function Rewrite_Filter(subs,Pout){
|
|||||||
hname="hostname="+nname.join(", ");
|
hname="hostname="+nname.join(", ");
|
||||||
//console.log(hname)
|
//console.log(hname)
|
||||||
nlist.push(hname)
|
nlist.push(hname)
|
||||||
if(dname.length>0){$notify("🤖 您添加的 [rewrite] 过滤关键词为:","🚫 "+Pout0.join(", "),"☠️ 主机名 hostname 中已为您删除以下"+dname.length+"个匹配项:"+"\n"+dname.join(",") )}
|
if(dname.length>0){$notify("🤖 您为 "+"["+subtag+"]"+" 添加的 [rewrite] 过滤关键词为:","🚫 "+Pout0.join(", "),"☠️ 主机名 hostname 中已为您删除以下"+dname.length+"个匹配项:"+"\n"+dname.join(",") )}
|
||||||
} // if cc -hostname
|
} // if cc -hostname
|
||||||
else{
|
else{
|
||||||
drewrite.push(cc);
|
drewrite.push(cc);
|
||||||
@@ -234,7 +235,7 @@ function Rewrite_Filter(subs,Pout){
|
|||||||
} //else
|
} //else
|
||||||
}
|
}
|
||||||
}//cnt for
|
}//cnt for
|
||||||
if(drewrite.length>0){$notify("🤖 您添加的 [rewrite] 过滤关键词为:","🚫 "+Pout0.join(", "),"☠️ 复写 rewrite 中已为您禁用以下"+drewrite.length+"个匹配项:"+"\n"+drewrite.join("\n") )};
|
if(drewrite.length>0){$notify("🤖 您为 "+"["+subtag+"]"+" 添加的 [rewrite] 过滤关键词为:","🚫 "+Pout0.join(", "),"☠️ 复写 rewrite 中已为您禁用以下"+drewrite.length+"个匹配项:"+"\n"+drewrite.join("\n") )};
|
||||||
return nlist
|
return nlist
|
||||||
}else { // Pout if
|
}else { // Pout if
|
||||||
//$notify("no filter at all")
|
//$notify("no filter at all")
|
||||||
@@ -262,8 +263,8 @@ function Rule_Handle(subs,Pout){
|
|||||||
}
|
}
|
||||||
}//for cnt
|
}//for cnt
|
||||||
var no=dlist.length
|
var no=dlist.length
|
||||||
if(dlist.length>0){$notify("🤖 您添加的分流 [filter] 过滤关键词为:","🚫 "+out,"☠️ 已为您删除以下 "+no+"条匹配规则:"+"\n"+dlist.join("\n"))
|
if(dlist.length>0){$notify("🤖 您为 "+"["+subtag+"]"+" 添加的分流 [filter] 过滤关键词为:","🚫 "+out,"☠️ 已为您删除以下 "+no+"条匹配规则:"+"\n"+dlist.join("\n"))
|
||||||
}else{$notify("🤖 您添加的[filter]过滤关键词为:","🚫 "+out,"☠️ 没有发现任何匹配项")}
|
}else{$notify("🤖 您为 "+"["+subtag+"]"+" 添加的[filter]过滤关键词为:","🚫 "+out,"☠️ 没有发现任何匹配项")}
|
||||||
return nlist
|
return nlist
|
||||||
} else{return cnt.map(Rule_Policy)}//if Pout
|
} else{return cnt.map(Rule_Policy)}//if Pout
|
||||||
}
|
}
|
||||||
@@ -288,7 +289,7 @@ function Rule_Policy(content){ //增加、替换 policy
|
|||||||
ply0 = Ppolicy!="Shawn"? Ppolicy:cnt[2]
|
ply0 = Ppolicy!="Shawn"? Ppolicy:cnt[2]
|
||||||
nn=cnt[0]+", "+cnt[1]+", "+ply0+", "+cnt[3]
|
nn=cnt[0]+", "+cnt[1]+", "+ply0+", "+cnt[3]
|
||||||
}else if(!RuleK.some(RuleCheck)&& content){
|
}else if(!RuleK.some(RuleCheck)&& content){
|
||||||
$notify("未能解析其中部分规则",content);
|
$notify("未能解析"+"["+subtag+"]"+"其中部分规则:",content);
|
||||||
return ""
|
return ""
|
||||||
}else{return ""}
|
}else{return ""}
|
||||||
if(cnt[0].indexOf("URL-REGEX")!=-1 || cnt[0].indexOf("PROCESS")!=-1){
|
if(cnt[0].indexOf("URL-REGEX")!=-1 || cnt[0].indexOf("PROCESS")!=-1){
|
||||||
@@ -377,7 +378,7 @@ function TagCheck_QX(content){
|
|||||||
var nm=item.split("tag")[1].split("=")[1].trim() // get tag
|
var nm=item.split("tag")[1].split("=")[1].trim() // get tag
|
||||||
if(nm==""){
|
if(nm==""){
|
||||||
nm=" ["+item.split("=")[0]+"] "+item.split("=")[1].split(",")[0].split(":")[0]
|
nm=" ["+item.split("=")[0]+"] "+item.split("=")[1].split(",")[0].split(":")[0]
|
||||||
$notify("⚠️ 订阅内出现空节点名:", "✅ 已自动将节点“类型+IP”作为节点名","✅ "+nm)
|
$notify("⚠️ "+"["+subtag+"]"+" 订阅内出现空节点名 ", "✅ 已自动将节点“类型+IP”作为节点名","✅ "+nm)
|
||||||
item=item.split("tag")[0]+"tag="+nm
|
item=item.split("tag")[0]+"tag="+nm
|
||||||
}
|
}
|
||||||
var ni=0
|
var ni=0
|
||||||
@@ -387,7 +388,7 @@ function TagCheck_QX(content){
|
|||||||
item=item.split("tag")[0]+"tag="+nm
|
item=item.split("tag")[0]+"tag="+nm
|
||||||
}
|
}
|
||||||
if(ni!=0){
|
if(ni!=0){
|
||||||
$notify("⚠️ 订阅内出现重复节点名:", "⚠️ "+ nm.split("")[0], "✅ 已自动添加“”符号作为区分:"+nm)
|
$notify("⚠️ "+"["+subtag+"]"+" 订阅内出现重复节点名 ", "⚠️ "+ nm.split("")[0], "✅ 已自动添加“”符号作为区分:"+nm)
|
||||||
}
|
}
|
||||||
nmlist.push(nm)
|
nmlist.push(nm)
|
||||||
ni=0
|
ni=0
|
||||||
@@ -678,7 +679,7 @@ function emoji_handle(servers,Pemoji){
|
|||||||
var oname=ser0[i].split("tag=")[1];
|
var oname=ser0[i].split("tag=")[1];
|
||||||
var hd=ser0[i].split("tag=")[0];
|
var hd=ser0[i].split("tag=")[0];
|
||||||
var nname=emoji_del(oname);
|
var nname=emoji_del(oname);
|
||||||
var Lmoji={"🏳️🌈": ["流量","时间","应急","过期","Bandwidth","expire"],"🇦🇨": ["AC"],"🇦🇹": ["奥地利","维也纳"],"🇦🇺": ["AU","Australia","Sydney","澳大利亚","澳洲","墨尔本","悉尼"],"🇧🇪": ["BE","比利时"],"🇧🇬️": ["保加利亚"],"🇧🇷": ["BR","Brazil","巴西","圣保罗"],"🇨🇦": ["Canada","Waterloo","加拿大","蒙特利尔","温哥华","楓葉","枫叶","滑铁卢","多伦多"],"🇨🇭": ["瑞士","苏黎世"],"🇩🇪": ["DE","German","GERMAN","德国","德國","法兰克福"],"🇩🇰": ["丹麦"],"🇪🇸": ["ES"],"🇪🇺": ["EU"],"🇫🇮": ["Finland","芬兰","赫尔辛基"],"🇫🇷": ["FR","France","法国","法國","巴黎"],"🇬🇧": ["UK","GB","England","United Kingdom","英国","伦敦","英"],"🇲🇴": ["MO","Macao","澳门","CTM"],"🇭🇺":["匈牙利","Hungary"],"🇭🇰": ["HK","Hongkong","Hong Kong","香港","深港","沪港","呼港","HKT","HKBN","HGC","WTT","CMI","穗港","京港","港"],"🇮🇩": ["Indonesia","印尼","印度尼西亚","雅加达"],"🇮🇪": ["Ireland","爱尔兰","都柏林"],"🇮🇳": ["India","印度","孟买","Mumbai"],"🇮🇹": ["Italy","Nachash","意大利","米兰","義大利"],"🇯🇵": ["JP","Japan","日本","东京","大阪","埼玉","沪日","穗日","川日","中日","泉日","杭日","深日","辽日"],"🇰🇵": ["KP","朝鲜"],"🇰🇷": ["KR","Korea","KOR","韩国","首尔","韩","韓"],"🇲🇽️": ["MEX","MX","墨西哥"],"🇲🇾": ["MY","Malaysia","马来西亚","吉隆坡"],"🇳🇱": ["NL","Netherlands","荷兰","荷蘭","尼德蘭","阿姆斯特丹"],"🇵🇭": ["PH","Philippines","菲律宾"],"🇷🇴": ["RO","罗马尼亚"],"🇷🇺": ["RU","Russia","俄罗斯","俄羅斯","伯力","莫斯科","圣彼得堡","西伯利亚","新西伯利亚","京俄","杭俄"],"🇸🇦": ["沙特","迪拜"],"🇸🇪": ["SE","Sweden"],"🇸🇬": ["SG","Singapore","新加坡","狮城","沪新","京新","泉新","穗新","深新","杭新"],"🇹🇭": ["TH","Thailand","泰国","泰國","曼谷"],"🇹🇷": ["TR","Turkey","土耳其","伊斯坦布尔"],"🇹🇼": ["TW","Taiwan","台湾","台北","台中","新北","彰化","CHT","台","HINET"],"🇺🇸": ["US","USA","America","United States","美国","美","京美","波特兰","达拉斯","俄勒冈","凤凰城","费利蒙","硅谷","矽谷","拉斯维加斯","洛杉矶","圣何塞","圣克拉拉","西雅图","芝加哥","沪美","哥伦布","纽约"],"🇻🇳": ["VN","越南","胡志明市"],"🇿🇦":["South Africa","南非"],"🇦🇪":["United Arab Emirates","阿联酋"],"🇦🇷": ["AR","阿根廷"],"🇨🇳": ["CN","China","回国","中国","江苏","北京","上海","广州","深圳","杭州","徐州","青岛","宁波","镇江","back"]}
|
var Lmoji={"🏳️🌈": ["流量","时间","应急","过期","Bandwidth","expire"],"🇦🇨": ["AC"],"🇦🇹": ["奥地利","维也纳"],"🇦🇺": ["AU","Australia","Sydney","澳大利亚","澳洲","墨尔本","悉尼"],"🇧🇪": ["BE","比利时"],"🇧🇬️": ["保加利亚","Bulgaria"],"🇧🇷": ["BR","Brazil","巴西","圣保罗"],"🇨🇦": ["Canada","Waterloo","加拿大","蒙特利尔","温哥华","楓葉","枫叶","滑铁卢","多伦多"],"🇨🇭": ["瑞士","苏黎世"],"🇩🇪": ["DE","German","GERMAN","德国","德國","法兰克福"],"🇩🇰": ["丹麦"],"🇪🇸": ["ES"],"🇪🇺": ["EU"],"🇫🇮": ["Finland","芬兰","赫尔辛基"],"🇫🇷": ["FR","France","法国","法國","巴黎"],"🇬🇧": ["UK","GB","England","United Kingdom","英国","伦敦","英"],"🇲🇴": ["MO","Macao","澳门","CTM"],"🇭🇺":["匈牙利","Hungary"],"🇭🇰": ["HK","Hongkong","Hong Kong","香港","深港","沪港","呼港","HKT","HKBN","HGC","WTT","CMI","穗港","京港","港"],"🇮🇩": ["Indonesia","印尼","印度尼西亚","雅加达"],"🇮🇪": ["Ireland","爱尔兰","都柏林"],"🇮🇳": ["India","印度","孟买","Mumbai"],"🇮🇹": ["Italy","Nachash","意大利","米兰","義大利"],"🇯🇵": ["JP","Japan","日本","东京","大阪","埼玉","沪日","穗日","川日","中日","泉日","杭日","深日","辽日"],"🇰🇵": ["KP","朝鲜"],"🇰🇷": ["KR","Korea","KOR","韩国","首尔","韩","韓"],"🇲🇽️": ["MEX","MX","墨西哥"],"🇲🇾": ["MY","Malaysia","马来西亚","吉隆坡"],"🇳🇱": ["NL","Netherlands","荷兰","荷蘭","尼德蘭","阿姆斯特丹"],"🇵🇭": ["PH","Philippines","菲律宾"],"🇷🇴": ["RO","罗马尼亚"],"🇷🇺": ["RU","Russia","俄罗斯","俄羅斯","伯力","莫斯科","圣彼得堡","西伯利亚","新西伯利亚","京俄","杭俄"],"🇸🇦": ["沙特","迪拜"],"🇸🇪": ["SE","Sweden"],"🇸🇬": ["SG","Singapore","新加坡","狮城","沪新","京新","泉新","穗新","深新","杭新"],"🇹🇭": ["TH","Thailand","泰国","泰國","曼谷"],"🇹🇷": ["TR","Turkey","土耳其","伊斯坦布尔"],"🇹🇼": ["TW","Taiwan","台湾","台北","台中","新北","彰化","CHT","台","HINET"],"🇺🇸": ["US","USA","America","United States","美国","美","京美","波特兰","达拉斯","俄勒冈","凤凰城","费利蒙","硅谷","矽谷","拉斯维加斯","洛杉矶","圣何塞","圣克拉拉","西雅图","芝加哥","沪美","哥伦布","纽约"],"🇻🇳": ["VN","越南","胡志明市"],"🇿🇦":["South Africa","南非"],"🇦🇪":["United Arab Emirates","阿联酋"],"🇦🇷": ["AR","阿根廷"],"🇨🇳": ["CN","China","回国","中国","江苏","北京","上海","广州","深圳","杭州","徐州","青岛","宁波","镇江","back"]}
|
||||||
if(Pemoji==1) {
|
if(Pemoji==1) {
|
||||||
str1 = JSON.stringify(Lmoji)
|
str1 = JSON.stringify(Lmoji)
|
||||||
aa=JSON.parse(str1)
|
aa=JSON.parse(str1)
|
||||||
|
|||||||
Reference in New Issue
Block a user