Skip to content

Instantly share code, notes, and snippets.

@tomrandle
tomrandle / team-scrape.py
Last active August 10, 2019 06:15
Scraping team member info from old site and creating markdown file for each
from bs4 import BeautifulSoup
from yaml import load, dump
html_doc = open('raw.html')
soup = BeautifulSoup(html_doc, 'html.parser')
teamMembers = (soup.find_all(class_="t-member"))
for member in teamMembers:
@tomrandle
tomrandle / gecko-enviroment.py
Created August 22, 2018 20:33
Log sensor readings to Geckoboard
import geckoboard, datetime, bme680
# Set up Pimroni BME680 sensors
# https://github.com/pimoroni/bme680-python/blob/master/examples/read-all.py
sensor = bme680.BME680()
sensor.set_humidity_oversample(bme680.OS_2X)
sensor.set_pressure_oversample(bme680.OS_4X)
sensor.set_temperature_oversample(bme680.OS_8X)
@tomrandle
tomrandle / start-standup.AppleScript
Last active August 14, 2022 20:57
Applescript for automatically starting standup
on run argv
# Set variables
set chrome to "Google Chrome"
set zoom to "zoom.us"
set wait to 0.5
set initialWindow to "Zoom - Pro Account" # If you're not using Zoom Pro you will need to change this
tell application chrome
if it is running then
@tomrandle
tomrandle / lunchReminder.js
Created October 17, 2016 14:02
lunchReminder
function lunchReminder() {
var curHour = new Date().getHours();
if (curHour > 17 || curHour < 9) {
Logger.log("Outside work hours stopping");
return
}
var completedValues = sheet.getRange(startRow,1,rowRange,1).getValues();
var slackNames = sheet.getRange(startRow,2,rowRange,1).getValues();
@tomrandle
tomrandle / updateUnattendingRows.js
Created October 17, 2016 14:00
updateUnattendingRows
function updateUnattendingRows() {
var attendingValues = sheet.getRange(startRow,4,rowRange,1).getValues();
var color = "lightgrey"
for (var i = 0; i < attendingValues.length; i++) {
var rr = sheet.getRange("A"+(i+startRow)+":I"+(i+startRow))
if(attendingValues[i][0] === false && rr.getBackground() != color) {
rr.setBackground(color);
} else {
@tomrandle
tomrandle / closeLunch.js
Created October 17, 2016 13:59
closeLunch
function closeLunch() {
var triggers = ScriptApp.getProjectTriggers();
updateUnattendingRows();
triggerSlackRequest("main", "Lunch orders are now closed");
triggerSlackRequest(completedOrdersUser, "Lunch is now officially closed");
for (var i = 0; i < triggers.length; i++) {
if (triggers[i].getHandlerFunction() == "lunchReminder" || triggers[i].getHandlerFunction() == "notifyOrdersAppearCompleted") {
ScriptApp.deleteTrigger(triggers[i]);
@tomrandle
tomrandle / notifyOrdersAppearCompleted.js
Created October 17, 2016 13:58
notifyOrdersAppearCompleted
function notifyOrdersAppearCompleted() {
var curHour = new Date().getHours();
var notifiedCell = sheet.getRange("F3").getValues()[0][0];
if (notifiedCell == true) {
return
}
if (curHour > 17 || curHour < 9) {
Logger.log("Outside work hours stopping");
@tomrandle
tomrandle / triggerSlackRequest.js
Created October 17, 2016 13:57
triggerSlackRequest
function triggerSlackRequest(channel, msg) {
var slackWebhook = "YOUR PERSONAL SLACK TOKENIZED URL";
var payload = { "channel": channel, "text": msg, "link_names": 1, "username": "lunchbot", "icon_emoji": ":hamburger:" };
var options = { "method": "post", "contentType": "application/json", "muteHttpExceptions": true, "payload": JSON.stringify(payload) };
Logger.log(UrlFetchApp.fetch(slackWebhook, options));
}
@tomrandle
tomrandle / createTimeTrigger.js
Created October 17, 2016 13:56
createTimeTrigger
function createTimeTriggers(hour) {
ScriptApp.newTrigger('lunchReminder')
.timeBased()
.everyHours(hour)
.create();
ScriptApp.newTrigger('notifyOrdersAppearCompleted')
.timeBased()
.everyMinutes(5)
.create();
@tomrandle
tomrandle / openlunch.js
Last active October 17, 2016 13:52
openlunch
function openLunch() {
var restaurant = sheet.getRange("B1").getValues()[0][0];
var deadline = sheet.getRange("B2").getValues()[0][0];
triggerSlackRequest("main", "@london: FRIDAY LUNCH: *"+ restaurant +"*. Please order by *"+ deadline +"*. Cheers.\n"+ sheetURL);
createTimeTriggers(2);
}