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 if(newdatalist[datacount][3] == null){ newdatalist[datacount][3] = "无介绍"; } 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 ; } console.dumpJson(newdata_filted[index]) 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();