Skip to content

Instantly share code, notes, and snippets.

@bayleedev
Created February 22, 2021 22:46
Show Gist options
  • Select an option

  • Save bayleedev/f1f961e9bcd80b26041360026655dcab to your computer and use it in GitHub Desktop.

Select an option

Save bayleedev/f1f961e9bcd80b26041360026655dcab to your computer and use it in GitHub Desktop.

Revisions

  1. Baylee created this gist Feb 22, 2021.
    43 changes: 43 additions & 0 deletions automator.workflow
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,43 @@
    on randomString(aLength)
    set randomChars to {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}
    set aString to ""

    repeat aLength times
    set aString to aString & some item of randomChars
    end repeat

    return aString
    end randomString

    on appName()
    tell application "System Events"
    set frontmostProcess to first process where it is frontmost
    set appName to name of frontmostProcess
    end tell
    if appName is equal to "Safari" then
    tell application "Safari"
    return the URL of the current tab of the front window
    end tell
    else if appName is equal to "Google Chrome" then
    tell application "Google Chrome"
    return the URL of the active tab of the front window
    end tell
    end if
    tell application appName
    return appName & " " & the name of the front window
    end tell
    return appName
    end appName

    on appNameSlug(aLength)
    set commandString to "~/.bin/slugify \"" & appName() & "\" | cut -c -" & aLength as string
    return do shell script commandString
    end appNameSlug

    on run {input, parameters}
    (* TODO: update the format here to meet your needs *)
    set email to randomString(5) & "." & appNameSlug(15) & "@privaterelay.example.com"
    tell application "System Events" to keystroke email
    do shell script "afplay /System/Library/Sounds/Bottle.aiff"
    return input
    end run
    65 changes: 65 additions & 0 deletions tamper_monkey.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,65 @@
    // ==UserScript==
    // @name Email Generator
    // @version 0.1
    // @description Type in "/email in a text or textarea field and it will update it with a randomly generated username that goes through a relay.
    // @author You
    // @grant none
    // @include *
    // ==/UserScript==

    (function() {
    const tmClickAudio = new Audio('data:audio/wav;charset=utf-8;base64,UklGRrgEAABXQVZFZm10IBAAAAABAAEAIlYAACJWAAABAAgAZGF0YZQEAAB+fHp9dnOKeIeYTnh+eX1+yJfCt5KDVmptnJqxu6qUd4R4Xo11c7puf3ZwhGuGfHV6b1RoYmd4f4Fxc2NkX2lhXGlqX2RyZXh1hYqLlI6ViYKDhYeHhoyEh4uCiIGHioyRjZCSj4qLiIyKiYuIjo2Lj46Jh4aEhoSDg4OCgH5/fHd6fH1/goOBgoOAgIB+fX9/f4B+fn99fX19fHp5eHh5enl7fX5/f3+Af39+f4CAf319fX17fH5/gICBgoGBgYKCgYGCgoGAgICBgYCAgICBgH9+fn19foCAgICAgICAgIB/gX+AgYCAgYKCgYCAf4CAgICDgoCCgIGAfYGAgIKAgYB/gH5/gH+AgH6Af319fn5+fn6Af4B/gIOAgIKBgYCAgICAgIGCgoGAgYCAgYGDg4KBgYB+fH1/foCAgYCAgH1+fn1+fn+Afn9+foB+f4CAgIB/gICAgoGBgIB/gICCgoGCgYGBgICAgIKBgYKBgYGAgIB/f31+fX1/fX9/fn16eXp6en1+f3+AgH59fn9/f4CAgYGBgoGBg4SEg4KCgYGAgICAgICAf39/fn5/f39/f35+f318foCAf39/gH59fn+AgIGCgICAgICAgICAgYGBgICAgICAgH+AgYCAgICAgICAgH+AgICAgICAgICAgICBgICCgoGChIKAgICAgICBg4GBgoGAgICAgICAgICAgH5+f3+AgIB/gICAf3+Af39/gIB/f4CAf4CDgYKFhIB/gXh7gn2Ch4CAgoKEgH6AgIWBf4CAgICDgH+Bg4OAgYGCg4KBgYCAgICBgH+Af35+fX+Af35/fnx8fn5+foB+e3x8eXl7fn+AgoCAf36CgoaAipZ1hoJ+e3qOcJB8fI13g3+GgH92fn1/g4CKhId7f3h3fnx9fIOAf4CBfoB9fH98gYCChIKChIGDgX+CgoaEgoCAgH+Bf359f4GDg4B/fn6AgYGCg4GAgYB/fX+BgYWGgn98gIKDgX97eoCEhoR+fX19f357e3yAhIJ9e3t9foCDgoGEg4CAgoKAgIGBhIWEgYCAgoOCgoCAgIKDgYCAgICCg4KAgICCgoKCgYGBgoGAf39/gICAf35+fX5/f35/gH9+f3+AgYGAgICAgYB/gIGCgH6AgYCAgIWGg4V/g4mAd3Z9enx8fX+AgYBsgKaNfnxpPHikUHy2kGWdqSZcmlh7vouMu2eBgT5SVVGCoJPguJOlZ1lXdYObs7WklZxuZGZcY2yAjpCHm4hqdWdng4KHm5KMko15b3NwbHqJfoGOfXBwbG1wdoCAg4iIgXp5c3V4eX6Bf4GJhIKEgICFioaChYaIiYeDfnx4en5/gYSBfn96eHp8f4OIiYaCgn99gIOFhoeEhIWDgH9+e31/fXp9f3x9f358e3x8fYCAgYKEhYWGhYSDg4OEhoeFhISCgH5+e3l6fH1/gICAgICAgH+Ag4SFhoeFg4B/fHx9fYCAgYGAfXx7fH+AgoaHhoaHhIKDgoCAgoGAgH9+e3p7eXh6enp+f36AgICAgIODgYSEg4SFhIKCgIB/fX5+fICBfw==')

    const TMGenerate = {
    random: (length) => {
    let result = ""
    while (result.length < length) {
    result += (Math.random()).toString(36).substr(2)
    }
    return result.substr(0, length)
    },

    domain: (length) => {
    return document.domain.replace(/\.|www/g, '').substr(0, length)
    },

    email: () => {
    // TODO: update the format here to meet your needs
    const username = TMGenerate.random(8) + '.' + TMGenerate.domain(12);
    const domain = 'privaterelay.example.com'
    console.assert(username.length < 64);
    console.assert(domain.length < 250);
    return username + '@' + domain;
    }
    }

    class TMEmail {
    constructor(intervalLength = 1000) {
    this.active = document.body
    setInterval(() => this.onInterval(), intervalLength)
    }

    onInterval () {
    const current = document.activeElement;
    if (this.active !== current && current) {
    if (this.active.removeEventListener) {
    this.active.removeEventListener('keydown', this.onKeyDown)
    }
    this.active = current
    current.addEventListener('keydown', this.onKeyDown)
    }
    }

    onKeyDown (e) {
    const el = e.target;
    const value = el.value + e.key
    if (value === '/email') {
    e.preventDefault()
    tmClickAudio.play()
    el.value = TMGenerate.email()
    }
    }
    }

    new TMEmail()
    })();