Kgshop commited on
Commit
00dee8e
·
verified ·
1 Parent(s): d0e1de1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +63 -2
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-Traditional": "Neo-Geleneksel"},
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
- window.open(targetUrl, '_blank');
 
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;