Skip to content

Instantly share code, notes, and snippets.

View romanvm's full-sized avatar

Roman Miroshnychenko romanvm

View GitHub Profile
@romanvm
romanvm / multi_select.py
Last active March 22, 2020 19:13
The example of a multi-select dialog in a Kodi addon created with PyXBMCt framework
# The example of a multi-select dialog in a Kodi addon created with PyXBMCt framework.
# You will need a checkmark image file.
import os
import xbmcgui
import xbmcaddon
import pyxbmct.addonwindow as pyxbmct
_addon = xbmcaddon.Addon()
_path = _addon.getAddonInfo("path")
_check_icon = os.path.join(_path, "check.png") # Don't decode _path to utf-8!!!
@romanvm
romanvm / threadpoolss.py
Last active February 15, 2021 00:36 — forked from kgaughan/threadpoolss.py
All the thread pool mixins for SocketServer are, well, not that good, so I knocked together my own. This one can cleanly shut down the pool
"""
Thread pool extensions to SocketServer.
"""
import Queue
import SocketServer
import sys
import threading
@romanvm
romanvm / gfm.py
Created November 10, 2015 16:52 — forked from christian-oudard/gfm.py
Github Flavored Markdown in Python
import re
from hashlib import md5
def gfm(text):
# Extract pre blocks.
extractions = {}
def pre_extraction_callback(matchobj):
digest = md5(matchobj.group(0)).hexdigest()
extractions[digest] = matchobj.group(0)
return "{gfm-extraction-%s}" % digest
@romanvm
romanvm / generate.py
Last active February 15, 2022 18:32
Script that generates necessary data files to create a custom addon repository for Kodi mediacenter
#!/usr/bin/env python
# coding: utf-8
#
# Copyright (c) 2017, Roman Miroshnychenko <romanvm@yandex.ua>
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
@romanvm
romanvm / sqlite_storage.py
Last active September 22, 2022 18:33
Simple key-value storage based on SQLite
# coding: utf-8
#
# Copyright (c) 2017 Roman Miroshnychenko <roman1972@gmail.com>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
@romanvm
romanvm / asyncore_wsgi.py
Last active March 18, 2018 14:12
Single-threaded asynchronous WSGI server based on asyncore module
# coding: utf-8
# Author: Roman Miroshnychenko aka Roman V.M.
# E-mail: roman1972@gmail.com
# License: MIT https://opensource.org/licenses/MIT
"""
Single-threaded asynchronous WSGI server
Example::
from from wsgiref.simple_server import demo_app
@romanvm
romanvm / example.service
Last active September 22, 2022 18:33
Example of a simple Linux systemd service
[Unit]
Description=Example systemd service
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=on-sucess
RestartSec=1
User=nobody
# coding: utf-8
from __future__ import print_function
import random
import socket
def get_random_port():
random.seed()
while True:
port = random.randint(4000, 16000)
Package: /mysql/
Pin: release *
Pin-Priority: -1
# (c) Roman Miroshnychenko <roman1972@gmail.com> 2023
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the