Skip to content

Instantly share code, notes, and snippets.

use std::fmt;
use std::error::Error;
type Buffer = Vec<u8>;
pub trait ReadU24BE {
fn read_u24_be(&self, pos: usize) -> Result<u32, OutOfRangeError>;
}
impl ReadU24BE for Buffer {
@lemlac
lemlac / randomstring.js
Created June 17, 2024 15:15 — forked from lac5/randomstring.js
randomstring.js
const letters = 'abcdefghijklmnopqrstuvwxyz'
function randomString(max, min = 1) {
let length = Math.floor(Math.random()*(max+2-min)+min);
let word = '';
while (word.length < length) {
word += letters[Math.floor(Math.random()*letters.length)];
}
return word;
}
export default function randomBigInt(max) {
const segment = Number.MAX_SAFE_INTEGER;
const bigSegment = BigInt(segment);
const maxArray = [];
for (let bigMax = BigInt(max), zero = 0n; bigMax > zero; bigMax /= bigSegment) {
maxArray.unshift(Number(bigMax % bigSegment));
}
const superSum = (a, b) => a * bigSegment + b;
return function() {
let unlimited = false;
import { getOptions } from 'loader-utils';
import CSS from 'css';
import XRegExp from 'xregexp';
export default function cssPrefixLoader(content) {
const { prefix, ...options } = getOptions(this);
let ast = CSS.parse(content);
import { getOptions } from 'loader-utils';
import XRegExp from 'xregexp';
import toSource from 'tosource';
export default function ejsLoader(content) {
let options = getOptions(this);
let [source, ...imports] = compileEjs(content, options);
return (
@lemlac
lemlac / global.js
Created June 17, 2024 15:14 — forked from lac5/global.js
/*
This script reads the nearby global.d.ts file and exports a list of imports as
an object. Imports need to follow the same structure as the example below. This
script only works with default exports but could be modified to use named
exports instead.
Example:
`global.d.ts`
@lemlac
lemlac / zip.js
Created June 17, 2024 15:14 — forked from lac5/zip.js
function zipMin(...iterators) {
let done = iterators.length === 0;
iterators = iterators.map(iterator => iterator[Symbol.iterator]());
return {
[Symbol.iterator]() {
return this;
},
next(...args) {
let value = [];
for (let i = 0, length = iterators.length; i < length; i++) {
@lemlac
lemlac / autotts.meta.js
Created June 17, 2024 15:14 — forked from lac5/autotts.meta.js
Automatically reads messages in a chatroom page. (i.e. Picarto, Twitch, Youtube, etc.)
// ==UserScript==
// @name Auto TTS
// @namespace larryc5
// @version 0.1
// @description Automatically reads messages in a chatroom page. (i.e. Picarto, Twitch, Youtube, etc.)
// @author Larry Costigan <larry.costigan5@gmail.com>
// @match https://picarto.tv/chatpopout/*/public
// @require https://code.jquery.com/jquery-latest.min.js
// @grant GM_setValue
// @grant GM_getValue
export default function floorMod(a, b) {
return a - Math.floor(a / b) * b;
}
@lemlac
lemlac / rnmd5.js
Created June 17, 2024 15:06 — forked from lac5/rnmd5.js
Renames files to their md5 value of their content.
const path = require('path');
const fs = require('fs').promises;
const md5 = require('md5');
const uuid = require('uuid/v5');
const argv = require('yargs')
.strict()
.usage('$0 <files...>', 'Rename files to their md5 value.', (yargs) => {
yargs.positional('files', {
describe: 'The files that will be renamed.',
type: 'array'