Species search improvements
This commit is contained in:
		
							parent
							
								
									543028043a
								
							
						
					
					
						commit
						7cc5afc8c8
					
				@ -207,9 +207,10 @@ export const likelyHuman: SpeciesMap = {
 | 
				
			|||||||
        'sister', 'brother', 'mother', 'father', 'fuckpig', 'hero', 'she-stud', 'college', 'cutie',
 | 
					        'sister', 'brother', 'mother', 'father', 'fuckpig', 'hero', 'she-stud', 'college', 'cutie',
 | 
				
			||||||
        'bimboi', 'homo', 'streamer', '.*human', 'femboy', 'nord', 'norse', 'norseman', 'man', 'whitebo[yi]', '.*bo[yi].*', '.*girl.*',
 | 
					        'bimboi', 'homo', 'streamer', '.*human', 'femboy', 'nord', 'norse', 'norseman', 'man', 'whitebo[yi]', '.*bo[yi].*', '.*girl.*',
 | 
				
			||||||
        'french', 'whore', 'slutty', 'adult', 'otaku', 'cumdump', 'thug', 'magus', 'goth', 'servant', '.*caucasian', 'cosplayer',
 | 
					        'french', 'whore', 'slutty', 'adult', 'otaku', 'cumdump', 'thug', 'magus', 'goth', 'servant', '.*caucasian', 'cosplayer',
 | 
				
			||||||
        'sapien[s]?', 'american', 'korean', 'chinese', 'english', 'british', 'irish', 'brat', 'guy',
 | 
					        'sapien[s]?', 'american', 'korean', 'chinese', 'english', 'british', 'irish', 'brat', 'guy', 'blonde?', 'redhead', 'brunet(te)?',
 | 
				
			||||||
        'paladin', 'knight', 'psychic',
 | 
					        'paladin', 'knight', 'psychic',
 | 
				
			||||||
        'male', 'female', 'shemale',
 | 
					        'male', 'female', 'shemale',
 | 
				
			||||||
 | 
					        'dothraki', 'amazon', 'african[ -]?american', 'amazonian', 'latina', 'latino',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        'aasimar', 'astartes', 'saiyan', 'echani', 'cathar', 'shikaisen', 'hyur', 'mid[ -]?lander', 'high[ -]?lander', 'arkanian',
 | 
					        'aasimar', 'astartes', 'saiyan', 'echani', 'cathar', 'shikaisen', 'hyur', 'mid[ -]?lander', 'high[ -]?lander', 'arkanian',
 | 
				
			||||||
        'exalted', 'leftherian'
 | 
					        'exalted', 'leftherian'
 | 
				
			||||||
@ -217,68 +218,79 @@ export const likelyHuman: SpeciesMap = {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// red panda / akai pandamimi
 | 
					// red panda / akai pandamimi
 | 
				
			||||||
 | 
					// pangolin
 | 
				
			||||||
// echidna
 | 
					// echidna
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function gen(s: string): string {
 | 
				
			||||||
 | 
					    return `${s}[ -]?(kin|folk|woman|man|g[iu]rl|bo[yi][e]?)?`;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const speciesMapping: SpeciesMap = {
 | 
					export const speciesMapping: SpeciesMap = {
 | 
				
			||||||
    [Species.Anthro]: ['anthro', 'anthropomorphic', 'kemono', 'kemomimi', 'kemonomimi', 'furry', 'erune', 'vastaya[n]?', 'rakshasa'],
 | 
					    [Species.Anthro]: ['anthro', 'anthropomorphic', 'kemono', 'kemomimi', 'kemonomimi', 'furry', 'erune', 'vastayan?', 'rakshasa',
 | 
				
			||||||
    [Species.Human]: ['human', 'homo sapiens', 'human.*', 'homo[ -]?sapiens?', '𝖧𝗎𝗆𝖺𝗇', 'woman', 'dothraki', 'amazon', 'african[ -]?american',
 | 
					        gen('(beast|anthro|furry)')
 | 
				
			||||||
        'homo[ -]?sapians?', 'h[o]+man', 'h[o]+min', 'humaine?', 'amazonian', 'latina', 'latino',
 | 
					 | 
				
			||||||
        '𝐻𝓊𝓂𝒶𝓃', '𝑯𝒖𝒎𝒂𝒏.?', '𝕙𝕦𝕞𝕒𝕟', '𝐇𝐔𝐌𝐀𝐍', '𝙷𝚞𝚖𝚊𝚗',
 | 
					 | 
				
			||||||
        'nephilim', 'angel', 'nephalem', 'archangel'
 | 
					 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Elf]: ['drow', 'draenei', 'dunmer', 'blutelf[e]?', 'draenai', 'elf.*', 'drow.*', 'e l f', 'e-l-f', 'sin\'?dorei',
 | 
					    [Species.Human]: ['human', 'homo sapiens', 'human.*', 'homo[ -]?sapi[ea]ns?', 'woman', 'h[o]+m[ai]n', 'humaine?',
 | 
				
			||||||
        'kal\'?dorei', 'elves', 'ᴇʟғ', 'elven', 'elfe', 'nachtelfe?', 'elvish', 'ren\'?dorei', 'quel\'?dorei', 'hal[bf][ -]elf',
 | 
					        'meat[ -]?popsicle',
 | 
				
			||||||
        '.*elf', 'waldelfe', 'shal\'?dorei', 'san\'?layn', 's[yi]lvan'
 | 
					        // where should these go?
 | 
				
			||||||
 | 
					        'angel', 'neph[ai]l[ei]m', 'arch[ -]?angel'
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [Species.Elf]: ['drow', 'draenei', 'dunmer', 'draenai', 'blutelf[e]?', 'elf.*', 'drow.*', 'e[ -]l[ -]f', 'sin\'?dorei',
 | 
				
			||||||
 | 
					        'kal\'?dorei', 'elves', 'elven', '.*elfe?', 'elvish', 'ren\'?dorei', 'quel\'?dorei', 'hal[bf][ -]elf',
 | 
				
			||||||
 | 
					        'shal\'?dorei', 'san\'?layn', 's[yi]lvan', gen('(elf|drow)')
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Canine]: ['dog', 'dingo', 'coyote', 'jackal', 'husky', 'canine', 'wolf.*', 'doberman[n]?', 'hound', 'akita', 'pit ?bull',
 | 
					    [Species.Canine]: ['dog', 'dingo', 'coyote', 'jackal', 'husky', 'canine', 'wolf.*', 'doberman[n]?', 'hound', 'akita', 'pit ?bull',
 | 
				
			||||||
        'terrier', 'bull[ -]?terrier', 'australian[ -]?shepherd', 'australian[ -]?shep[h]?ard', 'german[ -]?shep[h]?erd',
 | 
					        'terrier', 'bull[ -]?terrier', 'australian[ -]?shepherd', 'australian[ -]?shep[h]?ard', 'german[ -]?shep[h]?([ea]rd)?',
 | 
				
			||||||
        'german[ -]?shep[h]?ard', 'malinois', 'woof', 'labrador', 'collie', 'canis', 'lupus', 'canid', 'chihuahua', 'poodle', 'chinchilla',
 | 
					        'malinois', 'woof', 'labrador', 'collie', 'canis', 'lupus', 'canid', 'chihuahua', 'poodle', 'chinchilla',
 | 
				
			||||||
        'chow[ -]?chow', 'corgi', 'anubis', 'beagle', 'german[ -]?shep', '.*wolf', 'direwolf', 'pointer', 'dhole',
 | 
					        'chow[ -]?chow', 'corgi', 'anubis', 'beagle', '.*wolf', 'direwolf', 'pointer', 'dhole',
 | 
				
			||||||
        'anubian', 'dalmatian', 'dalmation', 'inumimi', 'lupine', 'malamute', 'mastiff', 'mutt', 'rottweill?er', 'shih[ -]?tzu', 'worgen',
 | 
					        'anubian', 'dalmatian', 'dalmation', 'inumimi', 'lupine', 'malamute', 'mastiff', 'mutt', 'rottweill?er', 'shih[ -]?tzu', 'worgen',
 | 
				
			||||||
        'vallhund', 'puppy', 'okami', 'great[ -]?dane', 'golden[ -]?(retriever|lab|labrador)', 'cocker[ -]?spaniel', 'samoyed', 'awoo',
 | 
					        'vallhund', 'puppy', 'oo?kami', 'great[ -]?dane', 'golden[ -]?(retriever|lab|labrador)', 'cocker[ -]?spaniel', 'samoyed', 'awoo',
 | 
				
			||||||
        'borzoi', 'spaniel', 'ookamimimi', 'jakkarumimi', 'chinchiramimi', 'woffo', 'wuff', 'wolfdog', 'setter', 'papillon',
 | 
					        'borzoi', 'spaniel', 'ookamimimi', 'jakkarumimi', 'chinchiramimi', 'woffo', 'wuff', 'wolfdog', 'setter', 'papillon',
 | 
				
			||||||
        '🐶', '🐺', '🐕', '🐩', 'aussie[ -]?doodle', 'shiba', 'inu', 'veil[ -]?hound', 'timber[ -]?wolf', 'hell[ -]?hound', 'hound',
 | 
					        '🐶', '🐺', '🐕', '🐩', 'aussie[ -]?doodle', 'shiba', 'inu', 'veil[ -]?hound', 'timber[ -]?wolf', 'hell[ -]?hound', 'hound',
 | 
				
			||||||
        'kangal', 'behemoth',
 | 
					        'kangal', 'behemoth', 'mongrel', 'fenrir', 'v[aá]na[r]?gand[r]?', 'crux', 'st.?[ -]?bernard',
 | 
				
			||||||
        'wolfess', 'latrans', 'dog[ -]?(girl|bo[yi][e]?)', 'wolf[ -]?(girl|bo[yi][e]?)', 'doggie', 'doggy', 'canis', 'fenrir', 'v[aá]na[r]?gand[r]?',
 | 
					        'wolfess', 'latrans', gen('(dog|wolf)'), 'chien', 'loup', 'sch[aä]ferhund',
 | 
				
			||||||
        'doggo', 'barghest', 'barguest', 'crux', 'ᴡᴏʟғ', '𝗪𝗼𝗹𝗳.?', '𝙳𝚘𝚐', 'dire[ -]?hound'],
 | 
					        'doggie', 'doggy', 'canis', 'doggo', 'barghest', 'barguest', 'dire[ -]?hound'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Equine]: ['horse', 'zebra', 'pony', 'donkey', 'stallion', 'mare', 'filly', 'equine', 'shire', 'mule', 'zeeb', 'pon[yi][ -]?bo[yi]',
 | 
					    [Species.Equine]: ['horse', 'zebra', 'donkey', 'stallion', 'mare', 'filly', 'equine',
 | 
				
			||||||
        'unicorn', 'clydesdale', 'shire', 'appaloosa', 'friesian', 'draft', 'draught', 'alicorn', 'horsie', 'hoss', 'pegasus', 'colt',
 | 
					        'unicorn.*', 'clydesdale', 'shire', 'appaloosa', 'friesian', 'draft', 'draught', 'alicorn', 'hoss', 'peg[au]sus', 'colt',
 | 
				
			||||||
        'filly', 'neigh', 'dullahan', 'tikbalang', 'gypsy[ -]?vanner', 'ardenne[r]?', 'ardennais[e]?', 'pony[ -]?(girl|bo[yi][e]?)',
 | 
					        'filly', 'neigh', 'dullahan', 'tikbalang', 'gypsy[ -]?vanner', 'ardenne[r]?', 'ardennais[e]?', 'mule', 'zeeb', 'shire',
 | 
				
			||||||
        'cream[ -]?draft', 'belgian[ -]?draft', 'saddle[ -]?bred', 'warm[ -]?blood', 'marsh tacky', 'fox[ -]?trotter', 'morab',
 | 
					        'cream[ -]?draft', 'belgian[ -]?draft', 'saddle[ -]?bred', 'warm[ -]?blood', 'marsh tacky', 'fox[ -]?trotter', 'morab',
 | 
				
			||||||
        'saddle[ -]?horse', 'walkaloosa', 'welara', 'tiger[ -]?horse', 'horsekin', 'pone', 'tinker[ -]?hengste?',
 | 
					        'saddle[ -]?horse', 'walkaloosa', 'welara', 'tiger[ -]?horse', 'tinker[ -]?hengste?', 'jackass',
 | 
				
			||||||
        'horse[ -]?(girl|bo[yi][e]?)', 'umamimi', 'shimaumamimi', 'thestral', 'pegusus',
 | 
					        gen('(horsi?ey?|hoss|zeeb(ra)?|donkey|pon[yie])'), 'umamimi', 'shimaumamimi', 'thestral', 'foal', 'palomino',
 | 
				
			||||||
        'mustang', 'horse.*', '.*horse', '.*pony', 'equus', 'kelpie', 'kuranta', 'zonkey',
 | 
					        'mustang', 'horse.*', '.*horse', '.*pony', 'equus', 'kelpie', 'kuranta', 'zonkey', 'whorse',
 | 
				
			||||||
        '🐴', '🦓', '🐎'],
 | 
					        '🐴', '🦓', '🐎'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Feline]: ['cat', 'jaguar', 'cheetah', 'lynx', 'tiger.*', 'puma', 'lion.*', 'kitten', 'cat[ -]?(girl|bo[yi][e]?)', 'neko',
 | 
					    [Species.Feline]: ['cat', 'jaguar', 'cheetah', 'lynx', 'tiger.*', 'puma', 'lion.*', 'kitten',
 | 
				
			||||||
        'neko[ -]?mimi', 'lioness', 'panther', 'panthress', 'tigress', 'feline', 'leopard', 'cougar', 'kitty', 'migo\'?te',
 | 
					        'neko[ -]?mimi', 'lioness', 'panther', 'panthe?ress', 'tige?ress', 'feline', 'leopard(ess)?', 'cougar', 'kitty', 'migo\'?te',
 | 
				
			||||||
        'miqo\'?te', 'ocelot', 'saber[ -]?tooth', 'tabby', 'serval', 'russian[ -]?blue', 'thunderian', 'meow', 'lombax',
 | 
					        'miqo\'?te', 'ocelot', 'saber[ -]?tooth', 'tabby', 'serval', 'russian[ -]?blue', 'thunderian', 'meow', 'lombax',
 | 
				
			||||||
        '(exotic|domestic|british|oriental|american|shaded|chinchilla)[ -]?shorthair', 'burmese', 'maine[ -]?coon', 'korat', 'ragdoll',
 | 
					        '(exotic|domestic|british|oriental|american|shaded|chinchilla)[ -]?shorthair', 'burmese', 'maine[ -]?coon', 'korat', 'ragdoll',
 | 
				
			||||||
        'ocicat', 'chartreux', 'german[ -]?rex', 'turkish[ -]?van', 'ragamuffin', 'norwegian[ -]?forest[ -]?(cat)?', 'burmilla',
 | 
					        'ocicat', 'chartreux', 'german[ -]?rex', 'turkish[ -]?van', 'ragamuffin', 'norwegian[ -]?forest[ -]?(cat)?', 'burmilla',
 | 
				
			||||||
        'khajiit', 'catamount', 'cat[ -]?person', 'tetton', 'tigre', 'calico', 'caracal', 'tabaxi', 'housecat',
 | 
					        'khajiit', 'catamount', 'cat[ -]?person', 'tetton', 'tigre', 'calico', 'caracal', 'tabaxi', 'housecat', 'neko',
 | 
				
			||||||
        'kodkod', 'karotanta', 'siamese', 'felis', 'catus', 'nekomata', 'nekomimi', 'trianii', 'caitian', 'catt[o|e]', '.*cat', 'toramimi',
 | 
					        'kodkod', 'karotanta', 'siamese', 'felis', 'catus', 'nekomata', 'nekomimi', 'trianii', 'caitian', 'catt[o|e]', '.*cat', 'toramimi',
 | 
				
			||||||
        'shishimimi', 'pansamimi', 'hyoumimi', 'mytharii', 'felinid', 'kitteh', 'cat[ -]folk', 'chat(te)?', 'lionkin', 'tigerkin',
 | 
					        'shishimimi', 'pansamimi', 'hyoumimi', 'mytharii', 'felinid', 'kitteh', 'chat(te)?',
 | 
				
			||||||
        'nyah', 'charr', 'kater', 'kat', 'jinko', 'katze?',
 | 
					        gen('(cat|lion|tiger)'),
 | 
				
			||||||
        'liger', 'tigon', 'sab(re|er)[ -]?tooth',
 | 
					        'nyah', 'charr', 'kater', 'kat', 'jinko', '.*katze?', 'liger', 'tigon', 'sab(re|er)[ -]?tooth',
 | 
				
			||||||
        '🐅', '🐆', '🐯', '🦁', '🐈'],
 | 
					        '🐅', '🐆', '🐯', '🦁', '🐈'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Vulpine]: ['fox', 'fennec', 'vixen', 'vulpine', 'fox.*', 'fennec', 'kitsune.*', 'kistune', 'gumiho', 'kumiho',
 | 
					    [Species.Vulpine]: ['fox', 'fennec', 'vixen', 'vulpine', 'fox.*', 'fennec', 'kitsune.*', 'kistune', 'gumiho', 'kumiho',
 | 
				
			||||||
        'nogitsune', 'yako', '🦊', 'fox[ -]?(girl|bo[yi][e]?)', 'vulpes', 'silver[ -]?fox', 'arctic[ -]?fox', 'fennec[ -]?fox', 'red[ -]?fox',
 | 
					        'nogitsune', 'yako', '🦊', gen('fox'), 'vulpes', 'silver[ -]?fox', 'arctic[ -]?fox', 'fennec[ -]?fox', 'red[ -]?fox',
 | 
				
			||||||
        'cape[ -]?fox', 'ninetails', 'ninetales', 'vulpo', 'vulpera', 'kitsunemimi', 'foxkin', 'fire[ -]?fox'],
 | 
					        'cape[ -]?fox', 'ninetails', 'ninetales', 'vulpo', 'vulpera', 'kitsunemimi', 'fire[ -]?fox', 'faw(x|ks)'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Dragon]: ['dragon', '🐉', 'wyvern', 'felkin', 'dragon.*', '.*drake', '.*wyvern', '.*felkin',
 | 
					    [Species.Dragon]: ['dragon', '🐉', 'wyvern', 'felkin', 'dragon.*', '.*dra(k|ch)e', '.*wyvern', '.*felkin',
 | 
				
			||||||
        'night[ -]?fury', 'draconian', 'dragonn?ess', 'draconic', 'dragovian',
 | 
					        'night[ -]?fury', 'draconian', 'dragonn?ess', 'draconic', 'draconis', 'dragovian',
 | 
				
			||||||
        'sea[ -]?dragon', 'doragonmimi', 'doragon', 'half[ -]dragon', 'dragonkin', 'wyverian', 'glavenus',
 | 
					        'sea[ -]?dragon', 'doragonmimi', 'doragon', 'half[ -]dragon', 'wyverian', 'glavenus',
 | 
				
			||||||
        'anjanath', 'ragon'
 | 
					        'anjanath', 'ragon', 'zinogre', 'drgn',
 | 
				
			||||||
 | 
					        gen('dragon')
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Reptile]: ['lizard', 'snake', 'crocodile', 'alligator', 'chameleon', 'anole', 'aligator', 'snake.*', 'lizard', 'gator',
 | 
					    [Species.Reptile]: ['lizard', 'snake', 'crocodile', 'alligator', 'chameleon', 'anole', 'aligator', 'snake.*', 'gator',
 | 
				
			||||||
        'gecko', 'reptile', 'reptilian', 'scaly', 'scale[ -]?born', 'argonian', 'saxhleel', 'skink', 'cobra', 'turtle', 'tortoise',
 | 
					        'gecko', 'reptile', 'reptilian', 'scaly', 'scale[ -]?born', 'argonian', 'saxhleel', 'skink', 'cobra', 'turtle', 'tortoise',
 | 
				
			||||||
        'nope[ -]rope', 'anaconda', 'python', 'lizardkin', 'lizard[ -]?folk', 'yuan[ -]?ti', 'crocodilian', 'serp[ea]a?nt(ine)?',
 | 
					        'nope[ -]rope', 'anaconda', 'python', gen('(lizard|snake)'), 'yuan[ -]?ti', 'crocodilian',
 | 
				
			||||||
 | 
					        'serp[ea]a?nt(ine)?', 'viper', 'titanoboa', 'boa', 'taipan',
 | 
				
			||||||
        'ludroth', 'zvarr', '🐍'],
 | 
					        'ludroth', 'zvarr', '🐍'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Pokemon]: ['charizard', 'charmander', 'pikachu', 'digimon', 'renamon', 'eevee', 'gardev(oi|io)r', 'absol', 'aggron',
 | 
					    [Species.Pokemon]: ['charizard', 'charmander', 'pikachu', 'digimon', 'renamon', 'eevee', 'gardev(oi|io)r', 'absol', 'aggron',
 | 
				
			||||||
@ -290,7 +302,8 @@ export const speciesMapping: SpeciesMap = {
 | 
				
			|||||||
        'dewott', 'delcatty', 'braixen', 'zacian', 'fennekin', 'kirlia', 'cinccino', 'growlithe', 'shaymin', 'salazzle',
 | 
					        'dewott', 'delcatty', 'braixen', 'zacian', 'fennekin', 'kirlia', 'cinccino', 'growlithe', 'shaymin', 'salazzle',
 | 
				
			||||||
        'vaporeon', 'reshiram', 'quilava', 'decidueye', 'marshadow', 'weavile', 'zubat', 'buizel', 'latias', 'nidorina',
 | 
					        'vaporeon', 'reshiram', 'quilava', 'decidueye', 'marshadow', 'weavile', 'zubat', 'buizel', 'latias', 'nidorina',
 | 
				
			||||||
        'chandelur(e|ia)', 'sneasel', 'rockruff', 'lugia', 'komala', 'meowstic', 'leafeon', 'purrloin', 'pokemorph',
 | 
					        'chandelur(e|ia)', 'sneasel', 'rockruff', 'lugia', 'komala', 'meowstic', 'leafeon', 'purrloin', 'pokemorph',
 | 
				
			||||||
        'houndour', 'zoroark', 'mightyena', 'mew', 'nidoqueen',
 | 
					        'houndour', 'zoroark', 'mightyena', 'mew', 'nidoqueen', 'zangoose', 'goodra', 'flygon', 'dialga', 'pansear',
 | 
				
			||||||
 | 
					        'bibarel', 'charmeleon',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // digimon
 | 
					        // digimon
 | 
				
			||||||
        'gatomon', 'impmon', 'guilmon'
 | 
					        'gatomon', 'impmon', 'guilmon'
 | 
				
			||||||
@ -302,22 +315,24 @@ export const speciesMapping: SpeciesMap = {
 | 
				
			|||||||
        'dove', 'eagle', 'owl', 'penguin', 'cockatoo', 'shoebill', 'rito', 'crow', 'meadow[ -]?lark', 'torimimi',
 | 
					        'dove', 'eagle', 'owl', 'penguin', 'cockatoo', 'shoebill', 'rito', 'crow', 'meadow[ -]?lark', 'torimimi',
 | 
				
			||||||
        'peacock', 'chocobo', 'emu', 'ostrich', 'flamingo', 'duck', 'swallow', 'nightingale', 'toucan', 'secretary[ -?]bird',
 | 
					        'peacock', 'chocobo', 'emu', 'ostrich', 'flamingo', 'duck', 'swallow', 'nightingale', 'toucan', 'secretary[ -?]bird',
 | 
				
			||||||
        '(pink|blue)[ -]?jay', 'jaybird', 'chicken', 'rooster', 'blauhäher', 'gryphon', 'gr[iy]ff[io]n',
 | 
					        '(pink|blue)[ -]?jay', 'jaybird', 'chicken', 'rooster', 'blauhäher', 'gryphon', 'gr[iy]ff[io]n',
 | 
				
			||||||
        'parrot', 'avarr?ian',
 | 
					        'parrot', 'avarr?ian', gen('(bird|raven)'),
 | 
				
			||||||
        'maran',
 | 
					        'maran',
 | 
				
			||||||
        '🦚', '🦃', '🦢', '🦆', '🦅', '🦉', '🦜', '🦩'],
 | 
					        '🦚', '🦃', '🦢', '🦆', '🦅', '🦉', '🦜', '🦩'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Bat]: ['bat', 'nimbat', 'foxbat', 'pteropus', 'komorimimi', '🦇'],
 | 
					    [Species.Bat]: ['bat', 'nimbat', 'foxbat', 'pteropus', 'komorimimi', '🦇'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Bovine]: ['cow', 'bison', 'bovine', 'antelope', 'gazelle', 'oryx', 'buffalo', 'bison', 'black[ -]?angus', 'bull', 'ox',
 | 
					    [Species.Bovine]: ['cow', 'bison', 'bovine', 'antelope', 'gazelle', 'oryx', 'buffalo', 'bison', 'black[ -]?angus', 'bull', 'ox',
 | 
				
			||||||
        'ushimimi', 'holstaur', 'moo', 'ᴍᴏᴏ', 'cattle', 'hucow', 'caprin[a]?e', 'goat-antelope', 'muskox', 'urial', 'mouflon',
 | 
					        'ushimimi', 'holstaur', 'moo', 'cattle', 'hucow', 'caprin[a]?e', 'goat[ -]?antelope', 'muskox', 'urial', 'mouflon',
 | 
				
			||||||
        'taurine', 'aurochs', 'bos', 'bos taurus', 'taurus',
 | 
					        'taurine', 'aurochs', 'bos', 'bos taurus', 'taurus',
 | 
				
			||||||
        '🐃', '🐂', '🐄', '🐐'],
 | 
					        '🐃', '🐂', '🐄', '🐐'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Caprinae]: ['sheep', 'goat', 'ibex', 'takin', 'bharal', 'goral', 'serow', 'lamb', 'faun', 'ram', 'faunus', 'goat.*',
 | 
					    [Species.Caprinae]: ['sheep', 'goat', 'ibex', 'takin', 'bharal', 'goral', 'serow', 'lamb', 'faun', 'ram', 'faunus', 'goat.*',
 | 
				
			||||||
        'yagimimi', 'hitsujimimi', 'sheepie'],
 | 
					        'yagimimi', 'hitsujimimi', 'sheepie', gen('(sheep|goat|ram)')],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Camielidae]: ['camel', 'llama', 'alpaca', 'guanaco', 'dromedary', 'dromedar', '🦙', '🐪', '🐫'],
 | 
					    [Species.Camielidae]: ['camel', 'llama', 'alpaca', 'guanaco', 'dromedary', 'dromedar', '🦙', '🐪', '🐫'],
 | 
				
			||||||
    [Species.Cervine]: ['deer', 'elk', 'moose', 'caribou', 'reindeer', 'doe', 'cervid', 'cervine', 'stag', 'shikamimi'],
 | 
					
 | 
				
			||||||
 | 
					    [Species.Cervine]: ['deer', 'elk', 'moose', 'caribou', 'reindeer', 'doe[ -]?(girl)?', 'fawn', 'cervid', 'cervine', 'stag', 'shikamimi',
 | 
				
			||||||
 | 
					        gen('deer')],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Dinosaur]: ['raptor', 't-rex', 'pterodactyl', 'deinonychus', 'death[ -]?claw', '[\\w-]*saurus', 'dinosaur',
 | 
					    [Species.Dinosaur]: ['raptor', 't-rex', 'pterodactyl', 'deinonychus', 'death[ -]?claw', '[\\w-]*saurus', 'dinosaur',
 | 
				
			||||||
        'trex', 'tyrannosaurus', 'saurian', '[\\w-]*raptor', 'dino',
 | 
					        'trex', 'tyrannosaurus', 'saurian', '[\\w-]*raptor', 'dino',
 | 
				
			||||||
@ -325,32 +340,40 @@ export const speciesMapping: SpeciesMap = {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    [Species.Erinaceidae]: ['hedgehog', 'gymnure', 'moonrat'],
 | 
					    [Species.Erinaceidae]: ['hedgehog', 'gymnure', 'moonrat'],
 | 
				
			||||||
    [Species.Elephantidae]: ['elephant', 'mammoth', 'mastodon', 'pachyderm', 'tusker'],
 | 
					    [Species.Elephantidae]: ['elephant', 'mammoth', 'mastodon', 'pachyderm', 'tusker'],
 | 
				
			||||||
    [Species.Fish]: ['shark', 'great white', 'sergal', 'fish', 'aquatic', 'melanopterus', 'carcharhinus', '.*fish', '.*shark'],
 | 
					
 | 
				
			||||||
 | 
					    [Species.Fish]: ['shark', 'great white', 'sergal', 'fish', 'aquatic', 'melanopterus', 'carcharhinus', '.*fish', '.*shark',
 | 
				
			||||||
 | 
					        gen('(shark|fish)')
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Giraffe]: ['giraffe', '🦒', 'kirinmimi', 'okapi', '[gk]ira(ff|hv)[ei]?'],
 | 
					    [Species.Giraffe]: ['giraffe', '🦒', 'kirinmimi', 'okapi', '[gk]ira(ff|hv)[ei]?'],
 | 
				
			||||||
    [Species.Herpestidae]: ['mongoose', 'meerkat', 'kusimanse', 'suricate'],
 | 
					    [Species.Herpestidae]: ['mongoose', 'meerkat', 'kusimanse', 'suricate'],
 | 
				
			||||||
    [Species.Hippopotamidae]: ['hippo', 'hippopotamus', '🦛'],
 | 
					    [Species.Hippopotamidae]: ['hippo', 'hippopotamus', '🦛'],
 | 
				
			||||||
    [Species.Hyaenidae]: ['hyena', 'aardwolf', 'hyaena', 'yeen'],
 | 
					    [Species.Hyaenidae]: ['hyena', 'aardwolf', 'hyaena', 'yeen', gen('hyena')],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Hybrid]: ['hybrid', 'cabbit', 'fabbit', 'laquine', 'folf', 'tolf', 'myox', 'wolger', 'silkie', 'yumar',
 | 
					    [Species.Hybrid]: ['hybrid', 'cabbit', 'fabbit', 'laquine', 'folf', 'tolf', 'myox', 'wolger', 'silkie', 'yumar',
 | 
				
			||||||
        'foxcoon', 'drazelle', 'vulpkanin', 'poochyena', 'batpon', 'delphox', 'unifox', 'rooram', 'catbat', 'bunfox'],
 | 
					        'foxcoon', 'drazelle', 'vulpkanin', 'poochyena', 'batpon', 'delphox', 'unifox', 'rooram', 'catbat', 'bunfox'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Insect]: ['bug', 'bee', 'wasp', 'ant', 'spider', 'arachnid', 'scorpion', 'insect', 'buggo', 'hornet', 'vespidae',
 | 
					    [Species.Insect]: ['bug', 'bee', 'wasp', 'ant', 'insect', 'buggo', 'hornet', 'vespidae',
 | 
				
			||||||
        'mantis', 'beefolk', 'ladybug', 'hachimimi', 'moth', 'bumblebee', 'tolype'],
 | 
					        'mantis', gen('bee'), 'ladybug', 'hachimimi', 'moth', 'bumblebee', 'tolype',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Lapine]: ['bunny', 'rabbit', 'hare', 'lapine', 'viera', 'wabbit', 'lagomo(rp|pr)h', 'bunny[ -]?(girl|bo[yi][e])', 'usagimimi',
 | 
					        // technically belong to their own group
 | 
				
			||||||
 | 
					        'tarantula', 'arachnida', 'spider', gen('spider'), 'arachnid', 'scorpion'
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [Species.Lapine]: ['bunny', 'rabbit', 'hare', 'lapine', 'viera', 'wabbit', 'lagomo(rp|pr)h', gen('(bunny|rabbit)'), 'usagimimi',
 | 
				
			||||||
        'bun', '.*bunny', 'cabbit', 'fabbit', 'häschen', 'bunbun', 'cottontail', 'rabbet', 'jack[ -]?rabbit', 'lapine?', 'jackalope',
 | 
					        'bun', '.*bunny', 'cabbit', 'fabbit', 'häschen', 'bunbun', 'cottontail', 'rabbet', 'jack[ -]?rabbit', 'lapine?', 'jackalope',
 | 
				
			||||||
        'leporids?', 'leporidae', 'broodal', 'ʀᴀʙʙɪᴛ', 'ʟᴀᴘɪɴᴇ', '🐇'],
 | 
					        'leporids?', 'leporidae', 'broodal', 'kanin(chen)?', '🐇'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.MarineMammal]: ['whale', 'dolphin', 'orca', '🐬', 'killer[ -]?whale'],
 | 
					    [Species.MarineMammal]: ['whale', 'dolphin', 'orca', '🐬', 'killer[ -]?whale'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Marsupial]: ['kangaroo', 'opossum', 'koala', 'wombat', 'possum', 'roo', 'bandicoot', 'bilby', 'numbat', 'wallaby',
 | 
					    [Species.Marsupial]: ['kangaroo', 'opossum', 'koala', 'wombat', 'possum', 'roo([ -]kin)?', 'bandicoot', 'bilby', 'numbat', 'wallaby',
 | 
				
			||||||
        'thylacine', 'marsupial[ -]?wolf', 'tasmanian[ -]?tiger', 'quokka', 'glider', 'cuscus', 'marsupial', 'tasmanian[ -]?devil', 'musky[ -]?rat',
 | 
					        'thylacine', 'marsupial[ -]?wolf', 'tasmanian[ -]?tiger', 'quokka', 'glider', 'cuscus', 'marsupial', 'tasmanian[ -]?devil', 'musky[ -]?rat',
 | 
				
			||||||
        'bettong', 'Känguru', '🦘', '🐨'],
 | 
					        'bettong', 'k[äa]nguru', '🦘', '🐨'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Mephitidae]: ['skunk', '🦨', 'stink[ -]?badger'],
 | 
					    [Species.Mephitidae]: ['skunk', '🦨', 'stink[ -]?badger'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Musteline]: ['otter', 'ferret', 'mink', 'weasel', 'stoat', 'wolverine', 'marten', 'musteline', 'badger', 'otterkin',
 | 
					    [Species.Musteline]: ['otter', 'ferret', 'mink', 'weasel', 'stoat', 'wolverine', 'marten', 'musteline', 'badger',
 | 
				
			||||||
        'kawausomimi', 'itachimimi', 'ferettomimi', 'ottsel', '🦡', '🦦'],
 | 
					        'kawausomimi', 'itachimimi', 'ferettomimi', 'ottsel', gen('(otter|ferret|weasel)'), '🦡', '🦦'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Pinniped]: ['seal', 'walrus', 'fur seal', 'sea[ -]?lion'],
 | 
					    [Species.Pinniped]: ['seal', 'walrus', 'fur seal', 'sea[ -]?lion'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -363,7 +386,8 @@ export const speciesMapping: SpeciesMap = {
 | 
				
			|||||||
    [Species.Rhinoceros]: ['rhino', 'rhinoceros', '🦏', '.*rhino'],
 | 
					    [Species.Rhinoceros]: ['rhino', 'rhinoceros', '🦏', '.*rhino'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Rodent]: ['rat', 'mouse', 'chipmunk', 'squirrel', 'hamster', 'rodent', 'maus', 'gerbil', 'mousie', 'muskrat', 'ratsin',
 | 
					    [Species.Rodent]: ['rat', 'mouse', 'chipmunk', 'squirrel', 'hamster', 'rodent', 'maus', 'gerbil', 'mousie', 'muskrat', 'ratsin',
 | 
				
			||||||
        'skaven', 'roedor', 'risumimi', 'nezumimi', 'jerboa', 'burmecian', 'rat[ -]?(boy|girl|folk)', 'mouse[ -]?(boy|girl|folk)',
 | 
					        'skaven', 'roedor', 'risumimi', 'nezumimi', 'jerboa', 'burmecian', 'porcupine', 'squirril',
 | 
				
			||||||
 | 
					        gen('(rat|mousi?ey?|maus|squirrel)'),
 | 
				
			||||||
        '🐀', '🐁', '🐿'],
 | 
					        '🐀', '🐁', '🐿'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Suidae]: ['pig', 'boar', 'warthog', 'bushpig', 'babirusa', 'sow', 'swine', 'suid', 'suine', 'piglet', 'hog',
 | 
					    [Species.Suidae]: ['pig', 'boar', 'warthog', 'bushpig', 'babirusa', 'sow', 'swine', 'suid', 'suine', 'piglet', 'hog',
 | 
				
			||||||
@ -372,36 +396,37 @@ export const speciesMapping: SpeciesMap = {
 | 
				
			|||||||
    [Species.Ursine]: ['bear', 'panda', 'grizzly', 'black[ -]?bear', 'brown[ -]?bear', 'polar[ -]?bear', 'ursine', 'pandaren', 'ursus',
 | 
					    [Species.Ursine]: ['bear', 'panda', 'grizzly', 'black[ -]?bear', 'brown[ -]?bear', 'polar[ -]?bear', 'ursine', 'pandaren', 'ursus',
 | 
				
			||||||
        'pandamimi', 'kumamimi'],
 | 
					        'pandamimi', 'kumamimi'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Xenarthra]: ['armadillo', 'anteater', 'sloth', 'glyptodont', 'a(rm|mr)ad[iy]ll?o', 'sloth', 'ant[ -]?eater'],
 | 
					    // pangolin doesn't fit here
 | 
				
			||||||
 | 
					    [Species.Xenarthra]: ['armadillo', 'anteater', 'sloth', 'glyptodont', 'a(rm|mr)ad[iy]ll?o', 'sloth', 'ant[ -]?eater', 'pangoo?lin'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Demon]: ['demon', 'devil', 'succubus', 'incubus', 'daemon', 'deamon', 'demoness', 'demonkin', 'baphomet', 'eredar',
 | 
					    [Species.Demon]: ['demon', 'devil', 'succubus', 'incubus', 'daemon', 'deamon', 'demoness', 'baphomet', 'eredar',
 | 
				
			||||||
        'tengu', 'devilkin', 'd[a]?emonette', 'cambion', 'amanojaku', 'tanar[\']?ri', 'balor', 'marilith', 'lilith', '.*demon',
 | 
					        'tengu', gen('(devil|demon)'), 'd[a]?emonette', 'cambion', 'amanojaku', 'tanar[\']?ri', 'balor', 'marilith', 'lilith', '.*demon',
 | 
				
			||||||
        'd[äa]mon[ie]n.*', 'ifrit', 'efree?t', 'afa?rit', 'demonic'],
 | 
					        'd[äa]mon([ie]n)?.*', 'ifrit', 'efree?t', 'afa?rit', 'demonic'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Divinity]: ['god', 'goddess', 'divinity', 'demi[ -]?god', 'demi[ -]?goddess'],
 | 
					    [Species.Divinity]: ['god', 'goddess', 'divinity', 'demi[ -]?god', 'demi[ -]?goddess'],
 | 
				
			||||||
    [Species.Fae]: ['fairy', 'fae', 'imp', 'elemental', 'fey', 'pixie', 'nymph', 'faerie'],
 | 
					    [Species.Fae]: ['fairy', 'fae', 'imp', 'elemental', 'fey', 'pixie', 'nymph', 'faerie'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Humanoid]: ['satyr', 'gnome', 'dwarf', 'halfling', 'havlin', 't[h]?(ie|ei)fling', 'dwarves', 'humanoid', 'yordle', 'hylian', 'lalafell',
 | 
					    [Species.Humanoid]: ['satyr', 'gnome', 'dwarf', 'halfling', 'havlin', 't[h]?(ie|ei)fling', 'dwarves', 'humanoid', 'yordle', 'hylian', 'lalafell',
 | 
				
			||||||
        'zwerg', 'draph', 'dryad'],
 | 
					        'zwerg', 'draph', 'dryad', 'homunculus', 'githyanki'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Minotaur]: ['minotaur', 'tauren', 'minotaurus', 'm[iy]n[ao]t(uo|ou|o|u)ru?s?'],
 | 
					    [Species.Minotaur]: ['minotaur', 'tauren', 'minotaurus', 'm[iy]n[ao]t(uo|ou|o|u)ru?s?', 'minotaure'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Monster]: ['gnoll', 'goblin', 'kobold', 'monster', 'troll', 'illithid', 'golem', 'basilisk', 'oni', 'kaiju', 'mimic',
 | 
					    [Species.Monster]: ['gnoll', 'goblin', 'kobold', 'monster', 'troll', 'illithid', 'golem', 'basilisk', 'oni', 'kaiju', 'mimic',
 | 
				
			||||||
        'hippogriff', 'hippogryph', 'manticore', 'harpy', 'gargoyle', 'ghost', 'eldritch', 'tentacle', 'youkai', 'ogre', 'skeleton',
 | 
					        'hippogriff', 'hippogryph', 'manticore', 'harpy', 'gargoyle', 'ghost', 'eldritch', 'tentacle', 'youkai', 'ogre', 'skeleton',
 | 
				
			||||||
        'ghoul', 'vrykolakas', 'godzilla', 'bugbear', 'gnobold', 'undead', 'lich', 'siren', 'mermaid', 'slime', 'goo',
 | 
					        'ghoul', 'vrykolakas', 'godzilla', 'bugbear', 'gnobold', 'undead', 'lich', 'siren', 'mermaid', 'slime', 'goo',
 | 
				
			||||||
        'y[oō]kai', 'shinigami', 'bunyip', 'giant', 'giantess', 'bokoblin', 'kirin', 'qilin'],
 | 
					        'y[oō]kai', 'shinigami', 'bunyip', 'giant', 'giantess', 'bokoblin', 'kirin', 'qilin', 'olog[ -]?hai', 'owlbear'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Naga]: ['naga', 'lamia'],
 | 
					    [Species.Naga]: ['naga', 'lamia'],
 | 
				
			||||||
    [Species.Taur]: ['centaur', 'chakat', 'equitaur', 'felitaur', 'weretaur', 'humantaur', 'cowtaur', '.*taur', 'cervitaur'],
 | 
					    [Species.Taur]: ['centaur', 'chakat', 'equitaur', 'felitaur', 'weretaur', 'humantaur', 'cowtaur', '.*taur', 'cervitaur'],
 | 
				
			||||||
    [Species.Orc]: ['orc', 'uruk-hai', 'snaga', 'uruk[ -]?hai', 'ork', 'orcess'],
 | 
					    [Species.Orc]: ['orc', 'uruk-hai', 'snaga', 'uruk[ -]?hai', 'ork', 'orcess', gen('orc')],
 | 
				
			||||||
    [Species.Vampire]: ['vampire', 'nosferatu', 'daywalker', 'd[h]?amp[h]?ir', 'vampyre', 'vampiric', 'vampir'],
 | 
					    [Species.Vampire]: ['vampire', 'nosferatu', 'daywalker', 'd[h]?amp[h]?ir', 'vampyre', 'vampiric', 'vampir'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Were]: ['werewolf', 'lycan', 'werelion', 'weretiger', 'werebear', 'werecoyote', 'werehog', 'were[ -]?wolf', 'were[ -]?lion',
 | 
					    [Species.Were]: ['werewolf', 'lycan', 'werelion', 'weretiger', 'werebear', 'werecoyote', 'werehog', 'were[ -]?wolf', 'were[ -]?lion',
 | 
				
			||||||
        'were[ -]?bear', 'were[ -]?coyote', 'were[ -]?hog', 'lycant[h]?rop[h]?[ey]?', 'loup[ -]?garou[sx]?',
 | 
					        'were[ -]?bear', 'were[ -]?coyote', 'were[ -]?hog', 'lycant[h]?rop[h]?[ey]?', 'loup[ -]?garou[sx]?',
 | 
				
			||||||
        'were[ -]?squirrel', 'were[ -]?donkey', 'were[ -]?rat'],
 | 
					        'were[ -]?squirrel', 'were[ -]?donkey', 'were[ -]?rat', 'were[ -]?beast'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Alien]: ['krogan', 'xenomorph', 'quarian', 'turian', 'asari', 'togruta', 'otolla', 'gungan', 'chiss', 'alien', 'puazi',
 | 
					    [Species.Alien]: ['krogan', 'xenomorph', 'quarian', 'turian', 'asari', 'togruta', 'otolla', 'gungan', 'chiss', 'alien', 'puazi',
 | 
				
			||||||
        'hutt', 'klyntar', 'twi\'?lek', 'sangheili', 'salarian', 't[\']?vaoan', 'yautja'],
 | 
					        'hutt', 'klyntar', 'twi\'?lek', 'sangheili', 'salarian', 't[\']?vaoan', 'yautja', 'zabrak'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Species.Robot]: ['android', 'cyborg', 'gynoid', 'automaton', 'robot', 'transformer', 'cybertronian', 'reploid', 'synth', 'ai',
 | 
					    [Species.Robot]: ['android', 'cyborg', 'gynoid', 'automaton', 'robot', 'transformer', 'cybertronian', 'reploid', 'synth', 'ai',
 | 
				
			||||||
        'realian', 'replicant'],
 | 
					        'realian', 'replicant'],
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,9 @@ import * as _ from 'lodash';
 | 
				
			|||||||
import { Character, CharacterInfotag } from '../interfaces';
 | 
					import { Character, CharacterInfotag } from '../interfaces';
 | 
				
			||||||
import log from 'electron-log'; //tslint:disable-line:match-default-export-name
 | 
					import log from 'electron-log'; //tslint:disable-line:match-default-export-name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import anyAscii from 'any-ascii';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
    BodyType, fchatGenderMap,
 | 
					    BodyType, fchatGenderMap,
 | 
				
			||||||
    FurryPreference,
 | 
					    FurryPreference,
 | 
				
			||||||
@ -773,11 +776,11 @@ export class Matcher {
 | 
				
			|||||||
    private static speciesMappingCache?: SpeciesMappingCache;
 | 
					    private static speciesMappingCache?: SpeciesMappingCache;
 | 
				
			||||||
    private static likelyHumanCache?: SpeciesMappingCache;
 | 
					    private static likelyHumanCache?: SpeciesMappingCache;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static matchMappedSpecies(species: string, mapping: SpeciesMappingCache): Species | null {
 | 
					    private static matchMappedSpecies(species: string, mapping: SpeciesMappingCache, skipAscii: boolean = false): Species | null {
 | 
				
			||||||
        let foundSpeciesId: Species | null = null;
 | 
					        let foundSpeciesId: Species | null = null;
 | 
				
			||||||
        let match = '';
 | 
					        let match = '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const finalSpecies = species.toLowerCase().trim();
 | 
					        const finalSpecies = (skipAscii ? species : anyAscii(species)).toLowerCase().trim();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        _.each(
 | 
					        _.each(
 | 
				
			||||||
            mapping,
 | 
					            mapping,
 | 
				
			||||||
@ -809,7 +812,9 @@ export class Matcher {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return Matcher.matchMappedSpecies(species, Matcher.speciesMappingCache)
 | 
					        return Matcher.matchMappedSpecies(species, Matcher.speciesMappingCache)
 | 
				
			||||||
            || Matcher.matchMappedSpecies(species, Matcher.likelyHumanCache);
 | 
					            || Matcher.matchMappedSpecies(species, Matcher.speciesMappingCache, true)
 | 
				
			||||||
 | 
					            || Matcher.matchMappedSpecies(species, Matcher.likelyHumanCache)
 | 
				
			||||||
 | 
					            || Matcher.matchMappedSpecies(species, Matcher.likelyHumanCache, true);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static getAllSpecies(c: Character): Species[] {
 | 
					    static getAllSpecies(c: Character): Species[] {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user