241 lines
5.8 KiB
Plaintext
Raw Normal View History

2024-11-14 14:53:37 +08:00
import win.ui;
/*DSG{{*/
mainForm = win.form(text="gamelist";right=999;bottom=599)
mainForm.add(
btnExclude={cls="button";text="排除";left=873;top=438;right=985;bottom=467;ah=1;aw=1;z=12};
btnFilter={cls="button";text="筛选";left=759;top=438;right=871;bottom=467;ah=1;aw=1;z=2};
btnSearchDown={cls="button";text="向下搜索";left=874;top=530;right=985;bottom=559;ah=1;aw=1;z=11};
btnSearchUp={cls="button";text="向上搜索";left=759;top=532;right=870;bottom=561;ah=1;aw=1;z=10};
cbb_guojia={cls="combobox";left=877;top=401;right=985;bottom=427;ah=1;aw=1;edge=1;items={};mode="dropdown";z=8};
cbb_leixing={cls="combobox";left=759;top=402;right=867;bottom=428;ah=1;aw=1;edge=1;items={};mode="dropdown";z=7};
edDesp={cls="richedit";text="RichEdit";left=507;top=122;right=970;bottom=371;ah=1;autohscroll=false;aw=1;edge=1;multiline=1;vscroll=1;z=5};
edOther={cls="richedit";text="RichEdit";left=512;top=404;right=750;bottom=569;ah=1;autohscroll=false;aw=1;edge=1;multiline=1;vscroll=1;z=6};
edSearch={cls="edit";left=755;top=487;right=981;bottom=526;ah=1;aw=1;edge=1;multiline=1;z=9};
edUrl={cls="richedit";text="RichEdit";left=506;top=21;right=969;bottom=96;ah=1;autohscroll=false;aw=1;edge=1;multiline=1;vscroll=1;z=3};
edit={cls="edit";text="Edit";left=822;top=190;right=823;bottom=191;edge=1;z=4};
listbox={cls="listbox";left=7;top=10;right=478;bottom=577;ah=1;aw=1;edge=1;items={};vscroll=1;z=1}
)
/*}}*/
import web.json;
import console;
import string.list;
import win;
guojia = {}
newdata_filted = {}
table_guojia_add = function(data){
if(data == null){
return null;
}
if(type(data) == type.table){
data = data[1];
}
var notguojia = string.find(data,"\/");
if(notguojia){
return null;
}
var newstr = string.replace( data,"[【】]","");
var ret = table.find(guojia,newstr);
if(ret == null){
table.push(guojia,newstr)
}
return newstr;
}
//table.find(
//console.dumpJson(datalist)
data_pro = function(){
jsonstr = string.load(".\output.json")
datalist = web.json.parse(jsonstr,,);
datacount = 1;
newdatalist = {};
for(i=2;#datalist;1){
if(#datalist[i] < 2){
console.dumpJson(datalist[i])
continue;
}
if(string.len(datalist[i][1]) < 2){
//console.dumpJson(datalist[i])
continue;
}
newdatalist[datacount] = {};
var namestr = datalist[i][1];
var pattern = "%<【><】>"
var replaceText = "";
var replacecount = "3";
var strReplaceResult = string.replace( namestr,pattern,replaceText,replacecount);
var displist = string.matches(datalist[i][1], pattern)
table_guojia_add(displist[1])
//console.dumpJson(displist);
var shortdisp = "";//string.join(displist);
for(k,v in displist){
shortdisp = shortdisp ++ v[1] ++'\n';
}
newdatalist[datacount][1] = datalist[i][1];//name
newdatalist[datacount][2] = datalist[i][2];//url
newdatalist[datacount][3] = datalist[i][3];//disp
newdatalist[datacount][4] = shortdisp;
newdatalist[datacount][5] = strReplaceResult;
var test = mainForm.listbox.add(strReplaceResult);
if(test != datacount){
console.log("数据错误");
console.log(datacount);
break;
}
datacount++;
}
newdata_filted = newdatalist;
}
mainForm.listbox.oncommand = function(id,event){
if( event == 0x1/*_LBN_SELCHANGE*/ ){
var sel = mainForm.listbox.selIndex;
updateselect(sel);
}
}
mainForm.btnFilter.oncommand = function(id,event){
filter_data();
}
if(io.exist(".\service_account.json") == false){
win.msgbox("没有授权文件");
mainForm.close();
}
if(io.exist(".\output.json") == false){
import process.popen
var prcs = process.popen.cmd('python getData.py');
//prcs.wa
//prcs.wait(20000);
import win;
win.msgbox(prcs.readAll())
}
if(io.exist(".\output.json") == true){
data_pro();
}
else {
win.msgbox("数据获取失败");
mainForm.close();
}
for(k,v in guojia){
mainForm.cbb_guojia.add(v);
}
mainForm.cbb_guojia.selIndex = 1;
filter_data = function(){
newdata_filted = {};
var newcount = 1;
for(i=1;#newdatalist;1){
if(string.indexOf(newdatalist[i][1],mainForm.cbb_guojia.selText)){
}
else {
continue;
}
newdata_filted[newcount] = newdatalist[i];
newcount++;
}
mainForm.listbox.clear();
for(i=1;#newdata_filted;1){
mainForm.listbox.add(newdata_filted[i][5]);
}
updateselect(1);
}
exclude_data = function(){
newdata_filted = {};
var newcount = 1;
for(i=1;#newdatalist;1){
if(string.indexOf(newdatalist[i][1],mainForm.cbb_guojia.selText)){
continue;
}
else {
}
newdata_filted[newcount] = newdatalist[i];
newcount++;
}
mainForm.listbox.clear();
for(i=1;#newdata_filted;1){
mainForm.listbox.add(newdata_filted[i][5]);
}
updateselect(1);
}
updateselect = function(index){
if(index > #newdata_filted){
return ;
}
mainForm.listbox.selIndex = index;
mainForm.edUrl.text = newdata_filted[index][2];
mainForm.edDesp.text = newdata_filted[index][5] ++ '\n' ++ newdata_filted[index][3];
mainForm.edOther.text = newdata_filted[index][4];
}
mainForm.btnSearchUp.oncommand = function(id,event){
var searchtext = mainForm.edSearch.text
var nowsel = mainForm.listbox.selIndex;
if(nowsel == null){
nowsel = #newdata_filted+1;
}
if(nowsel < 1 || nowsel >#newdata_filted){
nowsel = #newdata_filted+1;
}
nowsel--;
for(i=nowsel;1;-1){
if(string.indexOf(newdata_filted[i][5],searchtext)){
updateselect(i);
return ;
}
}
win.msgbox("已到顶","未找到",,,1000);
}
mainForm.btnExclude.oncommand = function(id,event){
exclude_data();
}
mainForm.btnSearchDown.oncommand = function(id,event){
var searchtext = mainForm.edSearch.text
var nowsel = mainForm.listbox.selIndex;
if(nowsel == null){
nowsel = 0;
}
if(nowsel < 1 || nowsel >#newdata_filted){
nowsel = 0;
}
nowsel++;
for(i=nowsel;#newdata_filted;1){
if(string.indexOf(newdata_filted[i][5],searchtext)){
updateselect(i);
return ;
}
}
win.msgbox("已到底","未找到",,,1000);
}
mainForm.show();
return win.loopMessage();