Skip to content

Instantly share code, notes, and snippets.

View leoherzog's full-sized avatar

Leo leoherzog

View GitHub Profile
@leoherzog
leoherzog / code.gs
Created September 19, 2023 18:33
Google Doc Change Notifier
/**
* 1. Go to script.google.com, and when logged in as the user that you want to do the "checking", click "➕ New Project" in the top right
* 2. Copy/Paste all of this code into your new project, and give it a name (e.g. Google Doc Change Notifier)
* 3. Change the `const docs = []` line to include all of the Docs you want to check. For example, `const docs = ["https://docs.google.com/document/blah", "https://docs.google.com/document/foo"];
* 4. Click "▷ Run" in the toolbar and authorize the script to run.
* 5. You're done!
*/
const docs = ["https://docs.google.com/document/d/1Gwt56BiconMLg_u-hdo0asdff27U7DlqLOzHVVgNnoM/edit"];
@leoherzog
leoherzog / voicewatch.py
Last active May 9, 2024 15:31
Python Discord Bot to post to a text channel when people join or leave a voice channel
#!/usr/bin/python3
import discord
import random
intents = discord.Intents.default()
intents.voice_states = True
client = discord.Client(intents=intents)
join_phrases = ['👋 **{0}** joined **{1}**', '🙋 Hi **{0}**! Welcome to **{1}**', '😊 Welcome to **{1}**, **{0}**!', '🤩 EVERYONE SHUT UP! **{0}** is in **{1}** now.']
@leoherzog
leoherzog / Code.gs
Last active May 9, 2024 15:31
Gather All Google Drive Files of a Certain Type and Change Owner
const newOwner = 'blah@example.com';
const fileTypesToTransfer = ['application/vnd.google-apps.form']; // https://developers.google.com/drive/api/guides/mime-types
function changeOwnership() {
console.log('Gathering all files in Drive of type ' + fileTypesToTransfer.join(',') + '...');
let fileIterator = DriveApp.searchFiles(fileTypesToTransfer.map(x => 'mimeType = "' + x + '"').join(' or '));
let files = [];
while (fileIterator.hasNext()) {
@leoherzog
leoherzog / Code.gs
Created March 18, 2022 17:33
Find emails in your Google Directory for names in a Google Sheet
/*
* This is a script to look through column x for names,
* search your directory for email addresses for that name,
* and print them into column y.
*
* To get started:
* 1. Open an existing Google Sheet or create a new one (https://sheets.new) and give it a name.
* 2. Click Extensions → Apps Script and give that new Apps Script project a name (e.g. "Lookup Email from Name").
* 3. Paste all of this code into that project.
* 4. Specify if it has a header row on line 19 of the code (true or false), as well as the name and email column letters on lines 20 and 21.
@leoherzog
leoherzog / code.gs
Last active May 9, 2024 15:31
Google Drive Folder ID Finder
/**
* This script creates a simple web app where the visitor can select a Google Drive folder with the Google Picker and it will tell you the ID of the folder, since that's now hard to find in the Google Drive web app or Folder URL.
* To get started:
* 1. Go to script.google.com and log in as the user that you want to host this published web app.
* 2. Click "New Project".
* 3. Rename the project at the top from "Untitled project" to something else (ex. "Folder ID Finder")
* 4. Copy/paste this code over the default "myFunction" starter code that's currently there
* 5. Click the ➕ next to "Files" in the sidebar, add an "HTML" file, name it "index" (.html is added by Apps Script), and paste the `index.html` code below over the starter code in that file.
* 6. Click "Deploy ▼" → "New Deployment". In the "Select Type" ⚙️ gear, choose "Web App". Change "Execute as" to "User accessing the web app" and "Who has access" to "Anyone with a Google Account". Click "Deploy".
* You're done! The long "Web app" URL c
@ImranR98
ImranR98 / eOSUDS.sh
Last active March 23, 2023 06:33
elementaryOS 6 has great dark themes, but they only apply to "curated" appcenter apps. This script forces the system theme to work with regular Debian packages as well as non-curated Flatpak apps. It also optionally changes the wallpaper based on the theme. It also supports changing themes for the Mailspring email app (both .deb and Snap versions).
#!/usr/bin/bash
# =======================================
# eOS-Universal-Dark-Style
# =======================================
# elementaryOS 6 has great dark themes, but they only apply to "curated" appcenter apps
# This script forces the system theme to work with regular Debian packages as well as non-curated Flatpak apps
# It also optionally changes the wallpaper based on the theme
@leoherzog
leoherzog / code.gs
Created August 9, 2021 19:58
Google Shared Drive Viewers Automator
/**
* @OnlyCurrentDoc
* 1. Create a new Google Sheet (https://sheet.new) and remove all but one column
* 2. Add all of the email addresses in Column A that you'd like to have as viewers on the Shared Drive
* 3. Click Tools → Script Editor and copy/paste all of this code into the editor
* 4. Edit the Shared Drive ID on line 10 (https://drive.google.com/drive/folders/{Shared Drive ID})
* 5. Click "▷ Run" in the top toolbar, allow authorization, and you're done!
*/
const sharedDriveId = '0AAt_DfuXH73UUA9dVp';
@leoherzog
leoherzog / code.gs
Last active May 9, 2024 15:33
Google Drive Folder Change Notifier
/**
* This script checks a Google Drive folder for any new files and/or folders added to it, and emails you if there are changes!
* To get started:
* 1. Go to script.google.com and log in as the user that you want to do the automated "checking".
* 2. Click "New Project".
* 3. Rename the project at the top from "Untitled project" to something else (ex. "Folder Change Notifier") and copy/paste this code over the default "myFunction" stuff that's currently there.
* 4. Add the folder IDs to the "foldersToCheck" array on line 16 below, in quotes, comma-separated. It should look something like:
* const foldersToCheck = ["1J5d673365fd944334be51d4163cd8294d", "1c5d63119b730c8224a218222e5faedcad"];
* 5. Add the email address that you want to notify for when there's changes on line 18 below. It should look something like:
* const emailToNotify = "name@gmail.com";
@rcknr
rcknr / Code.gs
Last active May 20, 2024 11:35
MD5 Hash in Google Apps Script
function md5(inputString) {
return Utilities.computeDigest(Utilities.DigestAlgorithm.MD5, inputString)
.reduce((output, byte) => output + (byte & 255).toString(16).padStart(2, '0'), '');
}
@leoherzog
leoherzog / code.gs
Created September 25, 2020 18:57
Google Drive Photocopier - Make lots of copies of a file in Drive
// (copy this into a new Apps Script project - https://script.google.com/)
// Hello!
//
// To make lots of copies of a thing in Google Drive,
// put the ID or URL of the Google Drive file here:
//
var fileToCopy = "https://jamboard.google.com/d/1jwdBuEjFtGvAjaRIsxXkR-nm-EgL2cES8UGOjREvdj0/viewer";
//
// Quotes are important! Example:
// var fileToCopy = "https://docs.google.com/document/d/1TIDOiUpPiWNqKqduKlbtm2O4jgFIAPrxuz_JFWzod9s/edit?usp=sharing";