模板:JSChartData

来自LoveLive Wiki
跳到导航 跳到搜索

var tgtype;(function(tgtype){tgtype[tgtype["none"]=-1]="none";tgtype[tgtype["all"]=0]="all";tgtype[tgtype["muse"]=100]="muse";tgtype[tgtype["aqours"]=200]="aqours";tgtype[tgtype["niji"]=300]="niji";tgtype[tgtype["liella"]=400]="liella";tgtype[tgtype["muse_solo"]=190]="muse_solo";tgtype[tgtype["muse_other"]=199]="muse_other";tgtype[tgtype["aqours_solo"]=290]="aqours_solo";tgtype[tgtype["aqours_other"]=299]="aqours_other";tgtype[tgtype["niji_solo"]=390]="niji_solo";tgtype[tgtype["niji_other"]=399]="niji_other";tgtype[tgtype["liella_solo"]=490]="liella_solo";tgtype[tgtype["liella_other"]=499]="liella_other";tgtype[tgtype["pts"]=101]="pts";tgtype[tgtype["llw"]=102]="llw";tgtype[tgtype["bibi"]=103]="bibi";tgtype[tgtype["cyr"]=201]="cyr";tgtype[tgtype["aaa"]=202]="aaa";tgtype[tgtype["gk"]=203]="gk";tgtype[tgtype["dd"]=301]="dd";tgtype[tgtype["azn"]=302]="azn";tgtype[tgtype["q4"]=303]="q4";tgtype[tgtype["r3b"]=304]="r3b";tgtype[tgtype["arise"]=104]="arise";tgtype[tgtype["ss"]=204]="ss";tgtype[tgtype["sas"]=205]="sas";tgtype[tgtype["snp"]=401]="snp";tgtype[tgtype["yn"]=402]="yn";tgtype[tgtype["catchu"]=403]="catchu";tgtype[tgtype["kld"]=404]="kld";tgtype[tgtype["sync"]=405]="sync";tgtype[tgtype["dummy_500"]=500]="dummy_500";tgtype[tgtype["dummy_501"]=501]="dummy_501";tgtype[tgtype["dummy_502"]=502]="dummy_502";tgtype[tgtype["dummy_503"]=503]="dummy_503";tgtype[tgtype["dummy_600"]=600]="dummy_600";tgtype[tgtype["dummy_9999"]=9999]="dummy_9999";tgtype[tgtype["smile_1919810"]=1919811]="smile_1919810";tgtype[tgtype["pure_1919810"]=1919812]="pure_1919810";tgtype[tgtype["cool_1919810"]=1919813]="cool_1919810"})(tgtype||(tgtype={}));var note_action;(function(note_action){note_action[note_action["normal"]=0]="normal";note_action[note_action["press"]=1]="press";note_action[note_action["swing_left"]=2]="swing_left";note_action[note_action["swing_right"]=3]="swing_right";note_action[note_action["end"]=4]="end";note_action[note_action["press_end"]=5]="press_end";note_action[note_action["swing_end"]=6]="swing_end"})(note_action||(note_action={}));var sktype;(function(sktype){sktype[sktype["score_bad"]=1]="score_bad";sktype[sktype["judge"]=2]="judge";sktype[sktype["heal"]=3]="heal";sktype[sktype["score_perfect"]=4]="score_perfect"})(sktype||(sktype={}));var trtype;(function(trtype){trtype[trtype["note"]=1]="note";trtype[trtype["combo"]=2]="combo";trtype[trtype["perfect"]=3]="perfect";trtype[trtype["time"]=4]="time"})(trtype||(trtype={}));var parse_state;(function(parse_state){parse_state[parse_state["delay"]=0]="delay";parse_state[parse_state["pos"]=1]="pos"})(parse_state||(parse_state={}));class sif2_live_data{static _get_livedata_text(){const r=$('#chart-data-raw');if(r.length===0)alert("sif2_live_data找不到可读取的谱面数据!");return r.html()}static chart_data_init(){const text=this._get_livedata_text();text.split('\n').forEach((line)=>{if(!line||line.length===0)return;const parts=line.split("|");const part1_str=parts[0].split("%");const[live_id,attribute,masterGroupId,release_date,bpm,jacket_image_id]=part1_str.map(v=>parseInt(v));const jacket_image=`jacket_${jacket_image_id}`;const[,,,,,,name,kana]=part1_str;if(!parts[1])console.warn(line);const part2=parts[1].split(",").map(v=>parseInt(v));const charts_by_difficulty=new Map();for(let i=0;i<part2.length;i+=3){const[difficulty,difficulty_rating,max_combo]=part2.slice(i,i+3);const difficulty_id=live_id*10+difficulty;charts_by_difficulty.set(difficulty,{live_id,difficulty_id,difficulty_rating,max_combo,raw_text:parts[2+i/3],})};this.live_info.set(live_id,{live_id,attribute,masterGroupId,release_date,bpm,jacket_image,name,kana,charts_by_difficulty,})})}static chart_info_get(difficulty_id){if(this._chart_info.has(difficulty_id))return this._chart_info.get(difficulty_id);const{name,live_id,attribute,charts_by_difficulty}=this.live_info.get(Math.floor(difficulty_id/10));const{max_combo,raw_text}=charts_by_difficulty.get(difficulty_id%10);const reg_lt=new RegExp(String.fromCharCode(38,108,116,59),"g"),reg_gt=new RegExp(String.fromCharCode(38,103,116,59),"g");const note_list=this._chart_note_parse(raw_text.replace(reg_lt,'<').replace(reg_gt,'>'));if(max_combo!==note_list[note_list.length-1].combo)throw new Error(`live_id ${live_id}${name}difficulty ${difficulty_id%10}combo mismatch`);const weights_detail=this._chart_weights(note_list);const weights_total=weights_detail.map((m,i)=>{let total_weight=0;for(const[weight,count]of m){total_weight+=weight*count}return total_weight});this._chart_info.set(difficulty_id,{attribute,max_combo,note_list,weights_detail,weights_total,skill_coverage_time:new Map(),skill_coverage_note:new Map(),skill_coverage_combo:new Map(),skill_coverage_perfect:new Map()});return this._chart_info.get(difficulty_id)}static chart_skill_coverage_get(difficulty_id,skill){const chart=this.chart_info_get(difficulty_id);const{tr,tm}=skill;const key=tr+100000*tm;switch(skill.trigger){case trtype.note:if(chart.skill_coverage_note.has(key))return chart.skill_coverage_note.get(key);break;case trtype.combo:if(chart.skill_coverage_combo.has(key))return chart.skill_coverage_combo.get(key);break;case trtype.perfect:if(chart.skill_coverage_perfect.has(key))return chart.skill_coverage_perfect.get(key);break;case trtype.time:if(chart.skill_coverage_time.has(key))return chart.skill_coverage_time.get(key);break;default:throw new Error();}const note_list=chart.note_list;if(skill.type===sktype.score_perfect||skill.type===sktype.score_bad||skill.type===sktype.judge){if(tr<1)throw new Error();const stacks_by_judge=[];const stacks_by_pos=[,[],[],[],[],[],[],[],[],[]];function stacks_by_pos_assign(){note_list.forEach(({judge,pos})=>{stacks_by_pos[pos][stacks_by_judge[judge]||0]=(stacks_by_pos[pos][stacks_by_judge[judge]||0]||0)+1})}let j,time_limit;if(skill.trigger===trtype.note){for(let i=tr-1;i<note_list.length;i+=tr){j=i+1;time_limit=note_list[i].call_time+tm;while(note_list[j]&&note_list[j].call_time<=time_limit){stacks_by_judge[j]=(stacks_by_judge[j]||0)+1;j+=1}}stacks_by_pos_assign();chart.skill_coverage_note.set(key,stacks_by_pos)}else if(skill.trigger===trtype.combo){if(tr<3)throw new Error();for(let i=tr-1;i<note_list.length;i+=tr){while(note_list[i]&&note_list[i].combo%tr!==0)i+=1;if(i===note_list.length)break;j=i+1;time_limit=note_list[i].call_time+tm;while(note_list[j]&&note_list[j].call_time<=time_limit){stacks_by_judge[j]=(stacks_by_judge[j]||0)+1;j+=1}}stacks_by_pos_assign();chart.skill_coverage_combo.set(key,stacks_by_pos)}else if(skill.trigger===trtype.perfect){for(let i=tr-1;i<note_list.length;i+=tr){while(note_list[i]&&Math.floor(note_list[i].judge*background_settings.perfect_rate/100)%tr!==0)i+=1;if(i===note_list.length)break;j=i+1;time_limit=note_list[i].call_time+tm;while(note_list[j]&&note_list[j].call_time<=time_limit){stacks_by_judge[j]=(stacks_by_judge[j]||0)+1;j+=1}}stacks_by_pos_assign();chart.skill_coverage_perfect.set(key,stacks_by_pos)}else if(skill.trigger===trtype.time){let time_start=tr;for(let i=0;i<note_list.length;){while(note_list[i]&&note_list[i].call_time<=time_start)i+=1;if(i===note_list.length)break;j=i+1;time_limit=time_start+tm;while(note_list[j]&&note_list[j].call_time<=time_limit){stacks_by_judge[j]=(stacks_by_judge[j]||0)+1;j+=1}time_start+=tr}stacks_by_pos_assign();chart.skill_coverage_perfect.set(key,stacks_by_pos)}return stacks_by_pos}else return null}static _chart_note_parse(encoded_str){const note_list=[];const parts=encoded_str.split("~");const multipler=10**(parseInt(parts[0])-3);const delay_map=new Map();parts.slice(1,-1).map((str)=>{delay_map.set(str.codePointAt(0),this._from52(str.slice(1)))});let time_msec=0;const chart_str=parts[parts.length-1];let c=null,a=null;let state=parse_state.delay;let delay=[],pos=null,action=note_action.normal,star=false;let judge=0,combo=0;for(let i=0;i<=chart_str.length;i+=1){c=chart_str[i];a=(c||'$').charCodeAt(0);if(state===parse_state.delay){if(a>=65&&a<91||a>=97&&a<123){delay.push(a);continue}else if(a>=49&&a<58){pos=a-48;state=parse_state.pos;continue}else throw new Error(`position ${i}character ${c}at state delay`)}else if(state===parse_state.pos){if(a>=65&&a<91||a>=97&&a<123||a===36){time_msec+=((delay.length===1&&(delay_map.get(delay[0])/multipler))||(this._from52_code(delay)/multipler));judge+=1;if(action!==note_action.press)combo+=1;note_list.push({judge,combo,call_time:time_msec,pos,action,star,});star=false;action=note_action.normal;delay=[a];state=parse_state.delay;continue}else if(a>=49&&a<58){time_msec+=((delay.length===1&&(delay_map.get(delay[0])/multipler))||(this._from52_code(delay)/multipler));judge+=1;if(action!==note_action.press)combo+=1;note_list.push({judge,combo,call_time:time_msec,pos,action,star,});star=false;delay=[];pos=a-48;action=note_action.normal;continue}else if(a===60){action=note_action.swing_left;continue}else if(a===61){action=note_action.press;continue}else if(a===62){action=note_action.swing_right;continue}else if(a===35){action=note_action.end;continue}else if(a===42){star=true;continue}else throw new Error(`position ${i}character ${c}at state pos`)}}return note_list}static _chart_weights(note_list){let pressed_pos_1=0,pressed_pos_2=0,combo_weight_ratio=1;let last_call_time=0,last_pos=0,last_type_weight_ratio=1,type_weight_ratio=1;const weights=[];const combo_changes=[51,101,201,401,601,800];let combo_changes_index=0;for(let i=1;i<=9;i+=1)weights[i]=new Map();for(let i=0;i<note_list.length;i+=1){const{judge,combo,call_time,pos,action,star}=note_list[i];if(combo_changes[combo_changes_index]===combo){combo_weight_ratio=this._combo_multipler(combo);combo_changes_index+=1}if(action===note_action.press){if(!pressed_pos_1)pressed_pos_1=pos;else if(!pressed_pos_2)pressed_pos_2=pos;else throw new Error(`more than 2 press at the same time`);type_weight_ratio=1.25}else if(action===note_action.end){if(pressed_pos_1===pos){pressed_pos_1=0;type_weight_ratio=1.25}else if(pressed_pos_2===pos){pressed_pos_2=0;type_weight_ratio=1.25}else type_weight_ratio=0.5}else if(action===note_action.swing_left||action===note_action.swing_right)type_weight_ratio=0.5;else type_weight_ratio=1;this._map_accumulate(weights[pos],combo_weight_ratio*type_weight_ratio);if(combo_changes[combo_changes_index]===combo+1){last_type_weight_ratio=type_weight_ratio;last_pos=pos;last_call_time=call_time}else if(combo_changes[combo_changes_index-1]===combo){if(call_time-last_call_time<45&&last_type_weight_ratio!==type_weight_ratio){const diff=call_time-last_call_time<15?0.5:0.3;this._map_accumulate(weights[last_pos],this._combo_multipler(combo-1)*last_type_weight_ratio,-diff);this._map_accumulate(weights[last_pos],combo_weight_ratio*last_type_weight_ratio,diff);this._map_accumulate(weights[pos],this._combo_multipler(combo-1)*type_weight_ratio,diff);this._map_accumulate(weights[pos],combo_weight_ratio*type_weight_ratio,-diff)}}}return weights}static _map_accumulate(map,key,diff=1){map.has(key)&&map.set(key,map.get(key)+diff)||map.set(key,diff)}static _combo_multipler(combo){if(combo<=50)return 1;else if(combo<=100)return 1.1;else if(combo<=200)return 1.15;else if(combo<=400)return 1.2;else if(combo<=600)return 1.25;else if(combo<800)return 1.3;else return 1.35}static _from52(base52){return Array.from(base52).reduce((prev,curr)=>{const ascii=curr.charCodeAt(0);return prev*52+ascii-(ascii>96?97:39)},0)}static _from52_code(base52){return base52.reduce((prev,curr)=>{return prev*52+curr-(curr>96?97:39)},0)}static chart_difficulty_rating_selection(rating_min,rating_max){const selected_difficulties=[];for(const[,{charts_by_difficulty}]of this.live_info){for(const[,{difficulty_id,difficulty_rating}]of charts_by_difficulty){if(difficulty_rating<rating_min||difficulty_rating>rating_max)continue;selected_difficulties.push(difficulty_id)}}return selected_difficulties}}sif2_live_data.live_info=new Map();sif2_live_data._chart_info=new Map();sif2_live_data.chart_data_init();const ROMAJI_KANA_ARR=["xtsu/っ/ッ","shi/し/シ","chi/ち/チ","tsu/つ/ツ","ka/か/カ","ki/き/キ","ku/く/ク","ke/け/ケ","ko/こ/コ","ga/が/ガ","gi/ぎ/ギ","gu/ぐ/グ","ge/げ/ゲ","go/ご/ゴ","sa/さ/サ","su/す/ス","se/せ/セ","so/そ/ソ","za/ざ/ザ","ji/じ/ジ","zu/ず/ズ","ze/ぜ/ゼ","zo/ぞ/ゾ","ta/た/タ","te/て/テ","to/と/ト","da/だ/ダ","dzi/ぢ/ヂ","dzu/づ/ヅ","de/で/デ","do/ど/ド","na/な/ナ","ni/に/ニ","nu/ぬ/ヌ","ne/ね/ネ","no/の/ノ","ha/は/ハ","hi/ひ/ヒ","fu/ふ/フ","he/へ/ヘ","ho/ほ/ホ","pa/ぱ/パ","pi/ぴ/ピ","pu/ぷ/プ","pe/ぺ/ペ","po/ぽ/ポ","ba/ば/バ","bi/び/ビ","bu/ぶ/ブ","be/べ/ベ","bo/ぼ/ボ","ma/ま/マ","mi/み/ミ","mu/む/ム","me/め/メ","mo/も/モ","ra/ら/ラ","ri/り/リ","ru/る/ル","re/れ/レ","ro/ろ/ロ","wa/わ/ワ","wi/ゐ/ヰ","we/ゑ/ヱ","wo/を/ヲ","va/ゔぁ/ヴァ","vi/ゔぃ/ヴィ","ve/ゔぇ/ヴェ","vo/ゔぉ/ヴォ","vu/ゔ/ヴ","n/ん/ン","xa/ぁ/ァ","xi/ぃ/ィ","xu/ぅ/ゥ","xe/ぇ/ェ","xo/ぉ/ォ","xya/ゃ/ャ","xyu/ゅ/ュ","xyo/ょ/ョ","ya/や/ヤ","yu/ゆ/ユ","yo/よ/ヨ","a/あ/ア","i/い/イ","u/う/ウ","e/え/エ","o/お/オ","h/っ/ッ","-/ー/ー"];function replaceAll(iiyo,koiyo,ikuiku){return iiyo.replace(new RegExp(koiyo,"gm"),ikuiku)}const KANA_REPLACE_BEFORE_ARR=["([んン])([あいうえおやゆよアイウエオヤユヨ])=$1'$2"];const KANA_REPLACE_AFTER_ARR=["fux([aieo])=f$1","ixy=y","(s|c)hy=$1h","dzu=zu","(dz|j)y?=j","xtsu([rtpsdfghjkbm])=$1$1","xtsuc=tc","([aiueo])-=$1$1"];function kanaToRomaji(kana){KANA_REPLACE_BEFORE_ARR.forEach((val)=>{var arr=val.split("=");kana=replaceAll(kana,arr[0],arr[1])});ROMAJI_KANA_ARR.forEach((val)=>{var arr=val.split("/");kana=replaceAll(kana,arr[1]+"|"+arr[2],arr[0])});KANA_REPLACE_AFTER_ARR.forEach((val)=>{var arr=val.split("=");kana=replaceAll(kana,arr[0],arr[1])});return kana}const ROMAJI_REPLACE_BEFORE_ARR=["(f)([aieo])=$1ux$2","(sh|j|ch|dz)y?([auo])=$1ixy$2","([kgnhpbmr])y=$1ixy","tch=xtsuch","([rtpsdfghjkbm])\\\\1=xtsu$1"];function romajiToKana(romaji){romaji=romaji.toLowerCase();ROMAJI_REPLACE_BEFORE_ARR.forEach((val)=>{var arr=val.split("=");romaji=replaceAll(romaji,arr[0],arr[1])});ROMAJI_KANA_ARR.forEach((val)=>{var arr=val.split("/");romaji=replaceAll(romaji,arr[0],arr[1])});ROMAJI_REPLACE_BEFORE_ARR.forEach((val)=>{var arr=val.split("=");romaji=replaceAll(romaji,arr[0],arr[1])});ROMAJI_KANA_ARR.forEach((val)=>{var arr=val.split("/");romaji=replaceAll(romaji,arr[0],arr[2])});return replaceAll(romaji,"\\'","")}class sif2_live_data_filter{static by_romaji(finder){finder=finder.replace(/g/g,"k");finder=finder.replace(/b|p/g,"h");finder=finder.replace(/d/g,"t");finder=finder.replace(/j/g,"sh");let kana=romajiToKana(finder);kana=kana.replace(/っ/g,"つ");kana=kana.replace(/ゃ/g,"や");kana=kana.replace(/ょ/g,"よ");kana=kana.replace(/ゅ/g,"ゆ");kana=kana.replace(/ぅ/g,"う");let regexp;try{regexp=new RegExp(kanaToRomaji(kana).replace(/ /g,".*"))}catch(e){return[]}this._by_romaji_try_init();const res=[];this._by_romaji_map.forEach((tar_kana,id)=>{if(!tar_kana.match(regexp))return;res.push(id)});return res}static _by_romaji_try_init(){if(this._by_romaji_map.size!==0)return;sif2_live_data.live_info.forEach((live,id)=>{let kana=live.kana;kana=kana.replace(/ッ/g,"ツ");kana=kana.replace(/ャ/g,"ヤ");kana=kana.replace(/ョ/g,"ヨ");kana=kana.replace(/ュ/g,"ユ");kana=kana.replace(/ゥ/g,"ウ");this._by_romaji_map.set(id,kanaToRomaji(kana))})}static by_fuzzy_pure_name(finder){const finders=finder.split(" ");const fuzzy_finders=finders.map(this._fuzzy_pure_name);this._by_name_try_init();let fpreg;try{fpreg=new RegExp(fuzzy_finders.join(".*"))}catch(e){return[]}const res=[];this._by_fuzzy_pure_names_map.forEach((tar_fuzzy_pures,id)=>{for(const tar_fuzzy_pure of tar_fuzzy_pures){if(!(tar_fuzzy_pure.match(fpreg)))continue;res.push(id);return}});return res}static by_fuzzy_name(finder){const fuzzy_finder=this._fuzzy_name(finder);this._by_name_try_init();const res=[];this._by_fuzzy_name_map.forEach((tar_fuzzy,id)=>{if(tar_fuzzy.indexOf(fuzzy_finder)===-1)return;res.push(id)});return res}static _fuzzy_name(str){str=str.replace(/ /g,"");str=str.replace(/!/g,"!");str=str.replace(/×/g,"x");str=str.replace(/?/g,"?");str=str.replace(/(/g,"(");str=str.replace(/)/g,")");str=str.replace(/・/g,"·");str=str.replace(/&/g,"&");str=str.replace(/~|〜/g,"~");str=str.replace(/,/g,",");str=str.replace(/。/g,".");str=str.replace(/*/g,"*");str=str.replace(/+/g,"+");str=str.replace(/=/g,"=");str=str.replace(/‘|’/g,"'");str=str.replace(/“|”/g,"\"");str=str.replace(/1/g,"1");str=str.replace(/2/g,"2");str=str.replace(/3/g,"3");str=str.replace(/‼/g,"!!");str=str.toLowerCase();return str}static _fuzzy_pure_name(str){str=str.replace(/ /g,"");str=str.replace(/!|!|‼/g,"");str=str.replace(/×/g,"");str=str.replace(/?|\?/g,"");str=str.replace(/(|\(/g,"");str=str.replace(/)|\)/g,"");str=str.replace(/・|·/g,"");str=str.replace(/&|\&/g,"");str=str.replace(/~|〜|\~/g,"");str=str.replace(/,|,/g,"");str=str.replace(/。|\./g,"");str=str.replace(/*|\*/g,"");str=str.replace(/+|\+/g,"");str=str.replace(/=|\=/g,"");str=str.replace(/‘|’|'/g,"");str=str.replace(/“|”|"/g,"");str=str.replace(/1/g,"1");str=str.replace(/2/g,"2");str=str.replace(/3/g,"3");str=str.replace(/、/g,"");str=str.replace(/☆/g,"");str=str.replace(/♡/g,"");str=str.replace(/\-/g,"");str=str.replace(/←/g,"");str=str.replace(/→/g,"");str=str.replace(/:/g,"");str=str.toLowerCase();return str}static _by_name_try_init(){if(this._by_fuzzy_name_map.size!==0)return;if(this._by_fuzzy_pure_names_map.size!==0)return;sif2_live_data.live_info.forEach((live,id)=>{this._by_fuzzy_name_map.set(id,this._fuzzy_name(live.name));this._by_fuzzy_pure_names_map.set(id,[this._fuzzy_pure_name(live.name)])});try{this._alias_name_init_add()}catch(e){console.warn("alias name source read-in failed:",e)}}static _get_songle_text(){const r=$('#song-alias-name');if(r.length===0)alert("sif2_live_data_filter找不到可读取的歌曲别名数据!");return r.html()}static _alias_name_init_add(){try{const alias_name=JSON.parse(this._get_songle_text());alias_name.forEach(([name,aliases])=>{const[id]=sif2_live_data_filter.by_fuzzy_pure_name(name);if(!id){console.warn(`alias name index ${name}does not exist!`);return}aliases.forEach((v)=>{this._by_fuzzy_pure_names_map.get(id).push(v)})})}catch(e){alert("sif2_live_data_filter解析歌曲别名数据过程中出现错误,可能是数据的格式不正确")}}static by_combo(finder){if(isNaN(parseInt(finder.replace(/[x\*]/g,"0"))))return[];this._by_combo_try_init();const res=[];const regexp=new RegExp(finder.replace(/[x\*]/g,"[0-9]"));this._by_combo_map.forEach((tar_combos,id)=>{for(const tar_combo of tar_combos){if(!tar_combo.match(regexp))continue;res.push(id);return}});return res}static _by_combo_try_init(){if(this._by_combo_map.size>0)return;sif2_live_data.live_info.forEach((live,id)=>{this._by_combo_map.set(id,[live.charts_by_difficulty.has(1)&&live.charts_by_difficulty.get(1).max_combo.toString()||"",live.charts_by_difficulty.has(2)&&live.charts_by_difficulty.get(2).max_combo.toString()||"",live.charts_by_difficulty.has(3)&&live.charts_by_difficulty.get(3).max_combo.toString()||"",live.charts_by_difficulty.has(4)&&live.charts_by_difficulty.get(4).max_combo.toString()||"",])})}static comprehensive_string_find(finder){const by_romaji=this.by_romaji(finder);const by_fuzzy_pure_name=this.by_fuzzy_pure_name(finder);const by_fuzzy_name=this.by_fuzzy_name(finder);const by_combo=this.by_combo(finder);const result=by_romaji.concat(by_fuzzy_pure_name,by_fuzzy_name,by_combo);if(result.length>500)return null;else return result}}sif2_live_data_filter._by_romaji_map=new Map();sif2_live_data_filter._by_fuzzy_name_map=new Map();sif2_live_data_filter._by_fuzzy_pure_names_map=new Map();sif2_live_data_filter._by_combo_map=new Map();

class sif2_live_data, class sif2_live_data_filter