-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbackground.js
More file actions
78 lines (65 loc) · 14.3 KB
/
background.js
File metadata and controls
78 lines (65 loc) · 14.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
const allmon = new Set([
"bulbasaur",
"ivysaur","venusaur","mega venusaur","charmander","charmeleon","charizard","mega charizard y","mega charizard x","squirtle","wartortle","blastoise","mega blastoise","caterpie","metapod","butterfree","weedle","kakuna","beedrill","mega beedrill","pidgey","pidgeotto","pidgeot","mega pidgeot","rattata","alolan rattata","raticate","alolan raticate","spearow","fearow","ekans","arbok","pikachu","raichu","alolan raichu","sandshrew","alolan sandshrew","sandslash","alolan sandslash","nidoran♀","nidorina","nidoqueen","nidoran♂","nidorino","nidoking","clefairy","clefable","vulpix","alolan vulpix","ninetales","alolan ninetales","jigglypuff","wigglytuff","zubat","golbat","oddish","gloom","vileplume","paras","parasect","venonat","venomoth","diglett","alolan diglett","dugtrio","alolan dugtrio","meowth","alolan meowth","galarian meowth","persian","alolan persian","psyduck","golduck","mankey","primeape","growlithe","arcanine","poliwag","poliwhirl","poliwrath","abra","kadabra","alakazam","mega alakazam","machop","machoke","machamp","bellsprout","weepinbell","victreebel","tentacool","tentacruel","geodude","alolan geodude","graveler","alolan graveler","golem","alolan golem","ponyta","galarian ponyta","rapidash","galarian rapidash","slowpoke","galarian slowpoke","slowbro","mega slowbro","galarian slowbro","magnemite","magneton","farfetch'd","galarian farfetch'd","doduo","dodrio","seel","dewgong","grimer","alolan grimer","muk","alolan muk","shellder","cloyster","gastly","haunter","gengar","mega gengar","onix","drowzee","hypno","krabby","kingler","voltorb","electrode","exeggcute","exeggutor","alolan exeggutor","cubone","marowak","alolan marowak","hitmonlee","hitmonchan","lickitung","koffing","weezing","galarian weezing","rhyhorn","rhydon","chansey","tangela","kangaskhan","mega kangaskhan","horsea","seadra","goldeen","seaking","staryu","starmie","mr. mime","galarian mr. mime","scyther","jynx","electabuzz","magmar","pinsir","mega pinsir","tauros","magikarp","gyarados","mega gyarados","lapras","ditto","eevee","vaporeon","jolteon","flareon","porygon","omanyte","omastar","kabuto","kabutops","aerodactyl","mega aerodactyl","snorlax","articuno","galarian articuno","zapdos","galarian zapdos","moltres","galarian moltres","dratini","dragonair","dragonite","mewtwo","mega mewtwo y","mega mewtwo x","mew","chikorita","bayleef","meganium","cyndaquil","quilava","typhlosion","totodile","croconaw","feraligatr","sentret","furret","hoothoot","noctowl","ledyba","ledian","spinarak","ariados","crobat","chinchou","lanturn","pichu","cleffa","igglybuff","togepi","togetic","natu","xatu","mareep","flaaffy","ampharos","mega ampharos","bellossom","marill","azumarill","sudowoodo","politoed","hoppip","skiploom","jumpluff","aipom","sunkern","sunflora","yanma","wooper","quagsire","espeon","umbreon","murkrow","slowking","galarian slowking","misdreavus","unown","wobbuffet","girafarig","pineco","forretress","dunsparce","gligar","steelix","mega steelix","snubbull","granbull","qwilfish","scizor","mega scizor","shuckle","heracross","mega heracross","sneasel","teddiursa","ursaring","slugma","magcargo","swinub","piloswine","corsola","galarian corsola","remoraid","octillery","delibird","mantine","skarmory","houndour","houndoom","mega houndoom","kingdra","phanpy","donphan","porygon2","stantler","smeargle","tyrogue","hitmontop","smoochum","elekid","magby","miltank","blissey","raikou","entei","suicune","larvitar","pupitar","tyranitar","mega tyranitar","lugia","ho-oh","celebi","treecko","grovyle","sceptile","mega sceptile","torchic","combusken","blaziken","mega blaziken","mudkip","marshtomp","swampert","mega swampert","poochyena","mightyena","zigzagoon","galarian zigzagoon","linoone","galarian linoone","wurmple","silcoon","beautifly","cascoon","dustox","lotad","lombre","ludicolo","seedot","nuzleaf","shiftry","taillow","swellow","wingull","pelipper","ralts","kirlia","gardevoir","mega gardevoir","surskit","masquerain","shroomish","breloom","slakoth","vigoroth","slaking","nincada","ninjask","shedinja","whismur","loudred","exploud","makuhita","hariyama","azurill","nosepass","skitty","delcatty","sableye","mega sableye","mawile","mega mawile","aron","lairon","aggron","mega aggron","meditite","medicham","mega medicham","electrike","manectric","mega manectric","plusle","minun","volbeat","illumise","roselia","gulpin","swalot","carvanha","sharpedo","mega sharpedo","wailmer","wailord","numel","camerupt","mega camerupt","torkoal","spoink","grumpig","spinda","trapinch","vibrava","flygon","cacnea","cacturne","swablu","altaria","mega altaria","zangoose","seviper","lunatone","solrock","barboach","whiscash","corphish","crawdaunt","baltoy","claydol","lileep","cradily","anorith","armaldo","feebas","milotic","castform","kecleon","shuppet","banette","mega banette","duskull","dusclops","tropius","chimecho","absol","mega absol","wynaut","snorunt","glalie","mega glalie","spheal","sealeo","walrein","clamperl","huntail","gorebyss","relicanth","luvdisc","bagon","shelgon","salamence","mega salamence","beldum","metang","metagross","mega metagross","regirock","regice","registeel","latias","mega latias","latios","mega latios","kyogre","primal kyogre","groudon","primal groudon","rayquaza","mega rayquaza","jirachi","deoxys normal form","deoxys defense form","deoxys attack form","deoxys speed form","turtwig","grotle","torterra","chimchar","monferno","infernape","piplup","prinplup","empoleon","starly","staravia","staraptor","bidoof","bibarel","kricketot","kricketune","shinx","luxio","luxray","budew","roserade","cranidos","rampardos","shieldon","bastiodon","burmy","wormadam plant cloak","wormadam sandy cloak","wormadam trash cloak","mothim","combee","vespiquen","pachirisu","buizel","floatzel","cherubi","cherrim","shellos","gastrodon","ambipom","drifloon","drifblim","buneary","lopunny","mega lopunny","mismagius","honchkrow","glameow","purugly","chingling","stunky","skuntank","bronzor","bronzong","bonsly","mime jr.","happiny","chatot","spiritomb","gible","gabite","garchomp","mega garchomp","munchlax","riolu","lucario","mega lucario","hippopotas","hippowdon","skorupi","drapion","croagunk","toxicroak","carnivine","finneon","lumineon","mantyke","snover","abomasnow","mega abomasnow","weavile","magnezone","lickilicky","rhyperior","tangrowth","electivire","magmortar","togekiss","yanmega","leafeon","glaceon","gliscor","mamoswine","porygon-z","gallade","mega gallade","probopass","dusknoir","froslass","rotom","rotom-wash","rotom-heat","rotom-mow","rotom-frost","rotom-fan","uxie","mesprit","azelf","dialga","palkia","heatran","regigigas","giratina","giratina-origin","cresselia","phione","manaphy","darkrai","shaymin","shaymin-sky","arceus","victini","snivy","servine","serperior","tepig","pignite","emboar","oshawott","dewott","samurott","patrat","watchog","lillipup","herdier","stoutland","purrloin","liepard","pansage","simisage","pansear","simisear","panpour","simipour","munna","musharna","pidove","tranquill","unfezant","blitzle","zebstrika","roggenrola","boldore","gigalith","woobat","swoobat","drilbur","excadrill","audino","mega audino","timburr","gurdurr","conkeldurr","tympole","palpitoad","seismitoad","throh","sawk","sewaddle","swadloon","leavanny","venipede","whirlipede","scolipede","cottonee","whimsicott","petilil","lilligant","basculin","sandile","krokorok","krookodile","darumaka","galarian darumaka","darmanitan","darmanitan zen-mode","galarian darmanitan","galarian darmanitan zen-mode","maractus","dwebble","crustle","scraggy","scrafty","sigilyph","yamask","galarian yamask","cofagrigus","tirtouga","carracosta","archen","archeops","trubbish","garbodor","zorua","zoroark","minccino","cinccino","gothita","gothorita","gothitelle","solosis","duosion","reuniclus","ducklett","swanna","vanillite","vanillish","vanilluxe","deerling","sawsbuck","emolga","karrablast","escavalier","foongus","amoonguss","frillish","jellicent","alomomola","joltik","galvantula","ferroseed","ferrothorn","klink","klang","klinklang","tynamo","eelektrik","eelektross","elgyem","beheeyem","litwick","lampent","chandelure","axew","fraxure","haxorus","cubchoo","beartic","cryogonal","shelmet","accelgor","stunfisk","galarian stunfisk","mienfoo","mienshao","druddigon","golett","golurk","pawniard","bisharp","bouffalant","rufflet","braviary","vullaby","mandibuzz","heatmor","durant","deino","zweilous","hydreigon","larvesta","volcarona","cobalion","terrakion","virizion","tornadus","tornadus-therian","thundurus","thundurus-therian","reshiram","zekrom","landorus","landorus-therian","kyurem","white kyurem","black kyurem","keldeo","meloetta","meloetta-pirouette","genesect","chespin","quilladin","chesnaught","fennekin","braixen","delphox","froakie","frogadier","greninja","ash-greninja","bunnelby","diggersby","fletchling","fletchinder","talonflame","scatterbug","spewpa","vivillon","litleo","pyroar","flabébé","floette","florges","skiddo","gogoat","pancham","pangoro","furfrou","espurr","meowstic","honedge","doublade","aegislash shield form","aegislash blade form","spritzee","aromatisse","swirlix","slurpuff","inkay","malamar","binacle","barbaracle","skrelp","dragalge","clauncher","clawitzer","helioptile","heliolisk","tyrunt","tyrantrum","amaura","aurorus","sylveon","hawlucha","dedenne","carbink","goomy","sliggoo","goodra","klefki","phantump","trevenant","small size pumpkaboo","average size pumpkaboo","large size pumpkaboo","super size pumpkaboo","small size gourgeist","average size gourgeist","large size gourgeist","super size gourgeist","bergmite","avalugg","noibat","noivern","xerneas","yveltal","zygarde","zygarde 10%","zygarde complete","mega diancie","diancie","hoopa","hoopa unbound","volcanion","rowlet","dartrix","decidueye","litten","torracat","incineroar","popplio","brionne","primarina","pikipek","trumbeak","toucannon","yungoos","gumshoos","grubbin","charjabug","vikavolt","crabrawler","crabominable","oricorio baile style","oricorio pom-pom style","oricorio pa'u style","oricorio sensu style","cutiefly","ribombee","rockruff","lycanroc","lycanroc midnight","lycanroc dusk","wishiwashi","wishiwashi school","mareanie","toxapex","mudbray","mudsdale","dewpider","araquanid","fomantis","lurantis","morelull","shiinotic","salandit","salazzle","stufful","bewear","bounsweet","steenee","tsareena","comfey","oranguru","passimian","wimpod","golisopod","sandygast","palossand","pyukumuku","type: null","silvally","minior meteor form","minior core form","komala","turtonator","togedemaru","mimikyu","bruxish","drampa","dhelmise","jangmo-o","hakamo-o","kommo-o","tapu koko","tapu lele","tapu bulu","tapu fini","cosmog","cosmoem","solgaleo","lunala","nihilego","buzzwole","pheromosa","xurkitree","celesteela","kartana","guzzlord","necrozma","dusk mane necrozma","dawn wings necrozma","ultra necrozma","magearna","marshadow","poipole","naganadel","stakataka","blacephalon","zeraora","meltan","melmetal","grookey","thwackey","rillaboom","scorbunny","raboot","cinderace","sobble","drizzile","inteleon","skwovet","greedent","rookidee","corvisquire","corviknight","blipbug","dottler","orbeetle","nickit","thievul","gossifleur","eldegoss","wooloo","dubwool","chewtle","drednaw","yamper","boltund","rolycoly","carkol","coalossal","applin","flapple","appletun","silicobra","sandaconda","cramorant","arrokuda","barraskewda","toxel","toxtricity","sizzlipede","centiskorch","clobbopus","grapploct","sinistea","polteageist","hatenna","hattrem","hatterene","impidimp","morgrem","grimmsnarl","obstagoon","perrserker","cursola","sirfetch'd","mr. rime","runerigus","milcery","alcremie","falinks","pincurchin","snom","frosmoth","stonjourner","eiscue","eiscue noice face","indeedee","morpeko","cufant","copperajah","dracozolt","arctozolt","dracovish","arctovish","duraludon","dreepy","drakloak","dragapult","zacian","zacian crowned sword","zamazenta","zamazenta crowned shield","eternatus","kubfu","urshifu rapid strike style","urshifu single strike style","zarude","regieleki","regidrago","glastrier","spectrier","calyrex","calyrex ice rider",
"calyrex shadow rider"
]);
let cachedMatches = [];
let lastPageText = "";
let lastPageURL = "";
// Set up periodic alarms to keep service worker active
chrome.runtime.onInstalled.addListener(() => {
chrome.alarms.create("keepAlive", { periodInMinutes: 4.9 }); // Maximum allowed time is 5 minutes
});
chrome.alarms.onAlarm.addListener((alarm) => {
if (alarm.name === "keepAlive") {
console.log("Service worker kept alive");
}
});
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.action === "extractText") {
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
if (!tabs[0]?.id) return;
const currentURL = tabs[0].url;
// Check if navigation occurred (URL changed)
if (currentURL !== lastPageURL) {
cachedMatches = [];
lastPageText = "";
lastPageURL = currentURL;
}
// If cached results exist, return them
if (cachedMatches.length > 0) {
sendResponse({ matches: cachedMatches });
return;
}
// Extract text from the page
chrome.scripting.executeScript({
target: { tabId: tabs[0].id },
files: ["textGrabber.js"]
}, () => {
chrome.tabs.sendMessage(tabs[0].id, { action: "getText" }, (response) => {
if (!response?.text) {
sendResponse({ matches: [] });
return;
}
// Compare with last cached page text to avoid unnecessary processing
if (response.text !== lastPageText) {
lastPageText = response.text;
const pageWords = new Set(response.text.toLowerCase().match(/\b[a-z]+\b/g) || []);
cachedMatches = [...allmon].filter(fruit => pageWords.has(fruit));
}
sendResponse({ matches: cachedMatches });
});
});
});
return true; // Keep async sendResponse active
} else if (message.action === "getGen") {
chrome.storage.local.get(["selectedGen"]).then((result) => {
console.log("Value is " + result.selectedGen);
sendResponse(result.selectedGen);
});
return true; // Keep async sendResponse active
} else if (message.action === "saveGen") {
chrome.storage.local.set({ selectedGen: message.gen });
return true;
}
});