Aditya Sharma commited on
Commit
3b7c07e
·
1 Parent(s): 623bd5b
Files changed (6) hide show
  1. .gitignore +1 -0
  2. Dockerfile +19 -0
  3. README copy.md +9 -0
  4. main.py +72 -0
  5. pyproject.toml +15 -0
  6. uv.lock +0 -0
.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ .venv
Dockerfile ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Read the doc: https://huggingface.co/docs/hub/spaces-sdks-docker
2
+ # you will also find guides on how best to write your Dockerfile
3
+
4
+ FROM python:3.12-slim-bookworm
5
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
6
+
7
+ RUN useradd -m -u 1000 user
8
+ USER user
9
+ ENV PATH="/home/user/.local/bin:$PATH"
10
+
11
+ WORKDIR /app
12
+
13
+ COPY --chown=user . .
14
+
15
+ RUN ls
16
+
17
+ RUN pip3 install uvicorn
18
+
19
+ CMD ["uv", "run", "main.py"]
README copy.md ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: DiscordBot
3
+ emoji: 🌖
4
+ colorFrom: yellow
5
+ colorTo: green
6
+ sdk: docker
7
+ pinned: false
8
+ ---
9
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
main.py ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import threading
3
+ from flask import Flask
4
+ from dotenv import load_dotenv
5
+ import discord
6
+ from discord.ext import commands
7
+
8
+ load_dotenv()
9
+
10
+ intents = discord.Intents().default()
11
+ intents.message_content = True
12
+ intents.members = True
13
+ intents.message_content = True
14
+
15
+ bot = commands.Bot(command_prefix="!", intents=intents)
16
+ app = Flask(__name__)
17
+
18
+ async def handle_message(message: discord.Message):
19
+ user = message.author
20
+ content = message.content
21
+
22
+ if not content.startswith("!"):
23
+ return
24
+
25
+ content = content.replace("!", "")
26
+
27
+ command = content.split(" ")
28
+
29
+ if len(command) < 3:
30
+ await message.channel.send("Incorrent format")
31
+ return
32
+
33
+ match command[0]:
34
+ case "repeat":
35
+ try:
36
+ string = command[1]
37
+ repeatTimes = int(command[2])
38
+
39
+ for _ in range(repeatTimes):
40
+ await message.channel.send(string)
41
+ except Exception:
42
+ await message.channel.send("Error occurred!")
43
+
44
+
45
+ @bot.event
46
+ async def on_message(message):
47
+ # Ignore messages from the bot itself
48
+ if message.author == bot.user:
49
+ return
50
+
51
+ await handle_message(message) # Call your function
52
+
53
+ await bot.process_commands(message)
54
+
55
+
56
+ @bot.command()
57
+ async def server_id(ctx):
58
+ await ctx.send(f"The server ID is: {ctx.guild.id}")
59
+
60
+
61
+ def start_flask():
62
+ app.run(port=7860, host="0.0.0.0", debug=False)
63
+
64
+
65
+ @bot.event
66
+ async def on_ready():
67
+ print(f"Bot logged in as {bot.user}")
68
+ flask_thread = threading.Thread(target=start_flask)
69
+ flask_thread.start()
70
+
71
+
72
+ bot.run(os.getenv("DISCORD_BOT_TOKEN"))
pyproject.toml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [project]
2
+ name = "glfriend"
3
+ version = "0.1.0"
4
+ description = "Add your description here"
5
+ readme = "README.md"
6
+ requires-python = ">=3.12"
7
+ dependencies = [
8
+ "discord>=2.3.2",
9
+ "flask>=3.1.0",
10
+ "langchain-community>=0.3.23",
11
+ "langchain-google-genai>=2.1.4",
12
+ "langchain-openai>=0.3.17",
13
+ "langchain-pinecone>=0.2.6",
14
+ "uuid>=1.30",
15
+ ]
uv.lock ADDED
The diff for this file is too large to render. See raw diff