Skip to content

Instantly share code, notes, and snippets.

@keevie
Last active May 31, 2022 19:25
Show Gist options
  • Save keevie/41cd43089e4b67d5ed90d7f9772edafe to your computer and use it in GitHub Desktop.
Save keevie/41cd43089e4b67d5ed90d7f9772edafe to your computer and use it in GitHub Desktop.
fakepeople

Table friends

in a lounge layout, join a table with camera on and mic off, then run this bookmarklet

javascript: (function() { fetch('https://gist.githubusercontent.com/keevie/fc059dfe3f56e1cd908f4a57f2d0af82/raw/87fc0d0346819cb7caf17e8f8456b630cb740157/fake-people.json').then(res => res.json()) .then(friendImageArray => { function shuffle(array) { let currentIndex = array.length, randomIndex; while (currentIndex != 0) { randomIndex = Math.floor(Math.random() * currentIndex); currentIndex--; [array[currentIndex], array[randomIndex]] = [ array[randomIndex], array[currentIndex]]; } return array; } friendImageUrls = shuffle(friendImageArray).slice(-5); friendNames = [ 'Zachary Simms', 'Claire Gibson', 'Jasmine Ginnish', 'Vilho Rintala', 'Martin Isdahl', ]; streamContainer = document.querySelector('vk-call').shadowRoot.querySelector('.VideoCall_Streams'); for (const i of Array(4).keys()) { streamContainer.appendChild(streamContainer.children[0].cloneNode(true)); } let streamWidth = streamContainer.children[0].getBoundingClientRect().width / 2; streamContainer.style = `--video-stream-min-size: ${streamWidth}px`; for (const v of streamContainer.querySelectorAll('video')) { friendImageUrls.push(v.src = friendImageUrls.shift()); v.outerHTML = v.outerHTML.replace('video', 'img'); } for (const el of streamContainer.querySelectorAll('.StreamProfile_Name')) { el.innerText = friendNames.shift(); } let myTable = [...document.querySelectorAll('.table')] .find(t => t.innerHTML.match(/(you)/)); for (const p of myTable.querySelectorAll('.participant')) { p.style.backgroundImage = `url(${friendImageUrls.shift()})`; p.style.backgroundSize = 'cover'; p.style.backgroundPosition = 'center'; p.innerHTML = ''; }; }); })()

@dchester
Copy link

dchester commented Jan 21, 2022

Populate a stage audience

audienceCount = 50

document.querySelector('vk-call').vueComponent.configure({ dummyPeersCount: audienceCount })

for (const img of document.querySelector('vk-call').shadowRoot.querySelectorAll('img[src^="/avatar"]')) {
  img.src = `https://randomuser.me/api/portraits/${Math.random() > 0.5 ? 'men' : 'women'}/${Math.random() * 100 | 0}.jpg`;
}

To add this as a bookmarklet, make a bookmark with any title, and put the following as the url:
javascript:let audienceCount = prompt('audience size'); document.querySelector('vk-call').vueComponent.configure({ dummyPeersCount: audienceCount }); setTimeout(() => { for (const img of document.querySelector('vk-call').shadowRoot.querySelectorAll('img[src^="/avatar"]')) { img.src = `https://randomuser.me/api/portraits/${Math.random() > 0.5 ? 'men' : 'women'}/${Math.random() * 100 | 0}.jpg`; }},1000);void(0);

Put a person on stage


speakerImageUrl = 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/4%2F499118%2F4906306215360126%2Fimage.jpeg'
speakerName = 'Margie Nelson';

video = document.querySelector('vk-call').shadowRoot.querySelector('.VideoCall_Stage video');
video.pause();
video.setAttribute('src', speakerImageUrl)
document.querySelector('vk-call').shadowRoot.querySelector('.StreamProfile_Name').innerText = speakerName;

bookmarklet:
javascript:const speakerImageUrl='https://kingfisher-file-uploads-prod.s3.amazonaws.com/4%2F499118%2F4906306215360126%2Fimage.jpeg';const speakerName='Margie Nelson';const video = document.querySelector('vk-call').shadowRoot.querySelector('.VideoCall_Stage video');video.pause();video.setAttribute('src', speakerImageUrl);video.outerHTML=video.outerHTML.replace('video','img');document.querySelector('vk-call').shadowRoot.querySelector('.StreamProfile_Name').innerText=speakerName;void(0);

Fill out event lobby


for (const p of document.querySelectorAll('.participant.is-empty, .lobby-attendee')) {
  p.style.backgroundImage = `url(https://randomuser.me/api/portraits/${Math.random() > 0.5 ? 'men' : 'women'}/${Math.random() * 100 | 0}.jpg`;
  p.style.backgroundSize = 'cover';
}

stage = document.querySelector('.minimal-stage .title.muted')
stage.innerHTML = ''
for (const i of Array(2).keys()) {
  stagePerson = new Image;
  stagePerson.style.margin = '4px';
  stagePerson.src = `https://randomuser.me/api/portraits/${Math.random() > 0.5 ? 'men' : 'women'}/${Math.random() * 100 | 0}.jpg`
  stage.appendChild(stagePerson);
}
stage.style.opacity = 1;
stage.nextElementSibling && stage.nextElementSibling.remove()

bookmarklet:
javascript:for (const p of document.querySelectorAll('.participant.is-empty, .lobby-attendee')) { p.style.backgroundImage = `url(https://randomuser.me/api/portraits/${Math.random() > 0.5 ? 'men' : 'women'}/${Math.random() * 100 | 0}.jpg`; p.style.backgroundSize = 'cover'; };let stage = document.querySelector('.minimal-stage .title.muted'); stage.innerHTML = ''; for (const i of Array(2).keys()) { stagePerson = new Image; stagePerson.style.margin = '4px'; stagePerson.src = `https://randomuser.me/api/portraits/${Math.random() > 0.5 ? 'men' : 'women'}/${Math.random() * 100 | 0}.jpg`; stage.appendChild(stagePerson); }; stage.style.opacity = 1; stage.nextElementSibling && stage.nextElementSibling.remove();void(0);

Table friends

Go to a table, turn off your mic, and turn on your video

friendImageUrls = [
  'https://kingfisher-file-uploads-prod.s3.amazonaws.com/4%2F499118%2F4906306215360126%2Fimage.jpeg',
  'https://kingfisher-file-uploads-prod.s3.amazonaws.com/5%2F499118%2F8745175034683414%2Fimage.jpeg',
  'https://kingfisher-file-uploads-prod.s3.amazonaws.com/5%2F499118%2F6223098080115820%2Fimage.jpeg',
  'https://kingfisher-file-uploads-prod.s3.amazonaws.com/5%2F499118%2F3741642030769182%2Fimage.jpeg',
  'https://kingfisher-file-uploads-prod.s3.amazonaws.com/5%2F499118%2F2135866651177586%2Fimage.jpeg',
]

friendNames = [
  'Zachary Simms',
  'Claire Gibson',
  'Jasmine Ginnish',
  'Vilho Rintala',
  'Martin Isdahl',
]

streamContainer = document.querySelector('vk-call').shadowRoot.querySelector('.VideoCall_Streams');
for (const i of Array(4).keys()) {
  streamContainer.appendChild(streamContainer.children[0].cloneNode(true));
}
streamWidth = streamContainer.children[0].getBoundingClientRect().width / 2;
streamContainer.style = `--video-stream-min-size: ${streamWidth}px`;

for (const v of streamContainer.querySelectorAll('video')) {
  friendImageUrls.push(v.src = friendImageUrls.shift());
  v.outerHTML = v.outerHTML.replace('video', 'img');
}

for (const el of streamContainer.querySelectorAll('.StreamProfile_Name')) {
  el.innerText = friendNames.shift();
}

myTable = [...document.querySelectorAll('.table')].find(t => t.innerHTML.match(/\(you\)/));

for (const p of myTable.querySelectorAll('.participant')) {
  p.style.backgroundImage = `url(${friendImageUrls.shift()})`;
  p.style.backgroundSize = 'cover';
  p.style.backgroundPosition = 'center';
  p.innerHTML = '';
}

bookmarklet
javascript:let friendImageUrls = [ 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/4%2F499118%2F4906306215360126%2Fimage.jpeg', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/5%2F499118%2F8745175034683414%2Fimage.jpeg', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/5%2F499118%2F6223098080115820%2Fimage.jpeg', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/5%2F499118%2F3741642030769182%2Fimage.jpeg', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/5%2F499118%2F2135866651177586%2Fimage.jpeg', ]; let friendNames = [ 'Zachary Simms', 'Claire Gibson', 'Jasmine Ginnish', 'Vilho Rintala', 'Martin Isdahl', ]; let streamContainer = document.querySelector('vk-call').shadowRoot.querySelector('.VideoCall_Streams'); for (const i of Array(4).keys()) { streamContainer.appendChild(streamContainer.children[0].cloneNode(true)); }; let streamWidth = streamContainer.children[0].getBoundingClientRect().width / 2; streamContainer.style = `--video-stream-min-size: ${streamWidth}px`; for (const v of streamContainer.querySelectorAll('video')) { friendImageUrls.push(v.src = friendImageUrls.shift()); v.outerHTML = v.outerHTML.replace('video', 'img'); } for (const el of streamContainer.querySelectorAll('.StreamProfile_Name')) { el.innerText = friendNames.shift(); } let myTable = [...document.querySelectorAll('.table')].find(t => t.innerHTML.match(/\(you\)/)); for (const p of myTable.querySelectorAll('.participant')) { p.style.backgroundImage = `url(${friendImageUrls.shift()})`; p.style.backgroundSize = 'cover'; p.style.backgroundPosition = 'center'; p.innerHTML = ''; };void(0);

@dchester
Copy link

dchester commented Jan 24, 2022

Put people in the sidebar of a lounge

function fill(name) {
  const rooms = document.querySelectorAll('.sidebar .table');
  if (name) {
    var room = [...rooms].find(r => r.innerHTML.match(name));
  } else {
    var room = rooms[Math.random() * rooms.length | 0];
  }
  let seat = room.querySelector('.participant.is-empty');
  if (!seat) {
    const oldSeat = room.querySelector('.participant');
    seat = oldSeat.cloneNode(oldSeat);
    seat.removeChild(seat.querySelector(".avatar"));
    oldSeat.parentNode.appendChild(seat);
  }
  seat.style.backgroundImage = `url(https://randomuser.me/api/portraits/${Math.random() > 0.5 ? 'men' : 'women'}/${Math.random() * 100 | 0}.jpg)`;
  seat.classList.remove('is-empty');
  seat.style.backgroundSize = 'cover';
}

bookmarklet:
javascript:(function() { function fill(name) { let rooms = document.querySelectorAll('.sidebar .table'); if (name) { var room = [...rooms].find(r => r.innerHTML.match(name)); } else { var room = rooms[Math.random() * rooms.length | 0]; } let seat = room.querySelector('.participant.is-empty'); if (!seat) { const oldSeat = room.querySelector('.participant'); seat = oldSeat.cloneNode(oldSeat); seat.removeChild(seat.querySelector(".avatar")); oldSeat.parentNode.appendChild(seat); }; seat.style.backgroundImage = `url(https://randomuser.me/api/portraits/${Math.random() > 0.5 ? 'men' : 'women'}/${Math.random() * 100 | 0}.jpg)`; seat.classList.remove('is-empty'); seat.style.backgroundSize = 'cover'; }; for (let idx=0;idx<10;idx++) { fill(); } })();

@keevie
Copy link
Author

keevie commented Jan 24, 2022

https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_191550348.jpeg
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_282202229.jpeg
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_332261972.jpeg
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_361276319.jpeg
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_365270287.jpeg
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_373436096.jpeg
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_377886066.jpeg
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_382793132+(1).jpeg
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-1.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-10.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-11.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-12.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-2.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-3.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-4.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-5.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-6.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-7.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-8.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-9.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_387897508+(1).jpeg
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_389026787.jpeg
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-1.png

https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-2.png

https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-3.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-4.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-5.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-6.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-7.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-8.png
https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-9.png

@JenGoodridge
Copy link

Populate your table with five friends.
Requires that you be in a room, muted, with the camera on.

javascript: (function() {let friendImageArray= [ 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_191550348.jpeg','https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_282202229.jpeg', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_332261972.jpeg', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_361276319.jpeg', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_365270287.jpeg', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_373436096.jpeg', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_377886066.jpeg', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_382793132+(1).jpeg', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-1.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-10.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-11.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-12.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-2.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-3.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-4.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-5.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-6.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-7.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-8.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_386163619-9.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_387897508+(1).jpeg', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_389026787.jpeg', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-1.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-2.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-3.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-4.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-5.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-6.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-7.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-8.png', 'https://kingfisher-file-uploads-prod.s3.amazonaws.com/stockphotos/AdobeStock_398759245-9.png', ]; function shuffle(array) {let currentIndex = array.length, randomIndex; while (currentIndex != 0) { randomIndex = Math.floor(Math.random() * currentIndex); currentIndex--; [array[currentIndex], array[randomIndex]] = [ array[randomIndex], array[currentIndex]]; } return array;} friendImageUrls = shuffle(friendImageArray).slice(-5); friendNames = [ 'Zachary Simms', 'Claire Gibson', 'Jasmine Ginnish', 'Vilho Rintala', 'Martin Isdahl', ]; streamContainer = document.querySelector('vk-call').shadowRoot.querySelector('.VideoCall_Streams'); for (const i of Array(4).keys()) { streamContainer.appendChild(streamContainer.children[0].cloneNode(true)); } let streamWidth = streamContainer.children[0].getBoundingClientRect().width / 2; streamContainer.style = --video-stream-min-size: ${streamWidth}px; for (const v of streamContainer.querySelectorAll('video')) { friendImageUrls.push(v.src = friendImageUrls.shift()); v.outerHTML = v.outerHTML.replace('video', 'img'); } for (const el of streamContainer.querySelectorAll('.StreamProfile_Name')) { el.innerText = friendNames.shift(); } myTable = [...document.querySelectorAll('.table')].find(t => t.innerHTML.match(/(you)/)); for (const p of myTable.querySelectorAll('.participant')) { p.style.backgroundImage = url(${friendImageUrls.shift()}); p.style.backgroundSize = 'cover'; p.style.backgroundPosition = 'center'; p.innerHTML = ''; }})()

@keevie
Copy link
Author

keevie commented Jan 26, 2022

###put people in the tables of a hybrid layout

bookmarklet
javascript:function fill(name) { let rooms = document.querySelectorAll('.tables-container .table'); if (name) { var room = [...rooms].find(r => r.innerHTML.match(name)); } else { var room = rooms[Math.random() * rooms.length | 0]; } let seat = room.querySelector('.participant.is-empty'); if (!seat) { const oldSeat = room.querySelector('.participant'); seat = oldSeat.cloneNode(oldSeat); seat.removeChild(seat.querySelector(".avatar")); oldSeat.parentNode.appendChild(seat); } seat.style.backgroundImage = `url(https://randomuser.me/api/portraits/${Math.random() > 0.5 ? 'men' : 'women'}/${Math.random() * 100 | 0}.jpg)`; seat.classList.remove('is-empty'); seat.style.backgroundSize = 'cover'; } for (const i of Array(10).keys()) { fill(); };void(0);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment