Skip to content

Instantly share code, notes, and snippets.

View mrts's full-sized avatar

Mart Sõmermaa mrts

  • Tallinn, Estonia (EET, UTC +2 hours)
View GitHub Profile
@mrts
mrts / markdown-to-slack.py
Last active April 22, 2024 11:04
Markdown to Slack
# Translates Markdown syntax to Slack, replaces:
#
# - hyphened lists with bullet symbols
# - double bold marker asterisks `**` with single asterisk `*`
# - headers `#` with bold marker asterisks `*`
#
# Run with
#
# python markdown-to-slack.py filename.md
#
"""
A small utility that creates OCSP responses for testing for the web-eid-authtoken-validation-java library.
Run it as follows:
python -m venv venv
. venv/bin/activate
pip install asn1crypto
python ocsp.py
@mrts
mrts / merit-api-get-customer-emails.py
Created December 24, 2023 12:10
Get customer emails from Merit using Merit API
import hmac
import datetime
import json
from base64 import b64encode
from urllib.parse import urlencode
import requests
API_KEY = b'...'
API_ID = '...'
@mrts
mrts / raw_id_fields_widget_in_custom_ModelForm.py
Created January 29, 2010 22:34
Use raw_id_fields widget in custom ModelForm
from django.contrib.admin import widgets
from django import forms
from django.contrib import admin
# create wrappers for overriding the queryset
class ToWrapper(object):
def __init__(self, to, manager):
self.to = to
self._default_manager = manager
@mrts
mrts / maven-deploy-to-gitlab.sh
Created April 11, 2023 18:02
Deploy a Maven package to GitLab Packages
cat << 'EOF' > gitlab-mvn-settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<servers>
<server>
<id>gitlab</id>
<configuration>
<httpHeaders>
<property>
<name>Deploy-Token</name>
"""
Thread-safe Django cache backend for pylibmc.
Tested on Python 2.6, should work on 2.5 as well.
Use it by setting CACHE_BACKEND in settings.py, e.g.:
CACHE_BACKEND = 'projdir.utils.pylibmcd://127.0.0.1:11211/'
And here's how to properly install pylibmcd in Ubuntu for mod_wsgi:
@mrts
mrts / add-copyright-licence-header-from-git-commit-authors.py
Last active January 15, 2023 21:17
Add copyright license headers with author information from Git commits to source code files
@mrts
mrts / App.vue
Last active November 3, 2022 22:04
A simple app for creating slide presentations with Vue.js
<script setup lang="ts">
import { $ref } from "vue/macros";
import { onMounted, onUnmounted } from "vue";
import { SLIDE_TEXTS } from "./assets/slides/slideTexts";
import PresentationSlide from "./components/PresentationSlide.vue";
// Width of the slide images in pixels, change this if the images are of different width
const IMAGE_WIDTH_PX = 1024;
const MAX_INDEX = Object.keys(SLIDE_TEXTS).length;
@mrts
mrts / fabfile.py
Created January 7, 2011 00:31
Automatic remote deployment with Fabric.
"""
This fabfile automates deployment of and moving data between Django apps
in development (devel), staging (stage), and production (live)
environments.
Use it as:
fab -H user@host:port deploy:stage
Requirements
@mrts
mrts / list-digitalocean-spaces-content.py
Created June 25, 2022 17:42
List all DigitalOcean Spaces files with Python
import boto3
ENDPOINT_URL = 'https://fra1.digitaloceanspaces.com'
SPACE = "space-name"
REGION = "FRA1"
ACCESS_KEY_ID = "..."
SECRET_ACCESS_KEY = "..."
def main():
session = boto3.session.Session()