Přídán prahacode

This commit is contained in:
sneedmaster
2026-03-16 21:06:09 +01:00
parent 5200bd2d86
commit 6b0c5bebc6

130
main.py
View File

@@ -8,21 +8,30 @@ from dotenv import load_dotenv
load_dotenv() load_dotenv()
API_KEY = os.getenv("API_KEY") API_KEY = os.getenv("API_KEY")
CZCHAN_LLM_KEY = os.getenv("CZCHAN_LLM_KEY")
bot = telebot.TeleBot(API_KEY) bot = telebot.TeleBot(API_KEY)
print(API_KEY) # testžím
CHANCE = 1.0 CHANCE = 1.0
IMAGE_FOLDER = "obruzky" IMAGE_FOLDER = "obruzky"
VIDEO_EXT = (
".mp4",
".mov",
".avi",
".mkv",
".webm",
".3gp",
".3gpp",
".3g2",
) # 3GP JE ŽRÍJSKÉ A SUDETKEŠNÍ, ZRÁDCI POUŽÍVAJÍ MPEG
files = os.listdir(IMAGE_FOLDER)
VIDEO_EXT = (".mp4", ".mov", ".avi", ".mkv", ".webm", ".3gp", ".3gpp", ".3g2") #3GP JE ŽRÍJSKÉ A SUDETKEŠNÍ, ZRÁDCI POUŽÍVAJÍ MPEG
# Tenhle diddy blud skenuje složku vždecke když posílá žlincerald lebkalebkalebka # 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 # ANX, ES'T ŽRÍJSKÝ JESENÍKEŠNÍ KÓD PŘE ZRÝDCIJI Z ČIČCICKU
@bot.message_handler(commands=['zlincerald']) @bot.message_handler(commands=["zlincerald"])
def send_random_image(message): def send_random_image(message):
files = os.listdir(IMAGE_FOLDER)
chosen = random.choice(files) chosen = random.choice(files)
path = os.path.join(IMAGE_FOLDER, chosen) path = os.path.join(IMAGE_FOLDER, chosen)
@@ -33,6 +42,31 @@ def send_random_image(message):
else: else:
bot.send_photo(message.chat.id, media) bot.send_photo(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):
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.6,
"top_p": 0.8,
"top_k": 20,
"min_p": 0.0,
"presence_penalty": 1.5,
"repetition_penalty": 1.00,
"max_tokens": 200,
},
)
json = response.json()
return json["choices"][0]["message"]["content"]
PHRASES_ALL = [ PHRASES_ALL = [
"Tak uědlej JINEEJ SKUPINA VOLE TY NUDLE ČÍNSKÁ POSRANA", "Tak uědlej JINEEJ SKUPINA VOLE TY NUDLE ČÍNSKÁ POSRANA",
"TY KURVO POSRANA ČDJ CIGAN Z USTÍ POSEDLÝ KRETEN ZE SLOVENSKO ESL", "TY KURVO POSRANA ČDJ CIGAN Z USTÍ POSEDLÝ KRETEN ZE SLOVENSKO ESL",
@@ -59,7 +93,7 @@ PHRASES_ALL = [
"I gonna rape you with my slovenian BWC you fucking serbian subhuman", "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", "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", "Similliar o algx\nIm not Mario Kart pedo i promise",
">Czech kuz?\n<Sort of." ">Czech kuz?\n<Sort of.",
] ]
PHRASES_ZLINC = [ PHRASES_ZLINC = [
@@ -67,7 +101,7 @@ PHRASES_ZLINC = [
"Ží přis upřilím", "Ží přis upřilím",
"UPLŽTE ŽRŽIDCE CECETKAKU", "UPLŽTE ŽRŽIDCE CECETKAKU",
"es't faildoxx, ží tům nebylžím", "es't faildoxx, ží tům nebylžím",
"OBĽÚBENÁ BINCÁ" # nehotovží "OBĽÚBENÁ BINCÁ", # nehotovží
] ]
PHRASES_SNEED = [ PHRASES_SNEED = [
@@ -77,7 +111,7 @@ PHRASES_SNEED = [
"posedlej", "posedlej",
"léky", "léky",
"Chtěl bych být foidka ale nemůžu doe je to nemorální", "Chtěl bych být foidka ale nemůžu doe je to nemorální",
"Posedlost s 15 letím klukem btw" # DODĚLŽI "Posedlost s 15 letím klukem btw", # DODĚLŽI
] ]
PHRASES_BRIMMY = [ PHRASES_BRIMMY = [
@@ -87,33 +121,91 @@ PHRASES_BRIMMY = [
"posedlej", "posedlej",
"I'm not from Nová Vrchoslav 122", "I'm not from Nová Vrchoslav 122",
"Kek faildox", "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
] ]
# 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): def maybe_send(message, phrases):
if random.random() < CHANCE: if random.random() < CHANCE:
bot.reply_to(message, random.choice(phrases)) message = bot.reply_to(message, random.choice(phrases))
log(message)
@bot.message_handler(commands=['czchan']) @bot.message_handler(commands=["czchan"])
def cmd_czchan(message): def cmd_czchan(message):
maybe_send(message, PHRASES_ALL) maybe_send(message, PHRASES_ALL)
@bot.message_handler(commands=['sneedmaster']) @bot.message_handler(commands=["sneedmaster"])
def cmd_sneed(message): def cmd_sneed(message):
maybe_send(message, PHRASES_SNEED) maybe_send(message, PHRASES_SNEED)
@bot.message_handler(commands=['heckingemmy']) @bot.message_handler(commands=["heckingemmy"])
def cmd_brimmy(message): def cmd_brimmy(message):
maybe_send(message, PHRASES_BRIMMY) maybe_send(message, PHRASES_BRIMMY)
@bot.message_handler(func=lambda m: True) @bot.message_handler(commands=["ai"])
def random_reply(message): def cmd_ai(message):
if random.random() < CHANCE: actualmessage = " ".join(message.text.split(" ")[1:])
bot.reply_to(message, random.choice(PHRASES_ALL)) messages = [{"role": "user", "content": actualmessage}]
bot.polling() 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:
response = llm_api_call(messages)
message = bot.reply_to(message, response)
log(message)
bot.polling()