312 lines
9.8 KiB
HTML
Raw Normal View History

2025-02-13 18:18:42 +09:00
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" type="image/png" href="/favicon/favicon-96x96.png" sizes="96x96" />
<link rel="icon" type="image/svg+xml" href="/favicon/favicon.svg" />
<link rel="shortcut icon" href="/favicon/favicon.ico" />
<link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-touch-icon.png" />
<meta name="apple-mobile-web-app-title" content="Open WebUI" />
<link rel="manifest" href="/favicon/site.webmanifest" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover"
/>
<meta name="theme-color" content="#171717" />
<meta name="robots" content="noindex,nofollow" />
<meta name="description" content="Open WebUI" />
<link
rel="search"
type="application/opensearchdescription+xml"
title="Open WebUI"
href="/opensearch.xml"
/>
<script>
function resizeIframe(obj) {
obj.style.height = obj.contentWindow.document.documentElement.scrollHeight + 'px';
}
</script>
<script>
// On page load or when changing themes, best to add inline in `head` to avoid FOUC
(() => {
var urlParams = new URLSearchParams(location.search);
if (!urlParams.has("web-search")) {
// "kkt" 파라미터가 없으면 "kkt=default_value"와 함께 URL에 "kkt" 파라미터를 추가하여 새로고침
location.href += "?web-search=true";
}
document.getElementById('myButton').addEventListener('click', getLocation);
const metaThemeColorTag = document.querySelector('meta[name="theme-color"]');
const prefersDarkTheme = window.matchMedia('(prefers-color-scheme: dark)').matches;
if (!localStorage?.theme) {
localStorage.theme = 'system';
}
if (localStorage.theme === 'system') {
document.documentElement.classList.add(prefersDarkTheme ? 'dark' : 'light');
metaThemeColorTag.setAttribute('content', prefersDarkTheme ? '#171717' : '#ffffff');
} else if (localStorage.theme === 'oled-dark') {
document.documentElement.style.setProperty('--color-gray-800', '#101010');
document.documentElement.style.setProperty('--color-gray-850', '#050505');
document.documentElement.style.setProperty('--color-gray-900', '#000000');
document.documentElement.style.setProperty('--color-gray-950', '#000000');
document.documentElement.classList.add('dark');
metaThemeColorTag.setAttribute('content', '#000000');
} else if (localStorage.theme === 'light') {
document.documentElement.classList.add('light');
metaThemeColorTag.setAttribute('content', '#ffffff');
} else if (localStorage.theme === 'her') {
document.documentElement.classList.add('dark');
document.documentElement.classList.add('her');
metaThemeColorTag.setAttribute('content', '#983724');
} else {
document.documentElement.classList.add('dark');
metaThemeColorTag.setAttribute('content', '#171717');
}
window.matchMedia('(prefers-color-scheme: dark)').addListener((e) => {
if (localStorage.theme === 'system') {
if (e.matches) {
document.documentElement.classList.add('dark');
document.documentElement.classList.remove('light');
metaThemeColorTag.setAttribute('content', '#171717');
} else {
document.documentElement.classList.add('light');
document.documentElement.classList.remove('dark');
metaThemeColorTag.setAttribute('content', '#ffffff');
}
}
});
})();
</script>
<script>
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
getLocationPlace(position.coords.latitude,position.coords.longitude)
}
function getLocationPlace(lat,long) {
if(document.getElementById('chat-input').children[0].innerText.startsWith("#")) {
} else {
var url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location="+lat+"%2C"+long+"&radius=1500&type=restaurant&key=AIzaSyD6hUId_L8kc3vTpblkUlJAcAqDqrjy2IY&referrer="+encodeURIComponent(location.href)
document.getElementById('chat-input').children[0].innerText = "#" + url
}
// document.getElementById('chat-input').children[0].innerText
// "위 내용을 파악해서 한국어로 정리해줘 평점과 리뷰수가 있는 가게만 정래해줘"
}
</script>
<title>Open WebUI</title>
<link rel="modulepreload" href="/_app/immutable/entry/start.Cm62h41j.js">
<link rel="modulepreload" href="/_app/immutable/chunks/entry.BuM5ZKsF.js">
<link rel="modulepreload" href="/_app/immutable/chunks/scheduler.BXITcVIL.js">
<link rel="modulepreload" href="/_app/immutable/chunks/index.CMgO2_ru.js">
<link rel="modulepreload" href="/_app/immutable/entry/app.D42t8XkT.js">
<link rel="modulepreload" href="/_app/immutable/chunks/preload-helper.C1FmrZbK.js">
<link rel="modulepreload" href="/_app/immutable/chunks/index.CKC1pLeO.js">
<style>
/* 버튼 스타일 설정 */
.fixed-button {
z-index: 999;
position: fixed; /* 고정된 위치 설정 */
bottom: 120px; /* 화면 상단에서 위쪽 여백으로 사용할 px 값 */
left: 50%; /* 화면 중앙에 맞추기 */
transform: translateX(-50%); /* 왼쪽 중심 정렬 보정 */
padding: 10px 20px; /* 버튼의 내부 여백 */
background-color: #007BFF; /* 배경 색상 설정 */
color: white; /* 글자 색상 설정 */
border: none; /* 외곽선 제거 */
cursor: pointer; /* 마우스 커서를 포인터로 변경 */
font-size: 16px; /* 글꼴 크기 설정 */
}
</style>
</head>
<body data-sveltekit-preload-data="hover">
<div style="display: contents">
<script>
{
__sveltekit_1kbmi65 = {
base: ""
};
const element = document.currentScript.parentElement;
Promise.all([
import("/_app/immutable/entry/start.Cm62h41j.js"),
import("/_app/immutable/entry/app.D42t8XkT.js")
]).then(([kit, app]) => {
kit.start(app, element);
});
}
</script>
</div>
<div
id="splash-screen"
style="position: fixed; z-index: 100; top: 0; left: 0; width: 100%; height: 100%"
>
<style type="text/css" nonce="">
html {
overflow-y: scroll !important;
}
</style>
<img
id="logo"
style="
position: absolute;
width: auto;
height: 6rem;
top: 44%;
left: 50%;
transform: translateX(-50%);
"
src="/static/splash.png"
/>
<div
style="
position: absolute;
top: 33%;
left: 50%;
width: 24rem;
transform: translateX(-50%);
display: flex;
flex-direction: column;
align-items: center;
"
>
<img
id="logo-her"
style="width: auto; height: 13rem"
src="/static/splash.png"
class="animate-pulse-fast"
/>
<div style="position: relative; width: 24rem; margin-top: 0.5rem">
<div
id="progress-background"
style="
position: absolute;
width: 100%;
height: 0.75rem;
border-radius: 9999px;
background-color: #fafafa9a;
"
></div>
<div
id="progress-bar"
style="
position: absolute;
width: 0%;
height: 0.75rem;
border-radius: 9999px;
background-color: #fff;
"
class="bg-white"
></div>
</div>
</div>
<!-- <span style="position: absolute; bottom: 32px; left: 50%; margin: -36px 0 0 -36px">
Footer content
</span> -->
</div>
<button id="myButton" class="fixed-button" onclick="getLocation()" >고정 버튼</button>
</body>
</html>
<style type="text/css" nonce="">
html {
overflow-y: hidden !important;
}
#splash-screen {
background: #fff;
}
html.dark #splash-screen {
background: #000;
}
html.dark #splash-screen img {
filter: invert(1);
}
html.her #splash-screen {
background: #983724;
}
#logo-her {
display: none;
}
#progress-background {
display: none;
}
#progress-bar {
display: none;
}
html.her #logo {
display: none;
}
html.her #logo-her {
display: block;
filter: invert(1);
}
html.her #progress-background {
display: block;
}
html.her #progress-bar {
display: block;
}
@media (max-width: 24rem) {
html.her #progress-background {
display: none;
}
html.her #progress-bar {
display: none;
}
}
@keyframes pulse {
50% {
opacity: 0.65;
}
}
.animate-pulse-fast {
animation: pulse 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
</style>