File size: 3,048 Bytes
23aa7a2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
"""Extra CSS/JS fixes injected AFTER main PATCH_INJECT."""
EXTRA_FIX = r'''
<style>
/* Force correct position for Short AI interaction buttons */
.tiktok-slide{position:relative!important}
.tiktok-right{position:absolute!important;right:8px!important;bottom:100px!important;display:flex!important;flex-direction:column!important;align-items:center!important;gap:14px!important;z-index:5!important}
.tiktok-right-btn{display:flex!important;flex-direction:column!important;align-items:center!important;gap:2px!important;background:none!important;border:0!important;color:#fff!important;font-size:10px!important;cursor:pointer!important}
.tiktok-right-btn .icon{width:42px!important;height:42px!important;border-radius:50%!important;background:rgba(255,255,255,.12)!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:20px!important}
.tiktok-right-btn .count{font-size:10px!important;color:#ddd!important}
#short-progress-toast{position:fixed;bottom:70px;left:50%;transform:translateX(-50%);background:#2d8659;color:#fff;padding:10px 20px;border-radius:20px;font-size:12px;z-index:99998;box-shadow:0 4px 12px rgba(0,0,0,.4);display:none;white-space:nowrap}
/* Kill ALL duplicate short AI slides from old layers */
#ai-short-home,.ai-short-home,.ai-short-card-final,[id*="ai-shorts-patched"]{display:none!important}
</style>
<div id="short-progress-toast"></div>
<script>
(function(){
// Kill old renderers that create duplicate Short AI slides
window.renderAIShortHome=function(){};
window.renderAIShorts7=function(){};
window.renderTopicWallE=function(){};
window.renderAiShorts=function(){};
// Also remove any already-rendered duplicate slides
setInterval(function(){
  document.querySelectorAll('#ai-short-home,.ai-short-home,[id*="ai-shorts-patched"]').forEach(function(el){el.remove()});
},2000);
// Progress toast for short creation
window.showShortProgress=function(msg){var t=document.getElementById('short-progress-toast');if(t){t.textContent=msg;t.style.display='block';}};
window.hideShortProgress=function(){var t=document.getElementById('short-progress-toast');if(t)t.style.display='none';};
// Override makeShortFromPost to use progress toast
var _origMakeShort=window.makeShortFromPost;
window.makeShortFromPost=async function(pid,btn){
  showShortProgress('⏳ Đang tạo Short AI...');
  if(btn){btn.disabled=true;btn.textContent='Đang tạo...';}
  try{
    var r=await fetch('/api/ai/short/'+pid,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({voice:'nu',emotion:'neutral',speed:1.2})});
    var j=await r.json();
    if(!r.ok||j.error)throw new Error(j.error||'Lỗi');
    showShortProgress('✅ Đ�ã tạo Short AI!');
    setTimeout(hideShortProgress,3000);
    if(typeof renderShortAISlide==='function')renderShortAISlide();
  }catch(e){
    showShortProgress('❌ Lỗi: '+e.message);
    setTimeout(hideShortProgress,4000);
  }finally{
    if(btn){btn.disabled=false;btn.textContent='🎬 Tạo Short AI';}
  }
};
})();
</script>
'''