Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -184,7 +184,7 @@ popup2_url = "https://huggingface.co/spaces/Ronaldo1111/Sophia/resolve/main/srkl
|
|
184 |
music1 = "https://huggingface.co/spaces/Ronaldo1111/Sophia/resolve/main/FNG.mp3"
|
185 |
music2 = "https://huggingface.co/spaces/Ronaldo1111/Sophia/resolve/main/PGY.mp3"
|
186 |
bark_sound = "https://huggingface.co/spaces/Ronaldo1111/Sophia/resolve/main/voice.mp3"
|
187 |
-
|
188 |
html_template = '''
|
189 |
<style>
|
190 |
body {
|
@@ -240,10 +240,13 @@ html_template = '''
|
|
240 |
}
|
241 |
#gift {
|
242 |
position: fixed;
|
|
|
|
|
243 |
width: 60px;
|
244 |
cursor: pointer;
|
245 |
z-index: 9998;
|
246 |
transition: transform 0.5s;
|
|
|
247 |
}
|
248 |
#popup, #popup2 {
|
249 |
display: none;
|
@@ -306,6 +309,17 @@ html_template = '''
|
|
306 |
cursor: pointer;
|
307 |
z-index: 10000;
|
308 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
309 |
</style>
|
310 |
<img id="sophia-avatar" src="{avatar_url}" />
|
311 |
<img id="birthday-cake" src="{cake_url}" />
|
@@ -314,25 +328,24 @@ html_template = '''
|
|
314 |
<img id="popup2" />
|
315 |
<div id="popup-close">×</div>
|
316 |
<div id="music-toggle">⏸️音乐</div>
|
|
|
317 |
<div id="balloon"></div>
|
318 |
<audio id="bg-music" autoplay loop>
|
319 |
<source src="{music1}" type="audio/mpeg" />
|
320 |
-
<source src="{music2}" type="audio/mpeg" />
|
321 |
</audio>
|
322 |
<audio id="bark" src="{bark_sound}"></audio>
|
323 |
<script>
|
324 |
-
// 背景音乐轮播
|
325 |
const tracks = ["{music1}", "{music2}"];
|
326 |
const audio = document.getElementById("bg-music");
|
327 |
let current = 0;
|
328 |
audio.addEventListener("ended", () => {
|
329 |
current = (current + 1) % tracks.length;
|
330 |
-
audio.src = tracks[current];
|
|
|
|
|
331 |
});
|
332 |
|
333 |
-
|
334 |
-
const toggleBtn = document.getElementById("music-toggle");
|
335 |
-
toggleBtn.addEventListener("click", () => {
|
336 |
if (audio.paused) {
|
337 |
audio.play();
|
338 |
toggleBtn.textContent = "⏸️音乐";
|
@@ -342,7 +355,13 @@ html_template = '''
|
|
342 |
}
|
343 |
});
|
344 |
|
345 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
346 |
const avatar = document.getElementById("sophia-avatar");
|
347 |
const bark = document.getElementById("bark");
|
348 |
avatar.onmousedown = function(e) {
|
@@ -364,7 +383,6 @@ html_template = '''
|
|
364 |
setTimeout(() => fw.remove(), 1200);
|
365 |
});
|
366 |
|
367 |
-
// 礼物弹窗:srkl.jpg -> 2s 后弹 srkl1.jpg -> 1s 后全部关闭
|
368 |
const gift = document.getElementById("gift");
|
369 |
const popup = document.getElementById("popup");
|
370 |
const popup2 = document.getElementById("popup2");
|
@@ -378,22 +396,14 @@ html_template = '''
|
|
378 |
setTimeout(() => {
|
379 |
popup2.src = "{popup2_url}";
|
380 |
popup2.style.display = "block";
|
381 |
-
popup2.style.position = "fixed";
|
382 |
-
popup2.style.top = "calc(50% + 180px)";
|
383 |
-
popup2.style.left = "50%";
|
384 |
-
popup2.style.transform = "translate(-50%, 0)";
|
385 |
-
popup2.style.maxWidth = "80vw";
|
386 |
-
popup2.style.maxHeight = "80vh";
|
387 |
-
popup2.style.zIndex = "10000";
|
388 |
}, 2000);
|
389 |
|
390 |
setTimeout(() => {
|
391 |
popup.style.display = "none";
|
392 |
popup2.style.display = "none";
|
393 |
closeBtn.style.display = "none";
|
394 |
-
},
|
395 |
});
|
396 |
-
|
397 |
closeBtn.addEventListener("click", () => {
|
398 |
popup.style.display = "none";
|
399 |
popup2.style.display = "none";
|
@@ -402,7 +412,6 @@ html_template = '''
|
|
402 |
</script>
|
403 |
'''
|
404 |
|
405 |
-
# 插值填充
|
406 |
html_content = html_template.replace("{background_css}", background_css) \
|
407 |
.replace("{avatar_url}", avatar_url) \
|
408 |
.replace("{cake_url}", cake_url) \
|
@@ -410,9 +419,9 @@ html_content = html_template.replace("{background_css}", background_css) \
|
|
410 |
.replace("{music2}", music2) \
|
411 |
.replace("{bark_sound}", bark_sound) \
|
412 |
.replace("{gift_url}", gift_url) \
|
413 |
-
.replace("{popup_url}", popup_url)
|
|
|
414 |
|
415 |
-
# ==== Gradio UI ====
|
416 |
with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
417 |
gr.HTML(html_content)
|
418 |
gr.Markdown("## 🌸 Horse and 7 Agent:欢迎进入豌豆的世界 🌸")
|
@@ -422,6 +431,5 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
|
422 |
btn = gr.Button("投喂")
|
423 |
btn.click(chat, inputs=[msg, state], outputs=[chatbot, state])
|
424 |
msg.submit(chat, inputs=[msg, state], outputs=[chatbot, state])
|
425 |
-
|
426 |
if __name__ == "__main__":
|
427 |
demo.launch()
|
|
|
184 |
music1 = "https://huggingface.co/spaces/Ronaldo1111/Sophia/resolve/main/FNG.mp3"
|
185 |
music2 = "https://huggingface.co/spaces/Ronaldo1111/Sophia/resolve/main/PGY.mp3"
|
186 |
bark_sound = "https://huggingface.co/spaces/Ronaldo1111/Sophia/resolve/main/voice.mp3"
|
187 |
+
|
188 |
html_template = '''
|
189 |
<style>
|
190 |
body {
|
|
|
240 |
}
|
241 |
#gift {
|
242 |
position: fixed;
|
243 |
+
bottom: 100px;
|
244 |
+
right: 20px;
|
245 |
width: 60px;
|
246 |
cursor: pointer;
|
247 |
z-index: 9998;
|
248 |
transition: transform 0.5s;
|
249 |
+
animation: bounce 1.2s infinite;
|
250 |
}
|
251 |
#popup, #popup2 {
|
252 |
display: none;
|
|
|
309 |
cursor: pointer;
|
310 |
z-index: 10000;
|
311 |
}
|
312 |
+
#next-track {
|
313 |
+
position: fixed;
|
314 |
+
bottom: 60px;
|
315 |
+
left: 20px;
|
316 |
+
padding: 8px 12px;
|
317 |
+
font-size: 14px;
|
318 |
+
background: rgba(255,255,255,0.7);
|
319 |
+
border-radius: 8px;
|
320 |
+
cursor: pointer;
|
321 |
+
z-index: 10000;
|
322 |
+
}
|
323 |
</style>
|
324 |
<img id="sophia-avatar" src="{avatar_url}" />
|
325 |
<img id="birthday-cake" src="{cake_url}" />
|
|
|
328 |
<img id="popup2" />
|
329 |
<div id="popup-close">×</div>
|
330 |
<div id="music-toggle">⏸️音乐</div>
|
331 |
+
<div id="next-track">🎵切歌</div>
|
332 |
<div id="balloon"></div>
|
333 |
<audio id="bg-music" autoplay loop>
|
334 |
<source src="{music1}" type="audio/mpeg" />
|
|
|
335 |
</audio>
|
336 |
<audio id="bark" src="{bark_sound}"></audio>
|
337 |
<script>
|
|
|
338 |
const tracks = ["{music1}", "{music2}"];
|
339 |
const audio = document.getElementById("bg-music");
|
340 |
let current = 0;
|
341 |
audio.addEventListener("ended", () => {
|
342 |
current = (current + 1) % tracks.length;
|
343 |
+
audio.src = tracks[current];
|
344 |
+
audio.load();
|
345 |
+
audio.play();
|
346 |
});
|
347 |
|
348 |
+
document.getElementById("music-toggle").addEventListener("click", () => {
|
|
|
|
|
349 |
if (audio.paused) {
|
350 |
audio.play();
|
351 |
toggleBtn.textContent = "⏸️音乐";
|
|
|
355 |
}
|
356 |
});
|
357 |
|
358 |
+
document.getElementById("next-track").addEventListener("click", () => {
|
359 |
+
current = (current + 1) % tracks.length;
|
360 |
+
audio.src = tracks[current];
|
361 |
+
audio.load();
|
362 |
+
audio.play();
|
363 |
+
});
|
364 |
+
|
365 |
const avatar = document.getElementById("sophia-avatar");
|
366 |
const bark = document.getElementById("bark");
|
367 |
avatar.onmousedown = function(e) {
|
|
|
383 |
setTimeout(() => fw.remove(), 1200);
|
384 |
});
|
385 |
|
|
|
386 |
const gift = document.getElementById("gift");
|
387 |
const popup = document.getElementById("popup");
|
388 |
const popup2 = document.getElementById("popup2");
|
|
|
396 |
setTimeout(() => {
|
397 |
popup2.src = "{popup2_url}";
|
398 |
popup2.style.display = "block";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
399 |
}, 2000);
|
400 |
|
401 |
setTimeout(() => {
|
402 |
popup.style.display = "none";
|
403 |
popup2.style.display = "none";
|
404 |
closeBtn.style.display = "none";
|
405 |
+
}, 5000);
|
406 |
});
|
|
|
407 |
closeBtn.addEventListener("click", () => {
|
408 |
popup.style.display = "none";
|
409 |
popup2.style.display = "none";
|
|
|
412 |
</script>
|
413 |
'''
|
414 |
|
|
|
415 |
html_content = html_template.replace("{background_css}", background_css) \
|
416 |
.replace("{avatar_url}", avatar_url) \
|
417 |
.replace("{cake_url}", cake_url) \
|
|
|
419 |
.replace("{music2}", music2) \
|
420 |
.replace("{bark_sound}", bark_sound) \
|
421 |
.replace("{gift_url}", gift_url) \
|
422 |
+
.replace("{popup_url}", popup_url) \
|
423 |
+
.replace("{popup2_url}", popup2_url)
|
424 |
|
|
|
425 |
with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
426 |
gr.HTML(html_content)
|
427 |
gr.Markdown("## 🌸 Horse and 7 Agent:欢迎进入豌豆的世界 🌸")
|
|
|
431 |
btn = gr.Button("投喂")
|
432 |
btn.click(chat, inputs=[msg, state], outputs=[chatbot, state])
|
433 |
msg.submit(chat, inputs=[msg, state], outputs=[chatbot, state])
|
|
|
434 |
if __name__ == "__main__":
|
435 |
demo.launch()
|