- 1
Рубрика "плагины к Kodi" вернулась!
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Рубрика "плагины к Kodi" вернулась!
http://kodi-addons.club/addon/plugin.video.viks.tv/4.2.0
Качаем, открываем epg.db (формат sqlite), охуеваем. Можно еще поизучать файлы напитоне.
0
def _get_list(self, string):
"""
response to list parser, removes CSV list headers
"""
def f(x):
return x != '' and \
x != 'Created,e-Voucher number,Activation code,Currency,Batch,Payer Account,Payee Account,Activated,Amount' and \
x != 'Time,Type,Batch,Currency,Amount,Fee,Payer Account,Payee Account,Payment ID,Memo'
if not string:
return []
rlist = string.split('\n')
return filter(f, rlist)
https://perfectmoney.is/acct/samples/python/class.txt
Класс для работы с платёжным API
0
import re
alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
text = input('Enter your message: ')
text = re.findall(r'\w', text)
key = input('Enter your key: ')
key = int(key)
a = len(text)
b = 0
num = 0
message = []
c = ''
for i in range(a):
num = alphabet.index(text[b])
num = num + key
b = b + 1
if num <= 25:
message.append(alphabet[num])
else:
num = num%25 - 1
message.append(alphabet[num])
print(text)
print(message)
for i in range(a):
c += message[(i)]
print(c)
Шифр Цезаря
0
import tkinter
import random
# constants
WIDTH = 540
HEIGHT = 480
BG_COLOR = 'white'
MAIN_BALL_COLOR = 'blue'
MAIN_BALL_RADIUS = 25
COLORS = ['aqua', 'fuchsia', 'pink', 'yellow', 'gold', 'chartreuse']
NUM_OF_BALLS = 9
MAX_RADIUS = 35
MIN_RADIUS = 15
DELAY = 8
INIT_DX = 1
INIT_DY = 1
ZERO = 0
# ball class
class Ball():
def __init__(self, x, y, r, color, dx=0, dy=0):
self.x = x
self.y = y
self.r = r
self.color = color
self.dx = dx
self.dy = dy
def draw(self):
canvas.create_oval(self.x - self.r, self.y - self.r, self.x + self.r, self.y + self.r, fill=self.color,
outline=self.color)
def hide(self):
canvas.create_oval(self.x - self.r, self.y - self.r, self.x + self.r, self.y + self.r, fill=BG_COLOR,
outline=BG_COLOR)
def is_collision(self, ball):
a = abs(self.x + self.dx - ball.x)
b = abs(self.y + self.dy - ball.y)
return (a * a + b * b) ** 0.5 <= self.r + ball.r
def move(self):
# collision with the walls
if (self.x + self.r + self.dx >= WIDTH) or (self.x - self.r + self.dx <= ZERO):
self.dx = -self.dx
if (self.y + self.r + self.dy >= HEIGHT) or (self.y - self.r + self.dy <= ZERO):
self.dy = -self.dy
self.hide()
self.x += self.dx
self.y += self.dy
if self.dx * self.dy != 0:
self.draw()
# process the mouse events
def mouse_click(event):
global main_ball
if event.num == 1: # left mouse button
if 'main_ball' not in globals(): # старт
main_ball = Ball(event.x, event.y, MAIN_BALL_RADIUS, MAIN_BALL_COLOR, INIT_DX, INIT_DY)
if main_ball.x > WIDTH / 2:
main_ball.dx = -main_ball.dx
if main_ball.y > HEIGHT / 2:
main_ball.dy = -main_ball.dy
main_ball.draw()
# create a list of objects-balls
def create_list_of_balls(number):
lst = []
return lst
# games main loop
def main():
if 'main_ball' in globals():
main_ball.move()
root.after(DELAY, main)
# create a window, the canvas and start game
root = tkinter.Tk()
root.title("Colliding Balls")
canvas = tkinter.Canvas(root, width=WIDTH, height=HEIGHT, bg=BG_COLOR)
canvas.pack()
canvas.bind('<Button-1>', mouse_click)
canvas.bind('<Button-2>', mouse_click, '+')
canvas.bind('<Button-3>', mouse_click, '+')
balls = create_list_of_balls(NUM_OF_BALLS)
if 'main_ball' in globals(): # for restarts
del main_ball
main()
root.mainloop()
0
PYTHONPATH=$(pwd) LANG=C.UTF-8 pipenv run ./scripts/script
Как работает виртуализация в Питоне.
0
def _code_length(code=''):
CODE_MIN_LENGTH = 6
CODE_MAX_LENGTH = 8
if code in range(self.HS_CODE_MIN_LENGTH, self.HS_CODE_MAX_LENGTH + 1):
return code
_cut = lambda hsl: hsl[:self.HS_CODE_MIN_LENGTH]
_pad = lambda hsl: hsl.extend(repeat(0, self.HS_CODE_MIN_LENGTH + 1 - len(hsl)))
hsl = harmonized_code.split()
if len(hsl) < CODE_MIN_LENGTH:
return ''.join(_pad(hsl))
if len(hsl) > CODE_MAX_LENGTH:
return ''.join(_cut(hsl))
0
from tkinter import *
class Space():
def __init__(self):
object=Tk()
object=Canvas(root, bg="green")
object.pack()
object.mainloop()
class Line():
def __init__(self, space):
space.create_line(x, y, x1,y1)
root=Space()
canv=Line(root)
Отсюда http://python.su/forum/topic/34021/
Самое удивительное, что автор шедевра некто Jeka_KOzolup1 - учитель информатики, причем у него довольно высокое мнение о своих преподавательских способностях.
+3
if cur == 'EUR':
alldata['total'] = alldata['total'] * Decimal(58)
alldata['cost'] = alldata['cost'] * Decimal(58)
elif cur == 'USD':
alldata['total'] = alldata['total'] * Decimal(62)
alldata['cost'] = alldata['cost'] * Decimal(62)
elif cur == 'GBP':
alldata['total'] = alldata['total'] * Decimal(71)
alldata['cost'] = alldata['cost'] * Decimal(71)
elif cur == 'UAH':
alldata['total'] = alldata['total'] * Decimal(2)
alldata['cost'] = alldata['cost'] * Decimal(2)
ПроÑтой конвертер валют Ñвоими руками!
💩-💩 и в продакшен!!!
+2
import os
import argparse
import sys
parser = argparse.ArgumentParser(description='tree')
parser.add_argument('path',type=str,)
parser.add_argument('-fo','--folders_only',action='store_true',)
parser.add_argument('-i','--include',type=str,action='store',)
parser.add_argument('-e','--exclude',type=str,action='store',)
parser.add_argument('-a','--all',action='store_true',)
parser.add_argument('-f','--full_name',action='store_true',)
args = parser.parse_args()
print(sys.argv[1])
if args.include:
itext = args.include
if args.exclude:
etext = args.exclude
def divine_crutch(path, n):
dir = os.listdir(path)
for i in range(len(dir)):
if os.path.isfile(path + '\\' + dir[i]):
if not(args.folders_only):
if not(args.include and itext not in dir[i]):
if not(args.exclude and etext in dir[i]):
if not(not(args.all) and dir[i][0] == '.') and not(args.full_name):
print(n*' ', dir[i])
elif args.full_name and not(not(args.all) and dir[i][0] == '.'):
print(n*' ' ,path + '\\' + dir[i])
if os.path.isdir(path + '\\' + dir[i]):
if not(not(args.all) and dir[i][0] == '.') and not(args.full_name):
print(n*' ', dir[i])
elif args.full_name and not(not(args.all) and dir[i][0] == '.'):
print(n*' ' ,path + '\\' + dir[i])
n += 4
divine_crutch(path + '\\' + dir[i], n)
n -= 4
divine_crutch(sys.argv[1], 4)
Рекурсивный велосипед на костыльной тяге. Сей экземпляр является "аналогом системной утилиты tree под линукс". При подходящей фазе луны и выполнении условий ритуала чёрной магии, способен захавать 16 гигов оперативки и крашнуть систему. Прекрасный способ выстрелить в ногу на питоне. Достойное место в моей кунсткамере.
+1
while (1):
for iterator in range(len(posts)):
# Для прозрачности вычислений
time_post_a = datetime.now()
time_post_a = int(time.mktime(time_post_a.timetuple()))
time_post_b = posts[iterator]['time']
time_post_b = int(time.mktime(time_post_b.timetuple()))
# Выполнить действие, в случае, если "время пришло" по массиву posts
if ((time_post_a - time_post_b) == 0):
print ('Итератор: ' + str(iterator) + ', Новая публикация: ' + str(posts[iterator]['time']))
time.sleep(1) # Если его убрать, то начинаются дикие пляски
break
Планировщик постов