Skip to content

Instantly share code, notes, and snippets.

View arseniy-panfilov's full-sized avatar

Arseniy Panfilov arseniy-panfilov

View GitHub Profile
@arseniy-panfilov
arseniy-panfilov / share_google_photos_albums.py
Created September 15, 2022 01:26
Script to bulk share albums created via Google Photos API. Primary use was to bypass the API bug which only returns 100 photos per album: once the album is shared, API starts to properly return all photos.
#!/usr/bin/env python
# coding: utf-8
import os
import pickle
import json
from time import sleep
import google_auth_httplib2 # This gotta be installed for build() to work
from googleapiclient.discovery import build
@arseniy-panfilov
arseniy-panfilov / fabfile.py
Created May 31, 2017 15:12
exception in parallel task - fabfile boilerplate
from fabric.api import env, execute, lcd, task, settings
from fabric.decorators import runs_once, parallel
env.roledefs = {
'foo': ['bar1', 'bar2', 'bar3']
}
class FabricAbortException(Exception):
pass
@arseniy-panfilov
arseniy-panfilov / gist:fad6faf452312dabecef92827e9f8da6
Last active September 27, 2021 16:19 — forked from iandundas/gist:7863c6c248f76e14a3a8
Удаление пометки о цитировании при копировании из iBooks
# strip out iBooks citation
sed -E -e 's/^[ ]?[0-9]* //g' | sed -E -e 's/«[ ]?[0-9]?[ ]?//g' | sed -E -e 's/»$//g' | sed -E -e 's/^(Отрывок из книги).*//g'
# coding: utf-8
import json
import re
import human_curl as hurl
try:
from urllib.parse import urlencode, urljoin
except ImportError:
@arseniy-panfilov
arseniy-panfilov / template.html
Created July 18, 2016 12:51
wkhtmltopdf example
{% load staticfiles %}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
@font-face {
font-family: 'robotoregular';
src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAE7wAA8AAAAAfWQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABWAAAABwAAAAcZ5vbxEdERUYAAAF0AAAAHgAAAB4AJwGVT1MvMgAAAZQAAABRAAAAYLihUHljbWFwAAAB6AAAAeIAAANmxa/pEWN2dCAAAAPMAAAABAAAAAQARAURZ2FzcAAAA9AAAAAIAAAACAAAABBnbHlmAAAD2AAAPNcAAF9A5fsspWhlYWQAAECwAAAAMQAAADYGDO5CaGhlYQAAQOQAAAAhAAAAJAxmBqdobXR4AABBCAAABCUAAAY8ObKDomxvY2EAAEUwAAADCgAAAyA3Jk+0bWF4cAAASDwAAAAfAAAAIAGgAOBuYW1lAABIXAAAAbUAAAOQMAuLK3Bvc3QAAEoUAAAE0gAAC6abmAiwd2ViZgAATugAAAAGAAAABqFXVUYAAAABAAAAANE/eMAAAAAAxPARLgAAAADRbFHVAAEAAAAMAAAAFgAAAAIAAQABAY4AAQAEAAAAAgAAAAB42mNgZjnOOIGBlYGFdRarMQMDozyEZr7IkMbEgAweMDD9D2BQiAYyFUD8gsqiYiDFpPqHjeEfkMGRxBSswMA435+RgYHFinUDWB0jAJwtDhcAAAB42q2SyU8UQRSHv+puUFBEARUQsRgFF9xwB7dxX1FxAxTFlRHc43ph3BG9ePCmHozGBOJ2QBISjUYORM9eDGCkD/IfeLLbRzmjZIgkeqB
@arseniy-panfilov
arseniy-panfilov / exr_to_srgb.py
Last active March 22, 2024 13:10
Convert .EXR image to pillow's `Image` with gamma encoding
from PIL import Image
import OpenEXR
import Imath
import numpy
import numexpr as ne
FLOAT = Imath.PixelType(Imath.PixelType.FLOAT)
def exr_to_array(exrfile):