Skip to content

Instantly share code, notes, and snippets.

import * as dnssd from 'npm:ya-dns-sd'
const timeout = Number(Deno.args[0]) || 30
// Check if it's needed and prompt
const connectedDevices = new TextDecoder().decode(await Deno.run({
cmd: ['adb', 'devices'],
stdout: 'piped'
}).output()).split(/\r?\n/g).filter(e => e).slice(1).map(e => e.split('\t')[0])
@qgustavor
qgustavor / fix-subtitles.js
Created February 1, 2023 00:44
A customizable script that fixes common issues in anime subtitles such as wrong romanization, bad line breaking, basic time shifts and font scaling
import { parseFlags } from 'https://deno.land/x/[email protected]/flags/mod.ts'
import parse from 'https://cdn.skypack.dev/pin/@qgustavor/[email protected]/mode=imports/optimized/@qgustavor/ass-parser.js'
import stringify from 'https://cdn.skypack.dev/pin/@qgustavor/[email protected]/mode=imports/optimized/@qgustavor/ass-stringify.js'
import JSON5 from 'https://deno.land/x/[email protected]/mod.ts'
const defaultConfig = {
targetDir: '..',
filenameReplacement: null,
handleLineBreaks: false,
shiftTimes: false,
const functions = [
(e, target, source) => Math.round(e * target / source),
(e, target, source) => Math.floor(e * target / source),
(e, target, source) => Math.ceil(e * target / source),
(e, target, source) => 1 + Math.round((e - 1) * target / source),
(e, target, source) => 1 + Math.floor((e - 1) * target / source),
(e, target, source) => 1 + Math.ceil((e - 1) * target / source),
(e, target, source) => Math.round((e - 1) * target / source),
(e, target, source) => Math.floor((e - 1) * target / source),
(e, target, source) => Math.ceil((e - 1) * target / source),
@qgustavor
qgustavor / recursive-readdir.js
Last active November 8, 2022 18:34
Recursive implementation of Deno.readDir
export async function* recursiveReadDir (url) {
for await (const dirEntry of Deno.readDir(url)) {
if (dirEntry.isDirectory) {
yield * recursiveReadDir(new URL(dirEntry.name, url.href + '/'))
} else if (dirEntry.isFile) {
yield new URL(dirEntry.name, url.href + '/')
}
}
}
@qgustavor
qgustavor / list.md
Last active March 26, 2025 07:03
List of Crunchyroll series previously available for free locked to only-members per date
@qgustavor
qgustavor / microphone-keyboard.js
Created September 13, 2022 22:04
Download nircmdc, ffmpeg and deno, run using "deno run -A microphone-keyboard.js"
import FFT from 'https://raw.githubusercontent.com/qgustavor/stream-audio-fingerprint/master/src/lib/fft.ts'
let device = Deno.args[0]
if (!device) {
const devicesProcess = await Deno.run({
cmd: ['ffmpeg', '-list_devices', 'true', '-f', 'dshow', '-i', 'dummy'],
stderr: 'piped'
})
const devicesOutput = new TextDecoder().decode(await devicesProcess.stderrOutput())
const devices = Array.from(devicesOutput.matchAll(/\[dshow.* "(.*)" \(audio\)/g)).map(e => e[1])
// Download Deno here: https://deno.land/#installation
// Download this file
// Run it using: deno run -A adb-auto-connect.ts [ip address]
import PQueue from 'https://deno.land/x/[email protected]/mod.ts'
import ProgressBar from 'https://deno.land/x/[email protected]/mod.ts'
const hostname = Deno.args[0] ?? '' // <-- set default ip address here to make the argument optional
// Check if it's needed and prompt
@qgustavor
qgustavor / estatísticas-uf-br.md
Last active June 30, 2022 22:09
Estatísticas das páginas da Wikipédia das Unidades federativas do Brasil

Unidades federativas em ordem decrescente de tamanho da página

Estado Visitas nos últimos 30 dias Tamanho da página em bytes
Minas Gerais 28223 217883
Paraná 18765 206310
Paraíba 11981 187723
São Paulo (estado) 50973 185755
Espírito Santo (estado) 16508 185221
Santa Catarina 19523 183358
@qgustavor
qgustavor / duckduckgo.user.css
Last active January 4, 2023 20:50 — forked from Thesola10/duckduckgo.user.css
Replaces the default DuckDuckGo icon with Virtual Youtuber Oozora Subaru from Hololive.
/* ==UserStyle==
@name DuckDuckGo From Hologra Episode 139
@namespace thesola10
@version 1.0.0
@license MIT
@updateURL https://gist.github.com/qgustavor/f46d933d45dac29b6894f8c60d0d1e9d/raw/duckduckgo.user.css
@author thesola10, qgustavor
==/UserStyle== */
@-moz-document domain("duckduckgo.com") {
// Run in console in a page with sha256 loaded as a global
(async function () {
let durations = []
for (let i = 0; i < 100; i++) {
const times = 5000
const value = ''
const start = Date.now()
let hashHex = value
for (let i = 0; i < times; i++) {
const hashBuffer = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(hashHex).buffer)