Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
import os
|
| 2 |
import io
|
| 3 |
import base64
|
|
@@ -1189,6 +1197,50 @@ textarea {
|
|
| 1189 |
opacity: 1;
|
| 1190 |
}
|
| 1191 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1192 |
@media (max-width: 700px) {
|
| 1193 |
body { padding: 10px; }
|
| 1194 |
.container { padding: 20px 15px; }
|
|
@@ -2098,6 +2150,14 @@ textarea {
|
|
| 2098 |
</form>
|
| 2099 |
</div>
|
| 2100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2101 |
<script>
|
| 2102 |
let currentMode = 'model';
|
| 2103 |
const envKeyword = {{ keyword|tojson|safe }};
|
|
@@ -2325,7 +2385,7 @@ const translations = {
|
|
| 2325 |
child_hairstyles_girl: {'long wavy hair': 'Uzun dalgalı', 'two pigtails': 'İki kuyruk', 'braids': 'Örgüler', 'bob cut': 'Küt kesim', 'high ponytail': 'Yüksek at kuyruğu'},
|
| 2326 |
child_hairstyles_boy: {'short neat cut': 'Kısa düzenli', 'slightly messy hair': 'Hafif dağınık', 'side part': 'Yandan ayrılmış', 'textured crop': 'Dokulu kısa kesim'},
|
| 2327 |
beard_styles: {"light stubble": "Hafif kirli sakal", "heavy stubble": "Yoğun kirli sakal", "short boxed beard": "Kısa kutu sakal", "full beard": "Tam sakal", "goatee": "Keçi sakalı", "van dyke": "Van Dyke", "anchor beard": "Çapa sakal"},
|
| 2328 |
-
tattoo_styles: {"Scandinavian": "İskandinav", "Polynesian": "Polinezya", "Japanese (Irezumi)": "Japon (Irezumi)", "American Traditional": "Amerikan Geleneksel", "Blackwork": "Blackwork", "Geometric": "Geometrik", "Fine-line": "İnce çizgi", "Surrealism": "Sürrealizm", "Neo-
|
| 2329 |
tattoo_coverages: {"a few small tattoos": "Birkaç küçük dövme", "sleeve on one arm": "Tek kolda kaplama", "full sleeves on both arms": "Her iki kolda kaplama", "chest piece": "Göğüs bölgesinde", "back piece": "Sırtta", "heavily tattooed": "Yoğun dövmeli", "fully covered": "Tamamen kaplı"},
|
| 2330 |
celebrities_male: c_m, celebrities_female: c_f, child_celebrities_male: cc_m, child_celebrities_female: cc_f
|
| 2331 |
}
|
|
@@ -2973,7 +3033,8 @@ async function processAndOpen() {
|
|
| 2973 |
|
| 2974 |
setTimeout(() => {
|
| 2975 |
let targetUrl = 'https://gemini.google.com/share/758ad1a3ecd8';
|
| 2976 |
-
|
|
|
|
| 2977 |
setTimeout(() => {
|
| 2978 |
btn.style.background = "";
|
| 2979 |
btn.querySelector('span[data-lang-key]').innerHTML = originalText;
|
|
|
|
| 1 |
+
Готовый полный код проекта с реализованным отображением ссылки во frame (в виде
|
| 2 |
+
всплывающего поверх окна полноэкранного оверлея). Как вы и просили, код
|
| 3 |
+
предоставлен целиком, без обрезаний и без комментариев.
|
| 4 |
+
|
| 5 |
+
Примечание: Политика безопасности Google (X-Frame-Options/CSP) может блокировать
|
| 6 |
+
отображение сайта gemini.google.com внутри iframe в современных браузерах. С
|
| 7 |
+
точки зрения кода в проекте все реализовано точно по вашему заданию.
|
| 8 |
+
|
| 9 |
import os
|
| 10 |
import io
|
| 11 |
import base64
|
|
|
|
| 1197 |
opacity: 1;
|
| 1198 |
}
|
| 1199 |
|
| 1200 |
+
#iframeOverlay {
|
| 1201 |
+
display: none;
|
| 1202 |
+
position: fixed;
|
| 1203 |
+
top: 0;
|
| 1204 |
+
left: 0;
|
| 1205 |
+
width: 100%;
|
| 1206 |
+
height: 100%;
|
| 1207 |
+
background-color: var(--bg);
|
| 1208 |
+
z-index: 9999;
|
| 1209 |
+
flex-direction: column;
|
| 1210 |
+
}
|
| 1211 |
+
.iframe-header {
|
| 1212 |
+
display: flex;
|
| 1213 |
+
justify-content: space-between;
|
| 1214 |
+
align-items: center;
|
| 1215 |
+
padding: 15px 20px;
|
| 1216 |
+
background-color: var(--card-bg);
|
| 1217 |
+
border-bottom: 1px solid var(--border);
|
| 1218 |
+
}
|
| 1219 |
+
.iframe-header h3 {
|
| 1220 |
+
margin: 0;
|
| 1221 |
+
color: var(--text);
|
| 1222 |
+
font-size: 1.2rem;
|
| 1223 |
+
}
|
| 1224 |
+
.iframe-header button {
|
| 1225 |
+
background: var(--danger);
|
| 1226 |
+
color: #fff;
|
| 1227 |
+
border: none;
|
| 1228 |
+
padding: 8px 16px;
|
| 1229 |
+
border-radius: 8px;
|
| 1230 |
+
cursor: pointer;
|
| 1231 |
+
font-weight: bold;
|
| 1232 |
+
transition: opacity 0.2s;
|
| 1233 |
+
}
|
| 1234 |
+
.iframe-header button:hover {
|
| 1235 |
+
opacity: 0.8;
|
| 1236 |
+
}
|
| 1237 |
+
#synkrisIframe {
|
| 1238 |
+
flex-grow: 1;
|
| 1239 |
+
width: 100%;
|
| 1240 |
+
border: none;
|
| 1241 |
+
background: #fff;
|
| 1242 |
+
}
|
| 1243 |
+
|
| 1244 |
@media (max-width: 700px) {
|
| 1245 |
body { padding: 10px; }
|
| 1246 |
.container { padding: 20px 15px; }
|
|
|
|
| 2150 |
</form>
|
| 2151 |
</div>
|
| 2152 |
|
| 2153 |
+
<div id="iframeOverlay">
|
| 2154 |
+
<div class="iframe-header">
|
| 2155 |
+
<h3>Synkris Platform</h3>
|
| 2156 |
+
<button onclick="document.getElementById('iframeOverlay').style.display='none'; document.getElementById('synkrisIframe').src='';">Закрыть</button>
|
| 2157 |
+
</div>
|
| 2158 |
+
<iframe id="synkrisIframe" src=""></iframe>
|
| 2159 |
+
</div>
|
| 2160 |
+
|
| 2161 |
<script>
|
| 2162 |
let currentMode = 'model';
|
| 2163 |
const envKeyword = {{ keyword|tojson|safe }};
|
|
|
|
| 2385 |
child_hairstyles_girl: {'long wavy hair': 'Uzun dalgalı', 'two pigtails': 'İki kuyruk', 'braids': 'Örgüler', 'bob cut': 'Küt kesim', 'high ponytail': 'Yüksek at kuyruğu'},
|
| 2386 |
child_hairstyles_boy: {'short neat cut': 'Kısa düzenli', 'slightly messy hair': 'Hafif dağınık', 'side part': 'Yandan ayrılmış', 'textured crop': 'Dokulu kısa kesim'},
|
| 2387 |
beard_styles: {"light stubble": "Hafif kirli sakal", "heavy stubble": "Yoğun kirli sakal", "short boxed beard": "Kısa kutu sakal", "full beard": "Tam sakal", "goatee": "Keçi sakalı", "van dyke": "Van Dyke", "anchor beard": "Çapa sakal"},
|
| 2388 |
+
tattoo_styles: {"Scandinavian": "İskandinav", "Polynesian": "Polinezya", "Japanese (Irezumi)": "Japon (Irezumi)", "American Traditional": "Amerikan Geleneksel", "Blackwork": "Blackwork", "Geometric": "Geometrik", "Fine-line": "İnce çizgi", "Surrealism": "Sürrealizm", "Neo-Geleneksel": "Neo-Geleneksel"},
|
| 2389 |
tattoo_coverages: {"a few small tattoos": "Birkaç küçük dövme", "sleeve on one arm": "Tek kolda kaplama", "full sleeves on both arms": "Her iki kolda kaplama", "chest piece": "Göğüs bölgesinde", "back piece": "Sırtta", "heavily tattooed": "Yoğun dövmeli", "fully covered": "Tamamen kaplı"},
|
| 2390 |
celebrities_male: c_m, celebrities_female: c_f, child_celebrities_male: cc_m, child_celebrities_female: cc_f
|
| 2391 |
}
|
|
|
|
| 3033 |
|
| 3034 |
setTimeout(() => {
|
| 3035 |
let targetUrl = 'https://gemini.google.com/share/758ad1a3ecd8';
|
| 3036 |
+
document.getElementById('synkrisIframe').src = targetUrl;
|
| 3037 |
+
document.getElementById('iframeOverlay').style.display = 'flex';
|
| 3038 |
setTimeout(() => {
|
| 3039 |
btn.style.background = "";
|
| 3040 |
btn.querySelector('span[data-lang-key]').innerHTML = originalText;
|