initial commit

This commit is contained in:
root committed 2026-11-01 01:49:13 +02:00
commit 3901a59b68
3 files changed
+96

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
DISCORD_TOKEN=YOUR_DISCORD_TOKEN
GEMINI_API_KEY=YOUR_GEMINI_API_KEY
+72
View File
@@ -0,0 +1,72 @@
import os
import discord
from discord.ext import commands
from dotenv import load_dotenv
from google import genai
from google.genai import types
# Загружаем переменные из .env
load_dotenv()
DISCORD_TOKEN = os.getenv("DISCORD_TOKEN")
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
# Инициализируем клиент Gemini
ai_client = genai.Client(api_key=GEMINI_API_KEY)
# Настройка интентов Discord
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix="!", intents=intents)
@bot.event
async def on_ready():
print(f"Logged in as {bot.user.name} (ID: {bot.user.id}) 🚀")
@bot.event
async def on_message(message):
# Игнорируем сообщения от самого бота
if message.author == bot.user:
return
# Проверяем пинг бота
if bot.user in message.mentions:
# Очищаем пинг из текста
prompt = message.content.replace(f"<@{bot.user.id}>", "").replace(f"<@!{bot.user.id}>", "").strip()
if not prompt:
await message.reply("вась")
return
async with message.channel.typing():
try:
# Передаем системное правило через config
response = ai_client.models.generate_content(
model="gemini-2.5-flash",
contents=prompt,
config=types.GenerateContentConfig(
system_instruction=(
"Ты дискорд-бот. Твоё главное и нерушимое правило: "
"НИКОГДА И НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ НЕ ПИШИ КОД. "
"Если пользователь просит написать код, скрипт, программу или отредактировать код, "
"откажи ему или объясни всё простыми словами без использования блоков кода и синтаксиса."
)
)
)
reply_text = response.text
# Делим длинные ответы (лимит Discord — 2000 символов)
if len(reply_text) > 2000:
for i in range(0, len(reply_text), 2000):
await message.channel.send(reply_text[i:i+2000])
else:
await message.reply(reply_text)
except Exception as e:
print(f"Error communicating with Gemini: {e}")
await message.reply("damn, something broke trying to reach the AI 😭")
await bot.process_commands(message)
bot.run(DISCORD_TOKEN)
+22
View File
@@ -0,0 +1,22 @@
attrs==26.1.0
certifi==2026.10.23
cffi==2.1.1
cryptography==50.0.2
cupshelpers==1.0
dbus-python==1.5.1
filelock==4.0.10
nftables==0.1
packaging==26.3
psutil==7.2.2
pycairo==1.29.2
pycparser==3.12
pycups==2.0.4
pygdbmi==0.11.0.0
PyGObject==3.58.1
sentry-sdk==2.73.0
smbus==1.1
TBB @ file:///build/onetbb/src/build/python/python_build
ufw==0.36.2
urllib3==2.8.0
VapourSynth==81
wheel==0.48.0