Skip to content

Instantly share code, notes, and snippets.

View HeroBrine1st's full-sized avatar

HeroBrine1st Erquilenne HeroBrine1st

View GitHub Profile
@HeroBrine1st
HeroBrine1st / Dockerfile
Last active February 9, 2023 06:16
Dockerfile to patch outline with support of personal Google accounts. Set DEFAULT_TEAM_DOMAIN to your domain in environment file, use buildarg to set version. Warning: set additional authorization in reverse proxy as this patch will let everyone access your notes.
ARG version=0.67.2
FROM outlinewiki/outline:$version
RUN echo "c38f0faffe3c7e00efe3373f0a3ec9dd /opt/outline/build/server/routes/auth/providers/google.js" | md5sum -c
RUN sed -i -e 's/profile._json.hd/profile._json.hd ? profile._json.hd : process.env.DEFAULT_TEAM_DOMAIN/' /opt/outline/build/server/routes/auth/providers/google.js
@HeroBrine1st
HeroBrine1st / stub.lua
Last active November 26, 2022 00:34
OpenComputers WebSocket library
---@class BufferedFrame
---@field public fin boolean @true if frame is finalized, false if frame is still being building
---@field public type string @text if frame is text, binary if frame is binary
---@field public payload string @payload of (potentially fragmented) frame
local BufferedFrame = {}
---@class Options
---@field public headers table @name-to-value mapping of headers
---@field public protocols table @list of subprotocols (Sec-WebSocket-Protocol)
@HeroBrine1st
HeroBrine1st / README.md
Last active June 1, 2022 18:43
Как пользоваться BTRFS

Дисклеймер: Ваши данные - ваша забота и ответственность.
Дисклеймер 2: Данный текст не является абсолютно полным руководством (по размеру понятно). BTRFS не является файловой системой, которую можно изучить "на ходу". (впрочем, из-за этого этот текст и появился)

Я буду писать сюда то, что не смог найти в интернете сразу или считаю очень важным.

Создание и восстановление бекапов (снапшотов) корня файловой системы

Подготовка: создание файловой системы

  1. Создайте ФС
@HeroBrine1st
HeroBrine1st / README.md
Last active July 18, 2022 11:19
Скачиваем музыку со спотифая без выноса мозга

P.s. если с линуксом "на вы", то лучше найти какой-нибудь другой способ

В чём заключается проблема

  1. Если внутри freyr происходит ошибка (однажды выбило переполнение стека, в другой раз оно просто зависло) - работа до конца не завершится даже у уже загруженных файлов, а точнее не будут записаны метаданные
  2. Оно может не скачать трек по причине 403 или отсутствия источников, и в статистике не выведет, какие конкретно треки это были
  3. Голым беш скриптом автоматизация невозможна из-за того, что freyr пишет напрямую в tty 😕

Вам понадобится

@HeroBrine1st
HeroBrine1st / AnyToWacomTablet.py
Last active April 7, 2021 00:08
Python script for pretending your tablet as wacom tablet on linux (because all distros can handle any tablet, but instead they handle only wacom)
from errno import ENODEV
from typing import Optional
import evdev
# Сокрытие в питоне..
# noinspection PyProtectedMember
from evdev import InputDevice, UInput, _uinput, ecodes, _input
from evdev.ecodes import EV_ABS
from pyudev import Monitor, Context
# Классы сука с большой буквы нахуй ВСЕГДА
@HeroBrine1st
HeroBrine1st / buttonlib.py
Created October 8, 2020 17:56
GyverButton rewritten in micropython
import utime
from machine import Pin
# Алгоритм полностью спизжен у гайвера
# Пиздец там говнокода, даже банально return сделано с ифами типа if(a==true) return true else if(a==false) return false
class Button:
def __init__(self, pin: Pin, processor: callable = lambda x: x): # processor - обработка значения с кнопки
self.pin = pin
@HeroBrine1st
HeroBrine1st / ssd130x.py
Last active October 8, 2020 16:14
SSD1306 OLED Library for micropython (maybe SSD130x)
from framebuf import FrameBuffer, MONO_VLSB
from machine import I2C
# Я не ебу что за хуйня с юникодом в этом питоне, пришлось словарь сделать.
# Юзаем bytes, потому что занимает еще меньше
font = { # Шрифт спизжен у гайвера, но он реально классный (лучше, чем в framebuf)
# И еще чутка изменили некоторые элементы
" ": b"\x00\x00\x00\x00\x00", # 0x20 32
"!": b"\x00\x00\x6f\x00\x00", # ! 0x21 33
"\"": b"\x00\x07\x00\x07\x00", # " 0x22 34