misc.color: add colornames name support
This commit is contained in:
		
							parent
							
								
									3e84bdb299
								
							
						
					
					
						commit
						e54f953fa1
					
				
					 2 changed files with 3157781 additions and 2 deletions
				
			
		
							
								
								
									
										3157758
									
								
								data/colornames.csv
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3157758
									
								
								data/colornames.csv
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
				
			
			@ -13,6 +13,7 @@ const GoogleImages = require("google-images");
 | 
			
		|||
const {tinycolor, random: randomColor} = require("@ctrl/tinycolor");
 | 
			
		||||
const sharp = require("sharp");
 | 
			
		||||
const net = require("node:net");
 | 
			
		||||
const fs = require("node:fs");
 | 
			
		||||
 | 
			
		||||
const imagesClient = new GoogleImages(hf.apikeys.gimg, hf.apikeys.google);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -628,6 +629,16 @@ searchInteraction.callback = async function (interaction) {
 | 
			
		|||
};
 | 
			
		||||
hf.registerCommand(searchInteraction);
 | 
			
		||||
 | 
			
		||||
const colornamesRaw = fs.readFileSync("../../data/colornames.csv").split("\n");
 | 
			
		||||
colornamesRaw.shift();
 | 
			
		||||
const colornamesMapped = colornamesRaw.map((line) => {
 | 
			
		||||
  const [hex, name] = line.split(",");
 | 
			
		||||
 | 
			
		||||
  return [hex, name];
 | 
			
		||||
});
 | 
			
		||||
const colornames = Object.fromEntries(colornamesMapped);
 | 
			
		||||
const colornamesFlipped = Object.fromEntries(colornamesMapped.reverse());
 | 
			
		||||
 | 
			
		||||
const color = new Command("color");
 | 
			
		||||
color.category = CATEGORY;
 | 
			
		||||
color.helpText = "Show information on a color or get a random color";
 | 
			
		||||
| 
						 | 
				
			
			@ -635,13 +646,18 @@ color.callback = async function (msg, line, args, {truerandom}) {
 | 
			
		|||
  let color = tinycolor(line),
 | 
			
		||||
    random = false;
 | 
			
		||||
 | 
			
		||||
  if (!line || line == "" || args.length == 0) {
 | 
			
		||||
  if (!line || line == "") {
 | 
			
		||||
    color = truerandom ? tinycolor(Math.floor(Math.random() * 0xffffff)) : randomColor();
 | 
			
		||||
    random = true;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (!color.isValid) {
 | 
			
		||||
    return "Color not valid.";
 | 
			
		||||
    const colornamesHex = colornamesFlipped[line];
 | 
			
		||||
    if (colornamesHex) {
 | 
			
		||||
      color = tinycolor(colornamesHex);
 | 
			
		||||
    } else {
 | 
			
		||||
      return "Color not valid.";
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const image = await sharp({
 | 
			
		||||
| 
						 | 
				
			
			@ -692,6 +708,11 @@ color.callback = async function (msg, line, args, {truerandom}) {
 | 
			
		|||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const colornamesName = colornames[color.toHex()];
 | 
			
		||||
  if (colornamesName) {
 | 
			
		||||
    fields.push({name: "\u200b", value: `**[colornames](https://colornames.org/) Name**\n${colornamesName}`});
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return {
 | 
			
		||||
    embeds: [
 | 
			
		||||
      {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue