Skip to content

Instantly share code, notes, and snippets.

View connor-davis's full-sized avatar
💡
Learning

Connor Davis connor-davis

💡
Learning
View GitHub Profile
@connor-davis
connor-davis / importxlsx.js
Created October 22, 2021 07:31
xlsx import
let element = document.createElement('input');
element.type = 'file';
element.accept = '.xls,.xlsx';
element.click();
element.addEventListener('change', ({ target: { files } }) => {
let file = files[0];
let filename = file.name;
let reader = new FileReader();
reader.onloadend = () => {
let data = reader.result;
import { createSignal, onMount } from "solid-js";
let Cropper = ({ src, onContinue = () => {}, onCancel = () => {} }) => {
let [base, setBase] = createSignal({});
let [bounds, setBounds] = createSignal({});
let [active, setActive] = createSignal(false);
onMount(() => {
let srcImage = document.getElementById("srcImage");
let canvas = document.getElementById("cropper");
/**
* Create 2 users.
*/
let userA = await SEA.pair();
let userB = await SEA.pair();
let useMessages = (chat) => {
let [messages, setMessages] = useState([]);
useEffect(() => {
@connor-davis
connor-davis / generate-chat-gun
Created September 11, 2021 19:20
This generates a new chat using Gun in Lone Wolf!
let generateChat = async (chatWith) => {
sessionStorage.setItem(
'actualUser',
JSON.stringify({
epriv: user.pair().epriv,
priv: user.pair().priv,
epub: user.pair().epub,
pub: user.pair().pub,
})
);
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>capture microphone audio into buffer</title>
</head>
<body>
<audio id="player" controls></audio>
<input
type="text"
id="username"
'use strict';
let dotenv = require('dotenv');
let express = require('express');
let http = require('http');
let uuid = require('uuid');
let { json, urlencoded } = require('body-parser');
let compression = require('compression');
let cors = require('cors');
let relay = require('./relay')();
@connor-davis
connor-davis / index.js
Created May 25, 2021 13:18
How I would go about sending offers/answers with hyperswarm
let HyperSwarm = require("hyperswarm");
let sodium = require("sodium-universal");
let ndjson = require("ndjson");
let { RTCPeerConnection, RTCSessionDescription } = require("wrtc");
let swarm = HyperSwarm();
let { crypto_generichash, crypto_generichash_BYTES } = sodium;
let rtcConnection = new RTCPeerConnection();
(() => {
@connor-davis
connor-davis / beam.js
Last active May 9, 2021 09:44
Hyperbeam file streamer
let HyperBeam = require("hyperbeam");
let ndjson = require("ndjson");
let fs = require("fs");
let path = require("path");
let uuid = require("uuid");
let progress = require("progress-stream");
let readline = require("readline");
let beam = new HyperBeam("dropzone-file-tunnel");
@connor-davis
connor-davis / file_receiver.js
Created April 24, 2021 09:59
Receives files after they are chunked and sent over a channel
let HyperSwarm = require('hyperswarm')
let { EventEmitter } = require('events')
let sodium = require('sodium-universal')
let { crypto_generichash, crypto_generichash_BYTES } = sodium
let ConnectorChannel = require('../connector/ConnectorChannel')
let ConnectorPeer = require('../connector/ConnectorPeer')
let fs = require('fs')
import axios from "axios";
import React, { useState } from "react";
import { useDispatch } from "react-redux";
import { Route } from "react-router";
import { Link } from "react-router-dom";