You are reading content from Scuttlebutt
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Daan %f5bZz1REf8OZ27JL0YQHtcKHN7UcRDVz9Bk6Z43M+RY=.sha256

😆 😛 🤦 🤷 🙈 🙂 😐
These are the ones I use the most often anyhow. It's a very 2020/2021 list I guess.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has chosen not to be hosted publicly
@Anders %h139/e0DajFtIeYNtFCuzerPYs/Bt2FYKDtSN9V3vU0=.sha256

✌️ 🌞 🍕 😃 😄 😏 🌶️

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@andrestaltz %UR1LE/abhP7eDlcm8SIlrVoVbtocDNHN0TAbNh0nYHI=.sha256

There's too many ties in this vote thread, so I decided to figure out what's the top ranking of emoji reactions in the scuttleverse overall, so I made a tiny script using ssb-db2 to calculate that for me.

The script is

const Caps = require('ssb-caps');
const SecretStack = require('secret-stack');
const sleep = require('util').promisify(setTimeout);
const pify = require('promisify-4loc');
const config = require('ssb-config');

const THUMBS_UP_UNICODE = '\ud83d\udc4d';
const DIG_UNICODE = '\u270c\ufe0f';
const HEART_UNICODE = '\u2764\ufe0f';

function voteExprToReaction(expression) {
  if (expression === 'Like') return THUMBS_UP_UNICODE;
  if (expression === 'like') return THUMBS_UP_UNICODE;
  if (expression === 'Yup') return THUMBS_UP_UNICODE;
  if (expression === 'heart') return HEART_UNICODE;
  if (expression === 'dig') return DIG_UNICODE;
  return expression !== null && expression !== void 0
    ? expression
    : THUMBS_UP_UNICODE;
}

(async function main() {
  const ssb = SecretStack({appKey: Caps.shs})
    .use(require('ssb-db2'))
    .call(null, config);

  const {where, type, toAsyncIter, paginate, descending} = ssb.db.operators;

  const aiter = ssb.db.query(
    where(type('vote')),
    descending(),
    paginate(50),
    toAsyncIter(),
  );

  const freqs = new Map();
  for await (const page of aiter) {
    for (const msg of page) {
      const {vote} = msg.value.content;
      if (!vote) continue;
      if (!vote.value) continue;
      if (!vote.expression) continue;
      if (vote.value > 0) {
        const reaction = voteExprToReaction(vote.expression);
        freqs.set(reaction, (freqs.get(reaction) || 0) + 1);
      }
    }
  }

  const sorted = [...freqs.entries()].sort((a, b) => a[1] - b[1]);
  for (const [reaction, freq] of sorted) {
    console.log(`${reaction}\t${freq}`);
  }
  await sleep(1000);
  await pify(ssb.close)();
})();

The top 50 reactions are

🌱 7
🤣 7
🤯 8
👌 8
💚 8
👏 8
💫 8
😀 8
🤞 9
😆 10
🤮 10
🥰 10
🙌 10
🙏 10
😅 11
☕ 11
💙 11
🙁 11
🥳 12
😬 12
🖖 13
😔 17
😎 17
✊ 18
🤤 21
👎 21
👋 25
👀 26
🎉 26
☝️ 29
😍 31
🌿 32
😂 33
🤩 40
💯 54
😊 101
💖 103
🤔 137
♥ 154
😢 233
😮 248
+1 484
Star 564
😄 610
nod 733
yup 1103
Dig 19214
✌️ 20064
❤️ 26224
👍 354956

User has not chosen to be hosted publicly
@SoapDog (Macbook Air M1) %mK8A7tSAIB7rROQvFO8EOTUIRv/CV6wBppAAAhh2Py4=.sha256

db2 queries are sweet

Join Scuttlebutt now