Skip to content

Instantly share code, notes, and snippets.

View gduverger's full-sized avatar

Georges Duverger gduverger

View GitHub Profile
@gduverger
gduverger / background.js
Created February 6, 2021 17:06
Dashcam (0.1)
chrome.runtime.onMessage.addListener((req, sender, res) => {
if (req.message === 'capture') {
// console.log('chrome.runtime.onMessage.addListener', req, sender, res);
chrome.tabs.captureVisibleTab(sender.tab.windowId, {format: 'png'}, (image) => {
// console.log('chrome.tabs.captureVisibleTab', image); // image is base64
res({image: image});
});
}
# https://docs.python.org/3/library/datetime.html#datetime.datetime.utcnow
datetime.datetime.now(datetime.timezone.utc)
@gduverger
gduverger / secret_key.py
Created August 11, 2020 20:27
How to generate good secret keys
python -c 'import os; print(os.urandom(16))'
# b'_5#y2L"F4Q8z\n\xec]/'
@gduverger
gduverger / email_regex.py
Created October 3, 2019 15:03
Almost Perfect Email Regex
# https://emailregex.com/
r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)"
import smtplib
import ssl
SENDER_EMAIL = '[email protected]'
RECEIVER_EMAIL = '[email protected]'
SERVER_API_TOKEN = '…'
for host in ['legacy-smtp.postmarkapp.com', 'smtp.postmarkapp.com', 'future-smtp.postmarkapp.com']:
for port in [25, 2525, 587]:
context = ssl.create_default_context()
$ pqsl
# CREATE DATABASE database;
# \q
# I wrote an Ivy (https://darrenmulholland.com/docs/ivy/) extension
# to allow multiple paths to the same node by using the keyword
# `redirects` in `./src/foo.md` (e.g., `redirects: bar, foo-bar`).
import ivy
import copy
@ivy.hooks.register('render_page')
def copy_page(page):
node = page['node']