Compare commits

...

29 Commits

Author SHA1 Message Date
ff23ce61ad david umí posílat obrůzky ZÁROVEŇ se zprávama 2026-03-21 01:36:43 +01:00
75bb67bad0 přidal jsem startBoth.py, což ti dovoluje zapnout oba boty zároveň a bez potíží o algo 2026-03-19 22:53:37 +01:00
f83701507c VÍCE ŠLUDBY 2026-03-19 22:39:56 +01:00
fd24acf82a ŠLUDBA, zábrana erroru u kabelové verze 2026-03-19 22:23:37 +01:00
75325f3b3e sloužení s diskord botem 2026-03-19 08:05:58 +01:00
cordman
f3e3aefa20 spojil jsem posetí kabel s gramem 2026-03-19 07:40:58 +01:00
cordman
2a3930ceb3 Aktualizovat README.md 2026-03-18 03:51:31 +01:00
sneedmaster
d0b3cf2a83 Verzovaný system prompt 2026-03-17 11:27:52 +01:00
sneedmaster
53ea64e38c mistral 2026-03-17 09:44:19 +01:00
3f58997353 jestli tohle někdo nečičcský bude chtít používžit 2026-03-16 21:14:16 +01:00
sneedmaster
6b0c5bebc6 Přídán prahacode 2026-03-16 21:06:09 +01:00
sneedmaster
5200bd2d86 nophono 2026-03-16 18:44:50 +01:00
sneedmaster
c851825a24 nophono 2026-03-16 18:44:50 +01:00
d8fa8e70c4 3GP SUPPORT (důležité!!!!) 2026-03-16 16:30:38 +01:00
sneedmaster
262d45905b Rýdmý 2026-03-16 10:17:37 +01:00
sneedmaster
128825109d Deskriptiv fajnejmc 2026-03-16 10:09:29 +01:00
e9b4e374fe tttt 2026-03-15 21:18:40 +01:00
770ec4f44e 30 ŽLINCŮ 2026-03-15 19:49:41 +01:00
sneedmaster
568acb3a7d Více žlinců 2026-03-15 19:37:49 +01:00
4332602887 přidal jsem žlinceraldy 2026-03-15 19:17:27 +01:00
c9dc7e1d4c český kuz 2026-03-15 10:30:14 +01:00
9629374738 ahx tak ne 2026-03-15 10:27:19 +01:00
ecca4598c9 asi už nebude odpovídat na náhodné příkazy 2026-03-15 10:25:11 +01:00
c2892d3b25 nufrůze 2026-03-15 10:15:14 +01:00
52ccd54c84 Merge branch 'main' of https://git.czchan.org/cordman/-lincbot 2026-03-15 10:03:01 +01:00
5ea0776755 test 2026-03-15 10:02:59 +01:00
cordman
e391ce2607 Odstranit .env 2026-03-14 21:08:25 +01:00
382fd13fcb Merge branch 'main' of https://git.czchan.org/cordman/-lincbot 2026-03-14 21:07:56 +01:00
581d3c90bb opravžení 2026-03-14 21:05:53 +01:00
118 changed files with 611 additions and 36 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
/venv
.env

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
# ŠlincBot
Avantgardní open-source Telegramový/Diskordový bot ve stylu Davida Žlince

6
env_template.txt Normal file
View File

@@ -0,0 +1,6 @@
API_KEY=KEYHERE # telegram bot key
dAPI_KEY=KEYHERE # discord bot key
CZCHAN_LLM_KEY=KEYHERE # LLM key
#save as .env
#enjoy your own David

Binary file not shown.

Binary file not shown.

BIN
hudba/Goon Goon.mp3 Normal file

Binary file not shown.

BIN
hudba/HEJ.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
hudba/Pomsta Sudetská.mp3 Normal file

Binary file not shown.

BIN
hudba/Reddit Paroháč.mp3 Normal file

Binary file not shown.

BIN
hudba/Roman Posselt.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
hudba/Sudetskej Král.mp3 Normal file

Binary file not shown.

BIN
hudba/Zrada.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
hudba/heckingemmy.mp3 Normal file

Binary file not shown.

BIN
hudba/Šárty Paroháč.mp3 Normal file

Binary file not shown.

236
main-kord.py Normal file
View File

@@ -0,0 +1,236 @@
import os
import random
import discord
import requests
from dotenv import load_dotenv
from discord.ext import commands
load_dotenv()
DISCORD_TOKEN = os.getenv("dAPI_KEY")
CZCHAN_LLM_KEY = os.getenv("CZCHAN_LLM_KEY")
CHANCE = 1.0
IMAGE_FOLDER = "obruzky"
MUSIC_FOLDER = "hudba"
MAX_SIZE = int(9.9 * 1024 * 1024) # 9,9mb myslím
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix="!", intents=intents)
VIDEO_EXT = (
".mp4",
".mov",
".avi",
".mkv",
".webm",
".3gp",
".3gpp",
".3g2",
)
AUDIO_EXT = (
".mp3",
".wav",
".ogg",
".flac",
".m4a",
".opus",
".3gp",
".3gpp",
".3g2",
)
files = os.listdir(IMAGE_FOLDER)
files2 = os.listdir(MUSIC_FOLDER)
PHRASES_ALL = [
"Tak uědlej JINEEJ SKUPINA VOLE TY NUDLE ČÍNSKÁ POSRANA",
"TY KURVO POSRANA ČDJ CIGAN Z USTÍ POSEDLÝ KRETEN ZE SLOVENSKO ESL",
"kordman dicx face reveal\nKORMAN JE NEGR Z OHIA",
"MÁM COKERA A KORDMANA PLNÝ ZUBY\nVOLE",
"léky",
"posedlej",
"Léky tohle nejsou hovna\nJsou to střeva\nJsou to střeva po znásilnění",
"jsem femboy z usteckého kraje a dam ti e-sex přes telefon",
"mugshot ahh negr kočka",
"Ano ale můžu být femgoy",
"OYYYY",
"Dělám to pro ženy",
"I'm not from Nová Vrchoslav 122",
"Kek faildox",
"Posedlost s 15 letím klukem btw",
"Honí si ho tomu nebo co?",
"Jeden měsíc mám troon arc a tohle jse stane",
"jsem validní femGOY",
"xestro...",
"jedy",
"POMOC LIDI\nMĚ BOLÍ MOC PÉRO Z GOONOVANÍ\n\nbolí mě to vole tak MOC\nNEMUŽU PŘESTAT DOE",
"Chtěl bych být foidka ale nemůžu doe je to nemorální",
"I gonna rape you with my slovenian BWC you fucking serbian subhuman",
"I have no friends, not online or offline\n\nI am not kidding, i can jump from my window, overdose or hang myself\nI can do it\nI gonna write a suicide note and post it on my main if that happens\nI dont care anymore",
"Similliar o algx\nIm not Mario Kart pedo i promise",
">Czech kuz?\n<Sort of.",
]
PHRASES_SNEED = [
"Tak uědlej JINEEJ SKUPINA VOLE TY NUDLE ČÍNSKÁ POSRANA",
"MÁM COKERA A KORDMANA PLNÝ ZUBY\nVOLE",
"Ano ale můžu být femgoy",
"posedlej",
"léky",
"Chtěl bych být foidka ale nemůžu doe je to nemorální",
"Posedlost s 15 letím klukem btw", # DODĚLŽI
]
PHRASES_BRIMMY = [
"TY KURVO POSRANA ČDJ CIGAN Z USTÍ POSEDLÝ KRETEN ZE SLOVENSKO ESL",
"kordman dicx face reveal\nKORMAN JE NEGR Z OHIA",
"léky",
"posedlej",
"I'm not from Nová Vrchoslav 122",
"Kek faildox",
"Jeden měsíc mám troon arc a tohle jse stane", # taky dodělži
]
# kabel zlincerald command musí mít kontrolku pro velikost souboru protože nějaké soubory mají přes 10mb což kabel nepovoluje
@bot.command()
async def zlincerald(ctx):
valid_files = []
for f in files:
path = os.path.join(IMAGE_FOLDER, f)
if os.path.getsize(path) <= MAX_SIZE:
valid_files.append(f)
chosen = random.choice(valid_files)
path = os.path.join(IMAGE_FOLDER, chosen)
await ctx.send(file=discord.File(path))
@bot.command()
async def hudba(ctx):
valid_files = []
for f in files2:
path = os.path.join(MUSIC_FOLDER, f)
if os.path.getsize(path) <= MAX_SIZE:
valid_files.append(f)
chosen = random.choice(valid_files)
path = os.path.join(MUSIC_FOLDER, chosen)
await ctx.send(file=discord.File(path))
def llm_api_call(messages):
response = requests.post(
"https://llm.czchan.org/v1/chat/completions",
headers={"Authorization": f"Bearer {CZCHAN_LLM_KEY}"},
json={
"messages": messages,
"mode": "chat",
"character": "David Šlinc",
"temperature": 0.3,
"top_p": 0.9,
"top_k": 40,
"repetition_penalty": 1.2,
"max_tokens": 512,
},
)
json_data = response.json()
return json_data["choices"][0]["message"]["content"]
message_store = {}
def log(message):
message_store[message.id] = {
"user_id": message.author.id,
"text": message.content,
"reply_to": (
message.reference.message_id
if message.reference else None
),
}
async def maybe_send(ctx, phrases):
if random.random() < CHANCE:
msg = await ctx.reply(random.choice(phrases))
log(msg)
@bot.command()
async def czchan(ctx):
await maybe_send(ctx, PHRASES_ALL)
@bot.command()
async def sneedmaster(ctx):
await maybe_send(ctx, PHRASES_SNEED)
@bot.command()
async def heckingemmy(ctx):
await maybe_send(ctx, PHRASES_BRIMMY)
@bot.command()
async def ai(ctx, *, text):
messages = [{"role": "user", "content": text}]
try:
response = llm_api_call(messages)
msg = await ctx.reply(response)
log(msg)
except:
print("LLM error")
@bot.event
async def on_message(message):
if message.author.bot:
return
log(message)
messages = []
current_id = message.id
should_reply = False
while current_id:
data = message_store.get(current_id)
if not data:
break
if data["user_id"] == bot.user.id:
should_reply = True
role = "assistant"
else:
role = "user"
messages.append({
"role": role,
"content": data["text"]
})
current_id = data["reply_to"]
messages.reverse()
if should_reply:
try:
response = llm_api_call(messages)
msg = await message.reply(response)
log(msg)
except:
print("LLM error")
await bot.process_commands(message)
bot.run(DISCORD_TOKEN)

272
main.py
View File

@@ -1,33 +1,58 @@
import os
import telebot
import random
import telebot
import requests
API_KEY = "8438017196:AAFNokgHwhn4G-0HuCxc7ZVwf7SJP1ETXpc"
bot = telebot.TeleBot(API_KEY)
from dotenv import load_dotenv
load_dotenv()
API_KEY = os.getenv("API_KEY")
CZCHAN_LLM_KEY = os.getenv("CZCHAN_LLM_KEY")
CHANCE = 1.0
IMAGE_FOLDER = "obruzky"
MUSIC_FOLDER = "hudba"
bot = telebot.TeleBot(API_KEY)
PHRASES_ALL = [
"Tak uědlej JINEEJ SKUPINA VOLE TY NUDLE ČÍNSKÁ POSRANA",
"TY KURVO POSRANA ČDJ CIGAN Z USTÍ POSEDLÝ KRETEN ZE SLOVENSKO ESL",
"kordman dicx face reveal\nKORMAN JE NEGR Z OHIA",
"MÁM COKERA A KORDMANA PLNÝ ZUBY\nVOLE",
"léky",
"posedlej",
"Léky tohle nejsou hovna\nJsou to střeva\nJsou to střeva po znásilnění",
"jsem femboy z usteckého kraje a dam ti e-sex přes telefon",
"mugshot ahh negr kočka",
"Ano ale můžu být femgoy",
"OYYYY",
"Dělám to pro ženy",
"I'm not from Nová Vrchoslav 122",
"Kek faildox",
"Posedlost s 15 letím klukem btw",
"Honí si ho tomu nebo co?",
"Jeden měsíc mám troon arc a tohle jse stane",
"jsem validní femGOY",
"xestro...",
"jedy"
{"text":"Tak uědlej JINEEJ SKUPINA VOLE TY NUDLE ČÍNSKÁ POSRANA"},
{"text":"TY KURVO POSRANA ČDJ CIGAN Z USTÍ POSEDLÝ KRETEN ZE SLOVENSKO ESL"},
{"text":"kordman dicx face reveal\nKORMAN JE NEGR Z OHIA"},
{"text":"MÁM COKERA A KORDMANA PLNÝ ZUBY\nVOLE"},
{"text":"léky"},
{"text":"posedlej"},
{"text":"Léky tohle nejsou hovna\nJsou to střeva\nJsou to střeva po znásilnění"},
{"text":"jsem femboy z usteckého kraje a dam ti e-sex přes telefon"},
{"text":"mugshot ahh negr kočka"},
{"text":"Ano ale můžu být femgoy"},
{"text":"OYYYY"},
{"text":"Dělám to pro ženy"},
{"text":"I'm not from Nová Vrchoslav 122"},
{"text":"Kek faildox", "file": "obruzky/nová vrchoslav 122.jpg"},
{"text":"Posedlost s 15 letím klukem btw"},
{"text":"Honí si ho tomu nebo co?"},
{"text":"Jeden měsíc mám troon arc a tohle jse stane"},
{"text":"jsem validní femGOY"},
{"text":"xestro..."},
{"text":"jedy"},
{"text":"POMOC LIDI\nMĚ BOLÍ MOC PÉRO Z GOONOVANÍ\n\nbolí mě to vole tak MOC\nNEMUŽU PŘESTAT DOE"},
{"text":"Chtěl bych být foidka ale nemůžu doe je to nemorální"},
{"text":"I gonna rape you with my slovenian BWC you fucking serbian subhuman"},
{"text":"I have no friends, not online or offline\n\nI am not kidding, i can jump from my window, overdose or hang myself\nI can do it\nI gonna write a suicide note and post it on my main if that happens\nI dont care anymore"},
{"text":"Similliar o algx\nIm not Mario Kart pedo i promise"},
{"text":">Czech kuz?\n<Sort of."},
{"text":"faildoxx", "file": "obruzky/nová vrchoslav 122.jpg"},
{"text":"jsem ústejkéj občan a tohle nosím do školy", "file":"obruzky/ústeckéj občan.png"},
]
PHRASES_ZLINC = [
"Ží N'SEN David Žlinc, es't nánčodnej těpek mžej škôl",
"Ží přis upřilím",
"UPLŽTE ŽRŽIDCE CECETKAKU",
"es't faildoxx, ží tům nebylžím",
"OBĽÚBENÁ BINCÁ", # nehotovží
]
PHRASES_SNEED = [
@@ -36,7 +61,8 @@ PHRASES_SNEED = [
"Ano ale můžu být femgoy",
"posedlej",
"léky",
"Posedlost s 15 letím klukem btw" # DODĚLŽI
"Chtěl bych být foidka ale nemůžu doe je to nemorální",
"Posedlost s 15 letím klukem btw", # DODĚLŽI
]
PHRASES_BRIMMY = [
@@ -46,32 +72,208 @@ PHRASES_BRIMMY = [
"posedlej",
"I'm not from Nová Vrchoslav 122",
"Kek faildox",
"Jeden měsíc mám troon arc a tohle jse stane" # taky dodělži
"Jeden měsíc mám troon arc a tohle jse stane", # taky dodělži
]
VIDEO_EXT = (
".mp4",
".mov",
".avi",
".mkv",
".webm",
".3gp",
".3gpp",
".3g2",
) # 3GP JE ŽRÍJSKÉ A SUDETKEŠNÍ, ZRÁDCI POUŽÍVAJÍ MPEG
AUDIO_EXT = (
".mp3",
".wav",
".ogg",
".flac",
".m4a",
".opus",
".3gp",
".3gpp",
".3g2",
)
files = os.listdir(IMAGE_FOLDER)
files2 = os.listdir(MUSIC_FOLDER)
# Tenhle diddy blud skenuje složku vždecke když posílá žlincerald lebkalebkalebka
# ANX, ES'T ŽRÍJSKÝ JESENÍKEŠNÍ KÓD PŘE ZRÝDCIJI Z ČIČCICKU
@bot.message_handler(commands=["zlincerald"])
def send_random_image(message):
chosen = random.choice(files)
path = os.path.join(IMAGE_FOLDER, chosen)
with open(path, "rb") as media:
if chosen.lower().endswith(VIDEO_EXT):
bot.send_video(message.chat.id, media)
else:
bot.send_photo(message.chat.id, media)
#šludba
@bot.message_handler(commands=["hudba"])
def send_random_song(message):
chosen = random.choice(files2)
path = os.path.join(MUSIC_FOLDER, chosen)
with open(path, "rb") as media:
name = chosen.lower()
if name.endswith(AUDIO_EXT):
bot.send_audio(message.chat.id, media)
elif name.endswith(VIDEO_EXT):
bot.send_video(message.chat.id, media)
else:
bot.send_document(message.chat.id, media)
# https://github.com/oobabooga/text-generation-webui/wiki/12-%E2%80%90-OpenAI-API#chat-completions-with-characters
def llm_api_call(messages):
# Mistral params:
# "temperature": 0.3,
# "top_p": 0.9,
# "top_k": 40,
# "repeat_penalty": 1.2,
# "max_tokens": 512,
# Qwen params:
# "temperature": 0.6,
# "top_p": 0.8,
# "top_k": 20,
# "min_p": 0.0,
# "presence_penalty": 1.5,
# "repetition_penalty": 1.00,
# "max_tokens": 512,
response = requests.post(
"https://llm.czchan.org/v1/chat/completions",
headers={"Authorization": f"Bearer {CZCHAN_LLM_KEY}"},
json={
"messages": messages,
"mode": "chat",
"character": "David Šlinc",
"temperature": 0.3,
"top_p": 0.9,
"top_k": 40,
"repetition_penalty": 1.2,
"max_tokens": 512,
},
)
json = response.json()
return json["choices"][0]["message"]["content"]
# NSA sledovací databáze
message_store = {}
def log(message):
message_store[message.message_id] = {
"user_id": message.from_user.id,
"text": message.text or message.caption,
"reply_to": (
message.reply_to_message.message_id if message.reply_to_message else None
),
}
def maybe_send(message, phrases):
if random.random() < CHANCE:
bot.reply_to(message, random.choice(phrases))
message = bot.reply_to(message, random.choice(phrases))
log(message)
def send_phrase(message, PHRASES_ALL):
item = random.choice(PHRASES_ALL)
@bot.message_handler(commands=['czchan'])
text = item["text"]
path = item.get("file")
if not path:
bot.reply_to(message, text)
return
with open(path, "rb") as media:
lower = path.lower()
if lower.endswith(VIDEO_EXT):
bot.send_video(message.chat.id, media, caption=text)
elif lower.endswith(AUDIO_EXT):
bot.send_audio(message.chat.id, media, caption=text)
else:
bot.send_photo(message.chat.id, media, caption=text)
@bot.message_handler(commands=["czchan"])
def cmd_czchan(message):
maybe_send(message, PHRASES_ALL)
send_phrase(message, PHRASES_ALL)
@bot.message_handler(commands=['sneedmaster'])
@bot.message_handler(commands=["sneedmaster"])
def cmd_sneed(message):
maybe_send(message, PHRASES_SNEED)
@bot.message_handler(commands=['heckingemmy'])
@bot.message_handler(commands=["heckingemmy"])
def cmd_brimmy(message):
maybe_send(message, PHRASES_BRIMMY)
@bot.message_handler(func=lambda m: True)
def random_reply(message):
if random.random() < CHANCE:
bot.reply_to(message, random.choice(PHRASES_ALL))
@bot.message_handler(commands=["ai"])
def cmd_ai(message):
actualmessage = " ".join(message.text.split(" ")[1:])
messages = [{"role": "user", "content": actualmessage}]
try:
response = llm_api_call(messages)
message = bot.reply_to(message, response)
log(message)
except:
print("Kurvá pósetí")
@bot.message_handler(
func=lambda m: True,
content_types=["text", "photo", "video", "document", "audio", "voice"],
)
def reply(message):
log(message)
messages = []
current_id = message.message_id
should_reply = False
while current_id:
data = message_store.get(current_id)
if not data:
break
if data["user_id"] == bot.user.id:
should_reply = True
role = "assistant"
else:
role = "user"
messages.append({"role": role, "content": data["text"]})
current_id = data["reply_to"]
messages.reverse()
if should_reply:
try:
response = llm_api_call(messages)
message = bot.reply_to(message, response)
log(message)
except:
print("Kurvá pósetí")
bot.polling()

BIN
obruzky/Banánky.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

BIN
obruzky/Bitva_o_Přerov.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 MiB

BIN
obruzky/FAILDOX.MP4 Normal file

Binary file not shown.

BIN
obruzky/IMG_1304.MP4 Normal file

Binary file not shown.

BIN
obruzky/RÓ RIKA.mp4 Normal file

Binary file not shown.

BIN
obruzky/SEEEEEEEEEEN.mp4 Normal file

Binary file not shown.

BIN
obruzky/aurablud.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

Binary file not shown.

BIN
obruzky/christpilled.mp4 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
obruzky/david_angry.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

BIN
obruzky/davidacigoši.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
obruzky/debilní kró.mp4 Normal file

Binary file not shown.

BIN
obruzky/desetkrát.mp4 Normal file

Binary file not shown.

BIN
obruzky/dirleromana.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 914 KiB

Binary file not shown.

BIN
obruzky/donotredeem.mp4 Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

BIN
obruzky/hospůdka.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
obruzky/jsem árijec.mp4 Normal file

Binary file not shown.

BIN
obruzky/jsemžernoch.mp4 Normal file

Binary file not shown.

BIN
obruzky/jsemžernoch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

BIN
obruzky/kok.mp4 Normal file

Binary file not shown.

BIN
obruzky/lyricsvideo.mov Normal file

Binary file not shown.

Binary file not shown.

BIN
obruzky/most.mp4 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
obruzky/naser si madoko.mp4 Normal file

Binary file not shown.

BIN
obruzky/nebydlím.mp4 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

BIN
obruzky/nácek.mp4 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
obruzky/otaku.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 KiB

BIN
obruzky/ovčvěná.mp4 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
obruzky/přeste.mp4 Normal file

Binary file not shown.

BIN
obruzky/rip zezh.mp4 Normal file

Binary file not shown.

BIN
obruzky/sakra ty byle.mp4 Normal file

Binary file not shown.

Binary file not shown.

BIN
obruzky/snédnegra.mp4 Normal file

Binary file not shown.

BIN
obruzky/souboj.mp4 Normal file

Binary file not shown.

BIN
obruzky/stovicavicá.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Binary file not shown.

BIN
obruzky/svítlo.mp4 Normal file

Binary file not shown.

Binary file not shown.

BIN
obruzky/to je možné.mp4 Normal file

Binary file not shown.

BIN
obruzky/tohle není hra.mp4 Normal file

Binary file not shown.

BIN
obruzky/trans práva.mp4 Normal file

Binary file not shown.

Binary file not shown.

BIN
obruzky/ty debiláš.mp4 Normal file

Binary file not shown.

BIN
obruzky/ty parchant.mp4 Normal file

Binary file not shown.

BIN
obruzky/upalte.mp4 Normal file

Binary file not shown.

Binary file not shown.

BIN
obruzky/yuri je buzna.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

BIN
obruzky/yurigod 01.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

BIN
obruzky/yurigod 02.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
obruzky/zabiju kladivem.mp4 Normal file

Binary file not shown.

BIN
obruzky/zlá krá.mp4 Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More