JS-Cookie not being able to be set due to “HTTPONLY cookie already exists”

Next.js v12.0.7
NodeJS v14.17.4

I’m trying to create change my authentication from localstorage to a httponly cookie. I’ve chosen to use js-cookie for this but for some reason I just can’t create a cookie with the httponly parameter. I’m using this code below to set the cookie:

Cookies.set('authtoken', 'test', {
     path: '/',
     expires: 7,
     sameSite: 'strict',
     httpOnly: true
});

If I remove the httponly then the cookie would be set.. If I keep the httponly I get an error saying:

Cookie “authtoken” has been rejected because there is already an HTTP-Only cookie but script tried to store a new one.

I use Mozilla Firefox as my browser and I’ve tried changing the browser to see if something is up with the browser. Chrome does not state any errors in console but cookie also would not be set with httponly but without, no problemos.

Just in case it could be the value, my value consists of an base64 encoded jwt token. Could this break it?

Do we have any cookie experts out there who could assist, preferably not Santa. I’ve also done a short GIF to show my issue:
https://gyazo.com/16e02f4c095ee3309e1b57d9cabc6bd7

I’m going to keep trying. Was just hoping someone could end my suffering 😉

check date existence on array of string

This is my dataset from MongoDB Collection:


{
  "_id": "60c0ace96e93993880efd337",
  "lv": [
   uid: 1,
   "createdate": "2021-12-15T12:30:01.935Z",
   "updatedAt": [
      "2021-12-15T12:31:11.635Z",
      "2021-12-15T12:31:51.955Z",
      "2021-12-16T12:30:01.935Z",
      "2021-12-16T12:30:01.935Z",
      "2021-12-17T12:30:01.935Z",
      "2021-12-18T12:30:01.935Z"
   ]
  ]
},
{
...
}

I want to filterout only the data which date range lies in createdate column or updatedAt column.

I am not able to get the desired result. Not getting the idea that where I am making the mistake in the query or coed.

What I have tried I will mention here.

let startA = new Date("2021-12-14");
const a = new Date(startA.setHours(startA.getHours() - 5));
const start = new Date(a.setMinutes(startA.getMinutes() - 30));

let endA = new Date("2021-12-17");
const b = new Date(endA.setHours(endA.getHours() - 5));
const end = new Date(b.setMinutes(endA.getMinutes() - 30));

const fetchData = await MyCollection.findOne(
  { 
    _id: ObjectId(req.body.id),
    'lv.createdate': { $gte: start, $lt: end },
    'lv.updatedAt': {
      $elemMatch: { $gte: start, $lt: end }
    }
  }
).lean().exec();

Any help or suggestion is really appreciated. Thanks in advance for the interaction.

Got an error “cannot read properties” in my game code

I am working on a simple game project on my studies, still not too good at it. I’ve tried to implement an “if-statement” that limited my game character movements inside the canyon so it could not go through the walls and find itself underground. I thought that it looks pretty good and functional but I still get information in the console that properties x_pos are undefined in line 160. Can someone smarter show me where is my problem? I suppose that I should somehow recall properties inside the if-statement but as far I’ve tried I just ruined everything and made it messier than this is now.

//The Game Project 5 - Bring it all together

  

var gameChar_x;
var gameChar_y;
var floorPos_y;
var scrollPos;
var gameChar_world_x;

var isLeft;
var isRight;
var isFalling;
var isPlummeting;

var trees_x;
var treePos_y;
var collectables;

function setup() {
  createCanvas(1024, 576);
  floorPos_y = (height * 3) / 4;
  gameChar_x = width / 2;
  gameChar_y = floorPos_y;
  treePos_y = floorPos_y - 150;

  // Variable to control the background scrolling.
  scrollPos = 0;

  // Variable to store the real position of the gameChar in the game
  // world. Needed for collision detection.
  gameChar_world_x = gameChar_x - scrollPos;

  // Boolean variables to control the movement of the game character.
  isLeft = false;
  isRight = false;
  isFalling = false;
  isPlummeting = false;

  // Initialise arrays of scenery objects.
  trees_x = [
    100, 250, 500, 650, 950, 1390, 1560, 1840, 2130, 2450, 2900, 3100, 3380,
    3500, 3710, 3900,
  ];
  clouds = [{
      x_pos: 120,
      y_pos: 100
    },
    {
      x_pos: 400,
      y_pos: 150
    },
    {
      x_pos: 600,
      y_pos: 100
    },
    {
      x_pos: 900,
      y_pos: 150
    },
    {
      x_pos: 600,
      y_pos: 100
    },
    {
      x_pos: 900,
      y_pos: 150
    },
    {
      x_pos: 1600,
      y_pos: 100
    },
    {
      x_pos: 1400,
      y_pos: 150
    },
    {
      x_pos: 1900,
      y_pos: 150
    },
    {
      x_pos: 2400,
      y_pos: 150
    },
    {
      x_pos: 2600,
      y_pos: 100
    },
    {
      x_pos: 2900,
      y_pos: 150
    },
    {
      x_pos: 3400,
      y_pos: 150
    },
    {
      x_pos: 3600,
      y_pos: 100
    },
    {
      x_pos: 3900,
      y_pos: 150
    },
  ];
  mountains = [{
      x_pos: 10,
      y_pos: 432
    },
    {
      x_pos: 400,
      y_pos: 432
    },
    {
      x_pos: 800,
      y_pos: 432
    },
    {
      x_pos: 1200,
      y_pos: 432
    },
    {
      x_pos: 1600,
      y_pos: 432
    },
    {
      x_pos: 1900,
      y_pos: 432
    },
    {
      x_pos: 2400,
      y_pos: 432
    },
    {
      x_pos: 2800,
      y_pos: 432
    },
    {
      x_pos: 3700,
      y_pos: 432
    },
  ];
  canyons = [{
      x_pos: 10,
      width: 80
    },
    {
      x_pos: 270,
      width: 80
    },
    {
      x_pos: 730,
      width: 80
    },
    {
      x_pos: 1010,
      width: 80
    },
    {
      x_pos: 1270,
      width: 80
    },
    {
      x_pos: 1730,
      width: 80
    },
    {
      x_pos: 2010,
      width: 80
    },
    {
      x_pos: 2270,
      width: 80
    },
    {
      x_pos: 2730,
      width: 80
    },
    {
      x_pos: 3010,
      width: 80
    },
    {
      x_pos: 3570,
      width: 80
    },
    {
      x_pos: 3730,
      width: 80
    },
  ];
  collectables = [{
      x_pos: 140,
      y_pos: floorPos_y,
      isFound: false
    },
    {
      x_pos: 380,
      y_pos: floorPos_y,
      isFound: false
    },
    {
      x_pos: 480,
      y_pos: floorPos_y - 50,
      isFound: false
    },
    {
      x_pos: 670,
      y_pos: floorPos_y - 50,
      isFound: false
    },
    {
      x_pos: 900,
      y_pos: floorPos_y,
      isFound: false
    },
    {
      x_pos: 1250,
      y_pos: floorPos_y - 50,
      isFound: false
    },
    {
      x_pos: 1400,
      y_pos: floorPos_y,
      isFound: false
    },
    {
      x_pos: 1550,
      y_pos: floorPos_y - 50,
      isFound: false
    },
    {
      x_pos: 1900,
      y_pos: floorPos_y,
      isFound: false
    },
    {
      x_pos: 2500,
      y_pos: floorPos_y,
      isFound: false
    },
    {
      x_pos: 2700,
      y_pos: floorPos_y - 50,
      isFound: false
    },
    {
      x_pos: 2900,
      y_pos: floorPos_y - 50,
      isFound: false
    },
    {
      x_pos: 3300,
      y_pos: floorPos_y,
      isFound: false
    },
    {
      x_pos: 3540,
      y_pos: floorPos_y - 50,
      isFound: false
    },
    {
      x_pos: 3850,
      y_pos: floorPos_y,
      isFound: false
    },
  ];
}

function draw() {
  background(100, 155, 255); // fill the sky blue

  noStroke();
  fill(240, 240, 240);
  rect(0, floorPos_y, width, height / 4); // draw some green ground

  push();
  translate(scrollPos, 0);
  // Draw clouds.
  drawClouds();

  // Draw mountains.
  drawMountains();

  // Draw trees.
  drawTrees();
  // Draw canyons.
  for (var i = 0; i < canyons.length; i++) {
    drawCanyon(canyons[i]);
    checkCanyon(canyons[i]);
  }

  // Draw collectable items.
  for (var i = 0; i < collectables.length; i++) {
    if (collectables[i].isFound == false) {
      drawCollectable(collectables[i]);
      checkCollectable(collectables[i]);
    }
  }
  pop();
  // Draw game character.

  drawGameChar();

  //Logic to make the game character move or the background scroll.

  if (isLeft == true) {
    var spaceLeft = gameChar_x - (canyons[i].x_pos + 20);
    var deltaX = gameChar_y <= floorPos_y ? 4 : Math.min(4, spaceLeft);
    gameChar_x -= deltaX;
  } else {
    scrollPos += 5;
  }
  if (isRight == true) {
    var spaceRight = canyons[i].x_pos + canyons[i].width - 20 - gameChar_x;
    var deltaX = gameChar_y <= floorPos_y ? 4 : Math.min(4, spaceRight);
    gameChar_x += deltaX;
  } else {
    scrollPos -= 5;
  }

  // Logic to make the game character rise and fall.
  //jumping
  if (gameChar_y <= floorPos_y) {
    gameChar_y += 4;
    isFalling = true;
  } else {
    isFalling = false;
  }

  // Update real position of gameChar for collision detection.
  gameChar_world_x = gameChar_x - scrollPos;
}

// ---------------------
// Key control functions
// ---------------------

function keyPressed() {
  console.log(keyCode);
  if (keyCode == 37) {
    isLeft = true;
  }
  if (keyCode == 39) {
    isRight = true;
  }
  if (keyCode == 32 && gameChar_y <= floorPos_y + 5) {
    gameChar_y -= 70;
  }
}

function keyReleased() {
  if (keyCode == 37) {
    isLeft = false;
  }
  if (keyCode == 39) {
    isRight = false;
  }
}

// ------------------------------
// Game character render function
// ------------------------------

// Function to draw the game character.

function drawGameChar() {
  // draw game character
  if (isLeft && isFalling) {
    // add your jumping-left code
    fill(255);
    stroke(1);
    strokeWeight(1);
    //lower body
    ellipse(gameChar_x, gameChar_y - 20, 20, 20);
    //legs
    ellipse(gameChar_x - 6, gameChar_y - 7, 7, 7);
    ellipse(gameChar_x - 12, gameChar_y - 14, 7, 7);
    //upper body
    ellipse(gameChar_x - 5, gameChar_y - 31, 15, 15);
    //head
    ellipse(gameChar_x - 9, gameChar_y - 46, 12, 17);
    fill(0);
    //button
    ellipse(gameChar_x - 9, gameChar_y - 27, 3, 3);
    //eye
    ellipse(gameChar_x - 11, gameChar_y - 48, 2, 2);
    stroke(116, 58, 8);
    strokeWeight(2);
    fill(116, 58, 8);
    //"hair"
    line(gameChar_x - 9, gameChar_y - 57, gameChar_x - 3, gameChar_y - 57);
    line(gameChar_x - 9, gameChar_y - 56, gameChar_x - 3, gameChar_y - 62);
    line(gameChar_x - 9, gameChar_y - 57, gameChar_x - 9, gameChar_y - 63);
    //arm
    line(gameChar_x - 6, gameChar_y - 30, gameChar_x - 20, gameChar_y - 35);
    //nose
    noStroke();
    fill(255, 0, 0);
    triangle(
      gameChar_x - 13,
      gameChar_y - 47,
      gameChar_x - 23,
      gameChar_y - 40,
      gameChar_x - 13,
      gameChar_y - 43
    );
  } else if (isRight && isFalling) {
    // add your jumping-right code
    fill(255);
    stroke(1);
    strokeWeight(1);
    //lower body
    ellipse(gameChar_x, gameChar_y - 20, 20, 20);
    //legs
    ellipse(gameChar_x + 6, gameChar_y - 7, 7, 7);
    ellipse(gameChar_x + 12, gameChar_y - 14, 7, 7);
    //upper body
    ellipse(gameChar_x + 5, gameChar_y - 31, 15, 15);
    //head
    ellipse(gameChar_x + 9, gameChar_y - 46, 12, 17);
    fill(0);
    //button
    ellipse(gameChar_x + 9, gameChar_y - 27, 3, 3);
    //eye
    ellipse(gameChar_x + 11, gameChar_y - 48, 2, 2);
    stroke(116, 58, 8);
    strokeWeight(2);
    fill(116, 58, 8);
    //"hair"
    line(gameChar_x + 9, gameChar_y - 57, gameChar_x + 3, gameChar_y - 57);
    line(gameChar_x + 9, gameChar_y - 56, gameChar_x + 3, gameChar_y - 62);
    line(gameChar_x + 9, gameChar_y - 57, gameChar_x + 9, gameChar_y - 63);
    //arm
    line(gameChar_x + 6, gameChar_y - 30, gameChar_x + 20, gameChar_y - 35);
    //nose
    noStroke();
    fill(255, 0, 0);
    triangle(
      gameChar_x + 13,
      gameChar_y - 47,
      gameChar_x + 23,
      gameChar_y - 40,
      gameChar_x + 13,
      gameChar_y - 43
    );
  } else if (isLeft) {
    // add your walking left code
    fill(255);
    stroke(1);
    strokeWeight(1);
    //lower body
    ellipse(gameChar_x, gameChar_y - 13, 20, 20);
    //legs
    ellipse(gameChar_x, gameChar_y, 7, 7);
    ellipse(gameChar_x - 12, gameChar_y - 7, 7, 7);
    //upper body
    ellipse(gameChar_x, gameChar_y - 26, 15, 15);
    //head
    ellipse(gameChar_x, gameChar_y - 40, 12, 17);
    fill(0);
    //button
    ellipse(gameChar_x - 4, gameChar_y - 23, 3, 3);
    //eye
    ellipse(gameChar_x - 2, gameChar_y - 42, 2, 2);
    stroke(116, 58, 8);
    strokeWeight(2);
    fill(116, 58, 8);
    //"hair"
    line(gameChar_x, gameChar_y - 51, gameChar_x - 5, gameChar_y - 56);
    line(gameChar_x, gameChar_y - 49, gameChar_x, gameChar_y - 56);
    line(gameChar_x, gameChar_y - 51, gameChar_x + 5, gameChar_y - 56);
    //arm
    line(gameChar_x, gameChar_y - 27, gameChar_x, gameChar_y - 15);
    //nose
    noStroke();
    fill(255, 0, 0);
    triangle(
      gameChar_x - 6,
      gameChar_y - 39,
      gameChar_x - 17,
      gameChar_y - 33,
      gameChar_x - 6,
      gameChar_y - 36
    );
  } else if (isRight) {
    // add your walking right code
    fill(255);
    stroke(1);
    strokeWeight(1);
    //lower body
    ellipse(gameChar_x, gameChar_y - 13, 20, 20);
    //legs
    ellipse(gameChar_x, gameChar_y, 7, 7);
    ellipse(gameChar_x + 12, gameChar_y - 7, 7, 7);
    //upper body
    ellipse(gameChar_x, gameChar_y - 26, 15, 15);
    //head
    ellipse(gameChar_x, gameChar_y - 40, 12, 17);
    fill(0);
    //button
    ellipse(gameChar_x + 4, gameChar_y - 23, 3, 3);
    //eye
    ellipse(gameChar_x + 2, gameChar_y - 42, 2, 2);
    stroke(116, 58, 8);
    strokeWeight(2);
    fill(116, 58, 8);
    //"hair"
    line(gameChar_x, gameChar_y - 51, gameChar_x - 5, gameChar_y - 56);
    line(gameChar_x, gameChar_y - 49, gameChar_x, gameChar_y - 56);
    line(gameChar_x, gameChar_y - 51, gameChar_x + 5, gameChar_y - 56);
    //arm
    line(gameChar_x, gameChar_y - 27, gameChar_x, gameChar_y - 15);
    //nose
    noStroke();
    fill(255, 0, 0);
    triangle(
      gameChar_x + 6,
      gameChar_y - 39,
      gameChar_x + 17,
      gameChar_y - 33,
      gameChar_x + 6,
      gameChar_y - 36
    );
  } else if (isFalling || isPlummeting) {
    // add your jumping facing forwards code
    fill(255);
    stroke(1);
    strokeWeight(1);
    //lower body
    ellipse(gameChar_x, gameChar_y - 23, 20, 20);
    //legs
    ellipse(gameChar_x - 7, gameChar_y - 13, 7, 7);
    ellipse(gameChar_x + 7, gameChar_y - 13, 7, 7);
    //upper body
    ellipse(gameChar_x, gameChar_y - 36, 15, 15);
    //head
    ellipse(gameChar_x, gameChar_y - 50, 12, 17);
    fill(0);
    //button
    ellipse(gameChar_x, gameChar_y - 33, 3, 3);
    //eyes
    ellipse(gameChar_x - 2, gameChar_y - 52, 2, 2);
    ellipse(gameChar_x + 2, gameChar_y - 52, 2, 2);
    stroke(116, 58, 8);
    strokeWeight(2);
    fill(116, 58, 8);
    //"hair"
    line(gameChar_x, gameChar_y - 61, gameChar_x - 5, gameChar_y - 66);
    line(gameChar_x, gameChar_y - 59, gameChar_x, gameChar_y - 66);
    line(gameChar_x, gameChar_y - 61, gameChar_x + 5, gameChar_y - 66);
    //arms
    line(gameChar_x - 7, gameChar_y - 37, gameChar_x - 15, gameChar_y - 57);
    line(gameChar_x + 7, gameChar_y - 37, gameChar_x + 15, gameChar_y - 57);
    //nose
    noStroke();
    fill(255, 0, 0);
    triangle(
      gameChar_x - 2,
      gameChar_y - 49,
      gameChar_x - 10,
      gameChar_y - 43,
      gameChar_x + 2,
      gameChar_y - 49
    );
  } else {
    // add your standing front facing code
    fill(255);
    stroke(1);
    strokeWeight(1);
    //lower body
    ellipse(gameChar_x, gameChar_y - 13, 20, 20);
    //legs
    ellipse(gameChar_x - 5, gameChar_y, 7, 7);
    ellipse(gameChar_x + 5, gameChar_y, 7, 7);
    //upper body
    ellipse(gameChar_x, gameChar_y - 26, 15, 15);
    //head
    ellipse(gameChar_x, gameChar_y - 40, 12, 17);
    fill(0);
    //button
    ellipse(gameChar_x, gameChar_y - 23, 3, 3);
    //eyes
    ellipse(gameChar_x - 2, gameChar_y - 42, 2, 2);
    ellipse(gameChar_x + 2, gameChar_y - 42, 2, 2);
    stroke(116, 58, 8);
    strokeWeight(2);
    fill(116, 58, 8);
    //"hair"
    line(gameChar_x, gameChar_y - 51, gameChar_x - 5, gameChar_y - 56);
    line(gameChar_x, gameChar_y - 49, gameChar_x, gameChar_y - 56);
    line(gameChar_x, gameChar_y - 51, gameChar_x + 5, gameChar_y - 56);
    //arms
    line(gameChar_x - 7, gameChar_y - 27, gameChar_x - 15, gameChar_y - 17);
    line(gameChar_x + 7, gameChar_y - 27, gameChar_x + 15, gameChar_y - 17);
    //nose
    noStroke();
    fill(255, 0, 0);
    triangle(
      gameChar_x - 2,
      gameChar_y - 39,
      gameChar_x - 10,
      gameChar_y - 33,
      gameChar_x + 2,
      gameChar_y - 39
    );
  }
}

// ---------------------------
// Background render functions
// ---------------------------

// Function to draw cloud objects.
function drawClouds() {
  for (var i = 0; i < mountains.length; i++) {
    //cloud 1
    fill(224, 224, 224, 210);
    ellipse(clouds[i].x_pos, clouds[i].y_pos, 100 * 0.8, 100 * 0.8);
    ellipse(
      clouds[i].x_pos + 50 * 0.8,
      clouds[i].y_pos + 10 * 0.8,
      80 * 0.8,
      80 * 0.8
    );
    ellipse(
      clouds[i].x_pos - 50 * 0.8,
      clouds[i].y_pos + 10 * 0.8,
      80 * 0.8,
      80 * 0.8
    );
    ellipse(
      clouds[i].x_pos - 90 * 0.8,
      clouds[i].y_pos + 20 * 0.8,
      60 * 0.8,
      60 * 0.8
    );
    ellipse(
      clouds[i].x_pos + 90 * 0.8,
      clouds[i].y_pos + 20 * 0.8,
      60 * 0.8,
      60 * 0.8
    );
    //cloud 2
    fill(154, 153, 161, 210);
    ellipse(
      clouds[i].x_pos - 100 * 0.8,
      clouds[i].y_pos + 30 * 0.8,
      50 * 0.8,
      50 * 0.8
    );
    ellipse(
      clouds[i].x_pos - 125 * 0.8,
      clouds[i].y_pos + 40 * 0.8,
      30 * 0.8,
      30 * 0.8
    );
    ellipse(
      clouds[i].x_pos - 75 * 0.8,
      clouds[i].y_pos + 40 * 0.8,
      30 * 0.8,
      30 * 0.8
    );
    //cloud 3
    ellipse(
      clouds[i].x_pos + 110 * 0.8,
      clouds[i].y_pos + 30 * 0.8,
      50 * 0.8,
      50 * 0.8
    );
    ellipse(
      clouds[i].x_pos + 85 * 0.8,
      clouds[i].y_pos + 40 * 0.8,
      30 * 0.8,
      30 * 0.8
    );
    ellipse(
      clouds[i].x_pos + 135 * 0.8,
      clouds[i].y_pos + 40 * 0.8,
      30 * 0.8,
      30 * 0.8
    );
  }
}

// Function to draw mountains objects.
function drawMountains() {
  for (var i = 0; i < mountains.length; i++) {
    //big mountain 1
    fill(99, 106, 136);
    triangle(
      mountains[i].x_pos,
      mountains[i].y_pos,
      mountains[i].x_pos + 170 * 0.95,
      mountains[i].y_pos - 282 * 0.95,
      mountains[i].x_pos + 340 * 0.95,
      mountains[i].y_pos
    );
    //big mountain 2
    fill(110, 118, 150);
    triangle(
      mountains[i].x_pos - 30,
      mountains[i].y_pos,
      mountains[i].x_pos + 60 * 0.95,
      mountains[i].y_pos - 232 * 0.95,
      mountains[i].x_pos + 170 * 0.95,
      mountains[i].y_pos
    );
    //medium mountain 3
    fill(133, 137, 166);
    triangle(
      mountains[i].x_pos + 20,
      mountains[i].y_pos,
      mountains[i].x_pos + 160 * 0.95,
      mountains[i].y_pos - 152 * 0.95,
      mountains[i].x_pos + 280 * 0.95,
      mountains[i].y_pos
    );
  }
}

// Function to draw trees objects.
function drawTrees() {
  for (var i = 0; i < trees_x.length; i++) {
    //trunk
    fill(43, 24, 14);
    rect(trees_x[i] - 10, treePos_y + 90, 20, 60);
    //branches
    noFill();
    stroke(43, 24, 14);
    strokeWeight(5);
    bezier(
      trees_x[i] + 8,
      treePos_y + 90,
      trees_x[i] + 50,
      treePos_y + 60,
      trees_x[i] + 60,
      treePos_y + 10,
      trees_x[i] + 60,
      treePos_y + 10
    );
    bezier(
      trees_x[i] - 8,
      treePos_y + 90,
      trees_x[i] - 50,
      treePos_y + 60,
      trees_x[i] - 60,
      treePos_y + 10,
      trees_x[i] - 60,
      treePos_y + 10
    );
    bezier(
      trees_x[i] + 3,
      treePos_y + 90,
      trees_x[i] + 30,
      treePos_y + 30,
      trees_x[i] + 30,
      treePos_y + 30,
      trees_x[i] + 30,
      treePos_y - 5
    );
    bezier(
      trees_x[i] - 3,
      treePos_y + 90,
      trees_x[i] - 30,
      treePos_y + 30,
      trees_x[i] - 30,
      treePos_y + 30,
      trees_x[i] - 30,
      treePos_y - 5
    );
    bezier(
      trees_x[i] - 25,
      treePos_y + 75,
      trees_x[i] - 50,
      treePos_y + 90,
      trees_x[i] - 50,
      treePos_y + 80,
      trees_x[i] - 65,
      treePos_y + 70
    );
    bezier(
      trees_x[i] + 25,
      treePos_y + 75,
      trees_x[i] + 50,
      treePos_y + 90,
      trees_x[i] + 50,
      treePos_y + 80,
      trees_x[i] + 65,
      treePos_y + 70
    );
    bezier(
      trees_x[i] - 25,
      treePos_y + 75,
      trees_x[i] - 50,
      treePos_y + 90,
      trees_x[i] - 50,
      treePos_y + 80,
      trees_x[i] - 65,
      treePos_y + 70
    );
    bezier(
      trees_x[i] - 25,
      treePos_y + 40,
      trees_x[i] - 10,
      treePos_y + 35,
      trees_x[i] - 10,
      treePos_y + 45,
      trees_x[i],
      treePos_y + 30
    );
    bezier(
      trees_x[i] + 27,
      treePos_y + 20,
      trees_x[i],
      treePos_y + 10,
      trees_x[i] - 10,
      treePos_y + 10,
      trees_x[i],
      treePos_y
    );
    //snow on trees
    noStroke();
    fill(255, 200);
    //first snow from the left
    ellipse(trees_x[i] - 44, treePos_y + 79, 10, 7);
    ellipse(trees_x[i] - 49, treePos_y + 81, 8, 5);
    ellipse(trees_x[i] - 39, treePos_y + 81, 8, 5);
    //second snow from the left
    ellipse(trees_x[i] - 10, treePos_y + 35, 10, 7);
    ellipse(trees_x[i] - 14, treePos_y + 37, 8, 5);
    ellipse(trees_x[i] - 6, treePos_y + 33, 8, 5);
    //third snow from the left
    ellipse(trees_x[i] + 16, treePos_y + 10, 15, 10);
    ellipse(trees_x[i] + 10, treePos_y + 9, 13, 8);
    ellipse(trees_x[i] + 20, treePos_y + 14, 13, 8);
    //fourth snow from the left
    ellipse(trees_x[i] + 45, treePos_y + 76, 15, 10);
    ellipse(trees_x[i] + 40, treePos_y + 79, 13, 8);
    ellipse(trees_x[i] + 50, treePos_y + 79, 13, 8);
  }
}

// ---------------------------------
// Canyon render and check functions
// ---------------------------------

// Function to draw canyon objects.

function drawCanyon(t_canyon) {
  fill(99);
  rect(t_canyon.x_pos, floorPos_y, t_canyon.width, height);
  fill(70);
  rect(t_canyon.x_pos + 10, floorPos_y, t_canyon.width - 20, height);
  //water
  fill(123, 193, 239);
  rect(t_canyon.x_pos + 10, floorPos_y + 80, t_canyon.width - 20, height / 4);
}

// Function to check character is over a canyon.

function checkCanyon(t_canyon) {
  if (
    gameChar_world_x > t_canyon.x_pos &&
    gameChar_world_x < t_canyon.x_pos + t_canyon.width &&
    gameChar_y >= floorPos_y
  ) {
    isPlummeting = true;
    gameChar_y += 5;
  } else {
    isPlummeting = false;
  }
}

// ----------------------------------
// Collectable items render and check functions
// ----------------------------------

// Function to draw collectable objects.

function drawCollectable(t_collectable) {
  fill(255, 223, 128);
  noStroke();
  triangle(
    t_collectable.x_pos,
    t_collectable.y_pos,
    t_collectable.x_pos - 8,
    t_collectable.y_pos - 30,
    t_collectable.x_pos + 8,
    t_collectable.y_pos - 30
  );
  fill(165, 23, 105);
  strokeWeight(1);
  stroke(1);
  ellipse(t_collectable.x_pos, t_collectable.y_pos - 35, 20);
  fill(247, 196, 225);
  ellipse(t_collectable.x_pos, t_collectable.y_pos - 45, 18);
}

// Function to check character has collected an item.

function checkCollectable(t_collectable) {
  if (
    dist(
      gameChar_world_x,
      gameChar_y,
      t_collectable.x_pos,
      t_collectable.y_pos
    ) < 50
  ) {
    t_collectable.isFound = true;
  }
}

How to read a local image file in javascript? [duplicate]

I am reposting this question, don’t mark as duplicate. this is not duplicate of this question

I have a JSON

MyJson = {name:"file1",path:"d://photos/photo.jpg"}

I want to get photo.jpg in a const variable

const file: File = MyJson.path;

I want to perform multiple operations on file. If i can read it as dataURL then also that is fine. Please help me
How can i do this using javascript or angular?

React script is found but it won’t render the simple hello world element

I’m new to react and i’m just testing out a simple render at the moment. I get no errors in the browser but nothing shows up on my screen that appears in my javascript react file.

html

<html>
    <head>
         <script  type="text/babel" src="reactfile.js"> testing</script>
    </head>
<link rel="stylesheet" href="/styles.css">
<body id="app">
    <p>react test</p>
</body>
</html>

react javascript file

import React from 'react';
import ReactDOM from 'react-dom';
class Helloworld extends React.Component {
  render() {
    return (
      <div>
        <p>Hello world!</p>
      </div>
    );
  }
}

ReactDOM.render(<Helloworld />, document.getElementById('root'));

How to implement this method in Ruby? or is there third party lib to do this?

I have this ts function:

import { keccak_256 } from "js-sha3";
import { Buffer } from "buffer/";


export function getNamehash(name: string) {
  let node = "0000000000000000000000000000000000000000000000000000000000000000";

  if (name) {
    let labels = name.split(".");

    for (let i = labels.length - 1; i >= 0; i--) {
      let labelSha = keccak_256(labels[i]);
      node = keccak_256(Buffer.from(node + labelSha, "hex"));
    }   
  }

  return "0x" + node;
}

and when calling this method, it gives results like:

getNamehash("a")
// "0xc3025f6c23b9ab4d91adbcccf350072ec880c65db9a3f42e802fe4ceed56e728"

getNamehash("a.b")
// "0xa57dcb7e802753630ec035bae538ca332465791509b1375525fe8b3b0bada7ef"

getNamehash("abc.def")
// "0xc3025f6c23b9ab4d91adbcccf350072ec880c65db9a3f42e802fe4ceed56e728"

How to implement this method in Ruby?

How do I ensure that my media query sidebar nav closes without affect my main nav menu

In my max-width:320px media query I have a sidebar navigation as oppose to the regular normal bar that is in the other max-width’s. now the problem I’m experiencing is that every time I close my sidebar nav in max-width:320px. the regular menu in the largest width:1440px is removed because the browser’s element style is set to “display:none”. How do I get around this, close my sidebar nav without removing main nav in the other width?

html

 <div id="mynavbar" class="navbar">
        <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
        <div class="logo">
          <img src="{% static 'TheMachine Images/The Machine 2.png' %}" alt="">
        </div>
        <span class="HOME">HOME</span>
        <span class="ARTIST">ARTIST</span>
        <span class="ABOUTUS">ABOUT US</span>
        <div class="search-bar">
          <textarea name="" placeholder="Search" id="search-area" cols="16" rows="1"></textarea>
          <div class="search-icon">
            <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi-search" viewBox="0 0 16 16">
              <path d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z"/>
            </svg>
          </div>
        </div>
          <div class="rec">
            <span class="SignIn">SignIN</span>
          </div>
          <div class="rec2">
            <span class="SignUP">SignUp</span>
          </div>
          <span class="nav-menu" style="font-size: 17px; cursor:pointer" onclick="openNav()">&#9776;OPEN</span>

          <script>
            function openNav() {
              document.getElementById("mynavbar").style.display = "block";
            }
            function closeNav() {
              document.getElementById("mynavbar").style.display = "none";
            }
          </script>
      </div>

Navbar css

.navbar{
    position: absolute;
    height: 91px;
    width: 1094px !important;
    left: 152px;
    top: 46px;
    border-radius: 0px;
}

Navbar css (max-width:320px)

.navbar{
        height: 100%;
        width: 250px !important;
        position: fixed;
        z-index: 1;
        top: 0;
        left: 0;
        background-color: #111;
        overflow-x: hidden;
        padding-top: 60px;
    }
    .navbar a{
        padding: 8px 8px 8px 32px;
        text-decoration: none;
        font-size: 25px;
        color: #818181;
        display: block;
    }
    .navbar a:hover{
        color: #f1f1f1;
    }
    .closebtn{
        position: absolute;
        top: 0;
        right: 25px;
        font-size: 36px;
        margin-left: 50px;
    }
    .nav-menu{
        display: block;
        z-index: auto;
    }

How to convert html tag to styled html? (editorjs)

This is my code for converting editorjs json to html tag.

// store posts
const blogs = [{
    "time": 1641871834196,
    "blocks": [{
      "id": "nwATYHAhq-",
      "type": "paragraph",
      "data": {
        "text": "I wonder&nbsp;"
      }
    }],
    "version": "2.22.2"
  },
  {
    "time": 1641871849493,
    "blocks": [{
      "id": "nwATYHAhq-",
      "type": "paragraph",
      "data": {
        "text": "what is wrong"
      }
    }, {
      "id": "qx4OhycRav",
      "type": "paragraph",
      "data": {
        "text": "with this silly js?"
      }
    }],
    "version": "2.22.2"
  }
]


// retrieve posts
for (var i = 0; i < blogs.length; i++) {

  var getBlocks = blogs[i]['blocks'];
  //console.log('retrieving');
  //console.log(getBlocks);

  for (var y = 0; y < getBlocks.length; y++) {
    console.log('printing text.......');
    console.log(getBlocks[y]);
    var msg = convertDataToHtml(getBlocks);
    console.log(msg);
  }

  var addblog = document.createElement('div');
  var textmsg = document.createTextNode(msg);
  addblog.appendChild(textmsg);
  addblog.style.cssText = "border: 1px solid";
  document.getElementById('allblogs').appendChild(addblog);

  msg = '';

}

function convertDataToHtml(blocks) {
  var convertedHtml = "";
  blocks.map(block => {

    switch (block.type) {
      case "header":
        convertedHtml += `<h${block.data.level}>${block.data.text}</h${block.data.level}>`;
        break;
      case "embded":
        convertedHtml += `<div><iframe width="560" height="315" src="${block.data.embed}" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div>`;
        break;
      case "paragraph":
        convertedHtml += `<p>${block.data.text}</p>`;
        break;
      case "delimiter":
        convertedHtml += "<hr />";
        break;
      case "image":
        convertedHtml += `<img class="img-fluid" src="${block.data.file.url}" title="${block.data.caption}" /><br /><em>${block.data.caption}</em>`;
        break;
      case "list":
        convertedHtml += "<ul>";
        block.data.items.forEach(function(li) {
          convertedHtml += `<li>${li}</li>`;
        });
        convertedHtml += "</ul>";
        break;
      default:
        console.log("Unknown block type", block.type);
        break;
    }
  });
  return convertedHtml;

}

Then I have no idea how to convert html tag to styled html.

var parser = new DOMParser();
var msg = parser.parseFromString(msg, 'text/html');

I have tried this, but it comes [object HTMLDocument]

I want to zoom image but inside the div

I want to zoom the image inside the div but when I am trying to zoom the image the size of the div is also increasing.

<img src="" alt="Image Preview" id="zoom" class="image-preview__image">

   <div class="btn-group mt-2" role="group" aria-label="">
            <button ng-click="Size=100" class="btn btn-sm btn-group btn-outline-info" onclick="zoomout()" >100%</button>
            <button ng-click="Size=200"  class="btn btn-sm btn-group btn-outline-info"  onclick="zoomin()" >200%</button>
            <button ng-click="Size=300" class="btn btn-sm btn-group btn-outline-info">300%</button>
            <button ng-click="Size=400" class="btn btn-sm btn-group btn-outline-info">400%</button>
            </div>
    <script type="text/javascript">

   function zoomin() {
        var GFG = document.getElementById("zoom");
        var currHeight = GFG.clientHeight;
            GFG.style.height = (currHeight + 40) + "px";
    }
    function zoomout() {
        var GFG = document.getElementById("zoom");
        var currHeight = GFG.clientHeight;
            GFG.style.height = (currHeight - 40) + "px";
    }

Mirroring or clonning a div to another div

I was trying to mirror/clone a div into another div but I couldn’t find any solutions to this online. What I mean by clone is replicate everything live from one div to another. An example of this is when you hover on icons in your taskbar on Windows OS it shows you what is happening on that specific GUI. How can I achieve this? If there are no ways of live cloning , screenshotting that specific div and showing it on a separate div would be fine. One important thing to keep in mind is that the div to be cloned could contain elements like Images, text, videos, Iframes, etc… Any help on this or a nudge in the right direction is much appreciated. Thanks in advance.

//Things I tried 

let div =
  document.getElementById('testDiv');

html2canvas(div).then(
  function(canvas) {
    document
      .getElementById('#testDivClone')
      .appendChild(canvas);
  })


/////////////////////////////

$("#testDiv").clone().appendTo("#testDivClone");
#testDiv {
  position: absolute;
  top: 10%;
  width: 30%;
  height: 60%;
  background-color: green;
}

#testDiv iframe {
  width: 100%;
  height: 100%;
}

#testDivClone {
  position: absolute;
  top: 10%;
  right: 5%;
  width: 30%;
  height: 60%;
  background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.0/html2canvas.min.js" integrity="sha512-UcDEnmFoMh0dYHu0wGsf5SKB7z7i5j3GuXHCnb3i4s44hfctoLihr896bxM0zL7jGkcHQXXrJsFIL62ehtd6yQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<div id='testDiv'>
  <iframe id='testDivIframe' src="https://www.youtube.com/embed/CqRtQoSqSjk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

<canvas id='testDivClone'>

</canvas>

Django fails to load javascript file but has no trouble server a css file in the same directory

I receive a Failed to load resource: the server responded with a status of 404 (Not Found) for the javascript file. The page loads fine but the javascript resource isn’t obtained despite being in the same static folder as the css file which django has no trouble collecting.

settings.py

STATIC_URL = '/static/'
 
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
#STATIC_ROOT = os.path.abspath(os.path.join(os.path.dirname(BASE_DIR), 'static'))
STATIC_ROOT = 'static/'
STATIC_DIR = os.path.join(BASE_DIR, 'static')
STATICFILES_DIR=[STATIC_DIR]

html


{% load static %}
asdfs
<link rel="stylesheet" type="text/css" href="{% static 'polls/styles.css' %}">
<body id='app'>
    <p>i'm testing again</p>
      <li><a href="www.google.com">google</a></li>
  <script  type="text/javascript" src="{% static 'polls/reactfile.js'
%}"></script>
</body>
</html>

JavaScript Chrome Konsolu csv Hata Veri boş

with this code, it writes console texts, but it does not save as csv, it was full of downloaded data

chat_titles = [];
phone_numbers = [];
chats_container = getElementsByXPath('//*[@aria-label="Chat list"][@role="grid"]')[0];
do {
    beginning_length = chat_titles.length;
    all_chats = getElementsByXPath('//*[@data-testid="cell-frame-container"]', chats_container);
    lowest_loc = -1;
    lowest_loc_i = -1;
    for (i=0; i<all_chats.length; i++) {
        archive_check = getElementsByXPath('div[2]/div[1]/div[1]', all_chats[i])[0].innerText;
        if (archive_check == 'Archived') {
            console.log(i + ' - Archived');
        } else {
            chat_title = getElementsByXPath('div[2]/div[1]/div[1]/span', all_chats[i])[0].innerText;
            console.log(i + ' - ' + chat_title);
            back_buttons = getElementsByXPath('//*[@data-testid="back"]');
            if (back_buttons.length >= 2) {
                back_buttons[0].click();
                await sleep(1000);
            } else {
                if (lowest_loc < all_chats[i].getBoundingClientRect().top) {
                    lowest_loc = all_chats[i].getBoundingClientRect().top;
                    lowest_loc_i = i;
                }
                if (chat_titles.indexOf(chat_title) == -1) {
                    all_chats[i].click();
                    simulateMouseEvents(all_chats[i], 'mousedown');
                    await sleep(2000);
                    chat_window = document.getElementById('main');
                    group_members_container = getElementsByXPath('//*[contains(text(), ", You")]', chat_window)
                    if (group_members_container.length > 0) {
                        group_members = group_members_container[0].title.split(', ');
                        for (group_member_i=0; group_member_i<group_members.length; group_member_i++) {
                            if (!group_members[group_member_i].match(/[a-z]/i)) {
                                phone_number = group_members[group_member_i].replace(/[^d]/g, '');
                                if (phone_numbers.indexOf(phone_number) == -1) {
                                    phone_numbers.push(phone_number);
                                }
                            }
                        }
                    }
                    chat_titles.push(chat_title);
                }
            }
        }
    }
    all_chats[lowest_loc_i].scrollIntoView();
    ending_length = chat_titles.length;
    console.log(ending_length + ' chats scanned.');
    await sleep(500);
} while (beginning_length != ending_length)

download_data(phone_numbers);
console.log('Done');


function getElementsByXPath(xpath, parent) {
    let results = [];
    let query = document.evaluate(xpath, parent || document,
        null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    for (let i = 0, length = query.snapshotLength; i < length; ++i) {
        results.push(query.snapshotItem(i));
    }
    return results;
}

function simulateMouseEvents(element, eventName) {
    var mouseEvent= document.createEvent ('MouseEvents');
    mouseEvent.initEvent (eventName, true, true);
    element.dispatchEvent (mouseEvent);
}

function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

function download_data(data) {
    let csvContent = "data:text/csv;charset=utf-8,";
    data.forEach(function(rowArray) {
        let row = '"' + rowArray + '"';
        csvContent += row + "rn";
    });
    encodedUri = encodeURI(csvContent);
    link = document.createElement("a");
    link.setAttribute("href", encodedUri);
    link.setAttribute("download", "phone_numbers.csv");
    document.body.appendChild(link);
    link.click();
}

I Paste and Run F12 Chrome Console, But It Outputs Console.log and Does Not Save Data And Csvye

It extracts the numbers, but when the process is finished, it does not save as .csv. Help me, I tried a lot, I could not fix it.

Using eslint with javascript- Unable to resolve path to module

I was having this problem!

enter image description here

The reference exists and it works, the problem is that eslint cannot find it. I fix it as follows!

.eslintrc.json

    {
  "env": {
    "browser": true,
    "es2021": true,
    "node": true
  },
  "extends": ["plugin:import/recommended", "plugin:react/recommended", "standard"],
  "parserOptions": {
    "ecmaFeatures": {
      "jsx": true
    },
    "ecmaVersion": 12,
    "sourceType": "module"
  },
  "plugins": ["react"],
  "rules": {
    "semi": [2, "always"],
    "comma-dangle": [
      "error",
      {
        "arrays": "only-multiline",
        "objects": "only-multiline",
        "imports": "only-multiline",
        "exports": "only-multiline",
        "functions": "only-multiline"
      }
    ],
    "space-before-function-paren": 0,
    "spaced-comment": [
      "error",
      "never",
      {
        "line": {
          "markers": ["/"],
          "exceptions": ["-", "+"]
        },
        "block": {
          "markers": ["!", "-", "+"],
          "exceptions": ["*"],
          "balanced": true
        }
      }
    ]
  },
  "settings": {
    "import/resolver": {
      "node": {
        "extensions": [".js", ".jsx"],
        "moduleDirectory": ["node_modules", "src/"]
      }
    }
  }
}

I assume eslint installed and has problems integrating express node and react js projects

You can use the automatic configuration of eslint follow the steps and when it is installed configure your .eslint file add the description of setting

"settings": {
"import/resolver": {
  "node": {
    "extensions": [".js", ".jsx"],
    "moduleDirectory": ["node_modules", "src/"]
  }
}

}

https://eslint.org/docs/user-guide/getting-started