Skip to content

Instantly share code, notes, and snippets.

View foosel's full-sized avatar
🐙
Working full-time on OctoPrint!

Gina Häußge foosel

🐙
Working full-time on OctoPrint!
View GitHub Profile
@foosel
foosel / email_to_paperless.md
Created January 29, 2022 14:13
Email to Paperless Flow for NodeRed

Flow

[
    {
        "id": "c4be0c03394f3820",
        "type": "e-mail in",
        "z": "8357254d.c82348",
        "name": "Labeled \"paperless\"",
        "protocol": "IMAP",
@foosel
foosel / stl_to_svg.scad
Created December 7, 2021 13:59
STL to SVG conversion script using OpenSCAD. Takes an STL and projects it to the defined plane (default: XY), then saves the result as SVG.
FileToLoad = "";
Plane=0; // 0: XY, 1: XZ, 2: YZ
echo("File:", FileToLoad);
projection() {
if (Plane == 0) {
echo("Plane: XY");
import(FileToLoad);
} else if (Plane == 1) {
echo("Plane: XZ");
@foosel
foosel / README.md
Last active January 11, 2024 20:23
OBS script that updates the YouTube livechat URL on a browser source on stream start.

youtube-live-chat-update.py

OBS script that updates the YouTube livechat URL on a browser source on stream start to the livechat associated with the (first) current livestream on a given channel. If no livestream is active, a placeholder page saying "No Stream." will be injected. You can style the text via the css class .nostream to match your background etc.

You will need a YouTube API key, see https://developers.google.com/youtube/v3/getting-started and https://developers.google.com/youtube/registering_an_application for more information on how to go about that.

Additionally you will require the channel ID of the channel for which you want to query the current live stream. You can retrieve that by inspecting the web site source of the channel in question and looking for externalId.

To use, download youtube-live-chat-update.py and add it as script to OBS Studio. Note: Be sure to configure a valid Python environment first, see here for more details.

@foosel
foosel / .Xmodmap
Created January 31, 2021 23:45
KMonad config to turn a ThinkPad X240 keyboard UHK alike. Combined with .Xmodmap for german umlauts and fixed ins/end shenanigans.
! Fix ThinkPad shenanigans
keycode 118 = End
keycode 115 = Insert
! AltGr is Mode_switch
clear mod5
keycode 108 = Mode_switch
! AltGr shortcuts for umlauts
keycode 39 = s S ssharp
@foosel
foosel / NodeRed flow for GitHub Review Reminders.md
Last active January 27, 2021 04:17
NodeRed flow for GitHub Review Reminders

NodeRed flow for GitHub Review Reminders

Quick node setup to get notifications about requested reviews each workday morning.

Screenshot of the node setup

Flow json:

[{"id":"3ba912e4.896146","type":"http request","z":"8357254d.c82348","name":"Query","method":"GET","ret":"obj","paytoqs":"query","url":"","tls":"","persist":false,"proxy":"","authType":"","x":530,"y":880,"wires":[["fa377f9a.5a51a","872d9224.2341b8"]]},{"id":"fa377f9a.5a51a","type":"debug","z":"8357254d.c82348","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":750,"y":960,"wires":[]},{"id":"ea784988.39d24","type":"inject","z":"8357254d.c82348","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":140,"y":940,"wires":[["fef091db.f8a6c"]]},{"id":"fef091db.f8a6c","type":"function","z":"8357254d
@foosel
foosel / lighter_freecad_forum.user.css
Last active September 24, 2020 08:05
Lighter FreeCAD Forum Userstyle. Install with Stylus extension. Tested on Firefox.
/* ==UserStyle==
@name Lighter FreeCAD Forum
@namespace github.com/foosel
@version 1.0.2
@description A lighter theme for the FreeCAD forum. Sans-serif instead of Fira-Sans, slightly more line-height, slightly less bold headlines, less read everywhere. Easier on the eyes.
@author foosel
@homepageURL https://gist.github.com/foosel/21fb760e94bae5782171ca49c799daf5
@updateURL https://gist.githubusercontent.com/foosel/21fb760e94bae5782171ca49c799daf5/raw/lighter_freecad_forum.user.css
==/UserStyle== */
@foosel
foosel / m33_storm.py
Last active September 15, 2021 13:24
Requests long names for files on printer's SD card via M33. OctoPrint 1.4.2+. No maintenance, no support.
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function, unicode_literals
import octoprint.plugin
import octoprint.events
import octoprint.util.comm
class M33StormPlugin(octoprint.plugin.EventHandlerPlugin):
def __init__(self):
self._active = False

Bot Commands on the OctoPrint Discord Server

Roles

  • ?role: Get an overview of the available roles (teams, ranks) you can join. Only allowed in #bot-commands
  • ?role <role>: Join joinable role. Only allows in #bot-commands
  • ?ranks: Alias for ?role
  • ?rank <rank>: Alias for ?role <role>
  • ?joinirc & ?leaveirc: Use these to either join or leave the IRC bridge channel #irc (invisible by default). Aliases for ?role IRC. Only allowed in #bot-commands
@foosel
foosel / Dockerfile
Last active May 12, 2019 14:35
Simple Dockerfile & composition to run a speedtest2mqtt setup using speedtest-rs from https://github.com/nelsonjchen/speedtest-rs
FROM rust:1.31
WORKDIR /usr/src
RUN git clone https://github.com/nelsonjchen/speedtest-rs
WORKDIR ./speedtest-rs
RUN cargo install --path .
ADD entrypoint.sh /opt/speedtest2mqtt.sh
RUN apt-get update && \
@foosel
foosel / Dockerfile
Created May 12, 2019 13:26
Simple Dockerfile & composition to run a speedtest2mqtt setup using speedtest-go from https://github.com/showwin/speedtest-go
FROM alpine:3.7
ADD entrypoint.sh /opt/speedtest2mqtt.sh
COPY speedtest-go /usr/bin/speedtest-go
RUN apk update && \
apk add ca-certificates mosquitto-clients && \
rm -rf /var/cache/apk/* && \
chmod 777 /opt/speedtest2mqtt.sh