Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -21,7 +21,7 @@ hf_client = InferenceClient("CohereForAI/c4ai-command-r-plus", token=os.getenv("
|
|
21 |
|
22 |
# Pexels API ν€ μ€μ
|
23 |
PEXELS_API_KEY = "5woz23MGx1QrSY0WHFb0BRi29JvbXPu97Hg0xnklYgHUI8G0w23FKH62"
|
24 |
-
|
25 |
|
26 |
# νΉμ μ±λ ID
|
27 |
SPECIFIC_CHANNEL_ID = int(os.getenv("DISCORD_CHANNEL_ID"))
|
@@ -42,7 +42,7 @@ class MyClient(discord.Client):
|
|
42 |
# λ΄μ΄ μμλ λ μλ΄ λ©μμ§λ₯Ό μ μ‘
|
43 |
channel = self.get_channel(SPECIFIC_CHANNEL_ID)
|
44 |
if channel:
|
45 |
-
await channel.send("μ°Ύκ³ μΆμ
|
46 |
|
47 |
async def on_message(self, message):
|
48 |
if message.author == self.user:
|
@@ -56,13 +56,13 @@ class MyClient(discord.Client):
|
|
56 |
# μλ―Έ λΆμνμ¬ μλ¬Έ ν€μλ μΆμΆ
|
57 |
keywords = await extract_keywords(message)
|
58 |
if keywords:
|
59 |
-
# Pexels APIλ‘ κ³ ν΄μλ
|
60 |
video_urls = await search_videos(keywords)
|
61 |
if video_urls:
|
62 |
-
# μμ²μμμ μ°λ λ μμ±
|
63 |
-
await
|
64 |
else:
|
65 |
-
await message.channel.send(f"**{keywords}**μ λν κ³ ν΄μλ
|
66 |
else:
|
67 |
await message.channel.send("ν€μλλ₯Ό μΆμΆν μ μμ΅λλ€.")
|
68 |
finally:
|
@@ -101,46 +101,22 @@ async def search_videos(keywords):
|
|
101 |
}
|
102 |
params = {
|
103 |
"query": keywords,
|
104 |
-
"per_page":
|
105 |
}
|
106 |
-
response = requests.get(
|
107 |
if response.status_code == 200:
|
108 |
data = response.json()
|
109 |
-
|
110 |
-
for video in data['videos']:
|
111 |
-
highest_quality_video = max(video['video_files'], key=lambda x: x['width'] * x['height'])
|
112 |
-
video_urls.append(highest_quality_video['link'])
|
113 |
-
return video_urls
|
114 |
return None
|
115 |
|
116 |
-
async def
|
117 |
-
#
|
118 |
-
thread = await
|
119 |
-
|
120 |
-
if not thread:
|
121 |
-
# μ μ°λ λ μμ±
|
122 |
-
thread = await message.channel.create_thread(name=f"{message.author.name}μ κ²μ κ²°κ³Ό", message=message)
|
123 |
-
|
124 |
-
message_content = f"**{keywords}**μ λν κ³ ν΄μλ λμμ {len(video_urls)}κ°λ₯Ό μ°Ύμμ΅λλ€:"
|
125 |
await thread.send(message_content)
|
126 |
for url in video_urls:
|
127 |
await thread.send(url)
|
128 |
|
129 |
-
async def find_existing_thread(message):
|
130 |
-
# μ±λμ λͺ¨λ νμ± μ°λ λ κ°μ Έμ€κΈ°
|
131 |
-
active_threads = await message.channel.active_threads()
|
132 |
-
for thread in active_threads:
|
133 |
-
if thread.starter_message_id == message.id:
|
134 |
-
return thread
|
135 |
-
|
136 |
-
# μ±λμ λͺ¨λ 보κ΄λ μ°λ λ κ°μ Έμ€κΈ°
|
137 |
-
archived_threads = await message.channel.archived_threads().flatten()
|
138 |
-
for thread in archived_threads:
|
139 |
-
if thread.starter_message_id == message.id:
|
140 |
-
return thread
|
141 |
-
|
142 |
-
return None
|
143 |
-
|
144 |
if __name__ == "__main__":
|
145 |
discord_client = MyClient(intents=intents)
|
146 |
discord_client.run(os.getenv('DISCORD_TOKEN'))
|
|
|
21 |
|
22 |
# Pexels API ν€ μ€μ
|
23 |
PEXELS_API_KEY = "5woz23MGx1QrSY0WHFb0BRi29JvbXPu97Hg0xnklYgHUI8G0w23FKH62"
|
24 |
+
PEXELS_VIDEO_API_URL = "https://api.pexels.com/videos/search"
|
25 |
|
26 |
# νΉμ μ±λ ID
|
27 |
SPECIFIC_CHANNEL_ID = int(os.getenv("DISCORD_CHANNEL_ID"))
|
|
|
42 |
# λ΄μ΄ μμλ λ μλ΄ λ©μμ§λ₯Ό μ μ‘
|
43 |
channel = self.get_channel(SPECIFIC_CHANNEL_ID)
|
44 |
if channel:
|
45 |
+
await channel.send("μ°Ύκ³ μΆμ λΉλμ€μ λν μ€λͺ
μ ν λ¬Έμ₯ λ¨μλ‘ μ
λ ₯νμΈμ. μ) λ°λ€μμ μννλ μ¬λ")
|
46 |
|
47 |
async def on_message(self, message):
|
48 |
if message.author == self.user:
|
|
|
56 |
# μλ―Έ λΆμνμ¬ μλ¬Έ ν€μλ μΆμΆ
|
57 |
keywords = await extract_keywords(message)
|
58 |
if keywords:
|
59 |
+
# Pexels APIλ‘ κ³ ν΄μλ λΉλμ€ κ²μ
|
60 |
video_urls = await search_videos(keywords)
|
61 |
if video_urls:
|
62 |
+
# μμ²μμμ μ°λ λ μμ± λ° κ³ ν΄μλ λΉλμ€ μ μ‘
|
63 |
+
await create_thread_and_send_videos(message, keywords, video_urls)
|
64 |
else:
|
65 |
+
await message.channel.send(f"**{keywords}**μ λν κ³ ν΄μλ λΉλμ€λ₯Ό μ°Ύμ μ μμ΅λλ€.")
|
66 |
else:
|
67 |
await message.channel.send("ν€μλλ₯Ό μΆμΆν μ μμ΅λλ€.")
|
68 |
finally:
|
|
|
101 |
}
|
102 |
params = {
|
103 |
"query": keywords,
|
104 |
+
"per_page": 10 # μ΅λ 10κ° λΉλμ€λ₯Ό κ°μ Έμ΅λλ€
|
105 |
}
|
106 |
+
response = requests.get(PEXELS_VIDEO_API_URL, headers=headers, params=params)
|
107 |
if response.status_code == 200:
|
108 |
data = response.json()
|
109 |
+
return [video['video_files'][0]['link'] for video in data['videos']]
|
|
|
|
|
|
|
|
|
110 |
return None
|
111 |
|
112 |
+
async def create_thread_and_send_videos(message, keywords, video_urls):
|
113 |
+
# μ°λ λ μμ±
|
114 |
+
thread = await message.channel.create_thread(name=f"{message.author.name}μ κ²μ κ²°κ³Ό", message=message)
|
115 |
+
message_content = f"**{keywords}**μ λν κ³ ν΄μλ λΉλμ€ {len(video_urls)}κ°λ₯Ό μ°Ύμμ΅λλ€:"
|
|
|
|
|
|
|
|
|
|
|
116 |
await thread.send(message_content)
|
117 |
for url in video_urls:
|
118 |
await thread.send(url)
|
119 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
if __name__ == "__main__":
|
121 |
discord_client = MyClient(intents=intents)
|
122 |
discord_client.run(os.getenv('DISCORD_TOKEN'))
|