NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Tana Accelerator Sync - Fast Access & Quick Sync for Tana
// @name:zh-CN Tana加速器同步 - Tana快速访问和快速同步工具
// @name:zh-TW Tana加速器同步 - Tana快速存取和快速同步工具
// @name:ar مسرع ومزامن Tana - وصول سريع ومزامنة سريعة لـ Tana
// @name:ru Tana Ускоритель Синхронизации - Быстрый доступ и синхронизация для Tana
// @name:fa شتابدهنده و همگامساز Tana - دسترسی سریع و همگامسازی سریع برای Tana
// @name:tr Tana Hızlandırıcı Senkronizasyon - Tana için Hızlı Erişim ve Hızlı Senkronizasyon
// @name:vi Tana Accelerator Sync - Truy cập nhanh và đồng bộ nhanh cho Tana
// @namespace http://note2link.com/
// @version 5.0.1
// @author Note2Link
// @match https://app.tana.inc/*
// @match https://tana.inc/*
// @match https://*.tana.inc/*
// @supportURL https://note2link.com/en-US/tana-accelerator
// @icon https://tana.inc/icon.svg
// @grant none
// @license MIT
// @compatible Chrome
// @compatible Firefox
// @compatible Safari
// @compatible Edge
// @compatible Opera
// ==/UserScript==
(function () {
'use strict';
// Multi-language support
const translations = {
'en-US': {
title: 'Fast Access & Quick Sync for Tana',
subtitle: 'Professional Tana Accelerator & Sync Service',
description: 'Experience lightning-fast access, instant sync, and enhanced performance for your Tana workspace.',
features: ['⚡ Lightning Fast Access', '🔄 Instant Quick Sync', '🚀 Accelerated Performance', '🔒 Secure Connection'],
cta: 'Try Free Now',
powered: 'Powered by Note2Link'
},
'zh-CN': {
title: 'Tana快速访问和快速同步',
subtitle: '专业的Tana加速器和同步服务',
description: '体验闪电般的快速访问、即时同步和增强的Tana工作区性能。',
features: ['⚡ 闪电般快速访问', '🔄 即时快速同步', '🚀 加速性能', '🔒 安全连接'],
cta: '立即免费试用',
powered: '由 Note2Link 提供支持'
},
'zh-TW': {
title: 'Tana快速存取和快速同步',
subtitle: '專業的Tana加速器和同步服務',
description: '體驗閃電般的快速存取、即時同步和增強的Tana工作區效能。',
features: ['⚡ 閃電般快速存取', '🔄 即時快速同步', '🚀 加速效能', '🔒 安全連線'],
cta: '立即免費試用',
powered: '由 Note2Link 提供支援'
},
'ar': {
title: 'وصول سريع ومزامنة سريعة لـ Tana',
subtitle: 'خدمة مسرع ومزامن Tana المهنية',
description: 'استمتع بوصول سريع كالبرق ومزامنة فورية وأداء محسن لمساحة عمل Tana الخاصة بك.',
features: ['⚡ وصول سريع كالبرق', '🔄 مزامنة سريعة فورية', '🚀 أداء مسرع', '🔒 اتصال آمن'],
cta: 'جرب مجاناً الآن',
powered: 'مدعوم من Note2Link'
},
'ru': {
title: 'Быстрый доступ и быстрая синхронизация для Tana',
subtitle: 'Профессиональный ускоритель и сервис синхронизации Tana',
description: 'Испытайте молниеносный доступ, мгновенную синхронизацию и улучшенную производительность вашего рабочего пространства Tana.',
features: ['⚡ Молниеносный быстрый доступ', '🔄 Мгновенная быстрая синхронизация', '🚀 Ускоренная производительность', '🔒 Безопасное соединение'],
cta: 'Попробовать бесплатно',
powered: 'При поддержке Note2Link'
},
'fa': {
title: 'دسترسی سریع و همگامسازی سریع برای Tana',
subtitle: 'سرویس حرفهای شتابدهنده و همگامساز Tana',
description: 'دسترسی فوقالعاده سریع، همگامسازی آنی و عملکرد بهبود یافته برای فضای کاری Tana خود تجربه کنید.',
features: ['⚡ دسترسی فوقالعاده سریع', '🔄 همگامسازی سریع آنی', '🚀 عملکرد شتابیافته', '🔒 اتصال امن'],
cta: 'همین حالا رایگان امتحان کنید',
powered: 'قدرت گرفته از Note2Link'
},
'tr': {
title: 'Tana için Hızlı Erişim ve Hızlı Senkronizasyon',
subtitle: 'Profesyonel Tana Hızlandırıcı ve Senkronizasyon Servisi',
description: 'Tana çalışma alanınız için şimşek hızında erişim, anında senkronizasyon ve gelişmiş performans deneyimi yaşayın.',
features: ['⚡ Şimşek Hızında Erişim', '🔄 Anında Hızlı Senkronizasyon', '🚀 Hızlandırılmış Performans', '🔒 Güvenli Bağlantı'],
cta: 'Şimdi Ücretsiz Deneyin',
powered: 'Note2Link tarafından desteklenmektedir'
},
'vi': {
title: 'Truy cập nhanh và đồng bộ nhanh cho Tana',
subtitle: 'Dịch vụ tăng tốc và đồng bộ Tana chuyên nghiệp',
description: 'Trải nghiệm truy cập nhanh như chớp, đồng bộ tức thì và hiệu suất được cải thiện cho không gian làm việc Tana của bạn.',
features: ['⚡ Truy cập nhanh như chớp', '🔄 Đồng bộ nhanh tức thì', '🚀 Hiệu suất được tăng tốc', '🔒 Kết nối an toàn'],
cta: 'Dùng thử miễn phí ngay',
powered: 'Được hỗ trợ bởi Note2Link'
}
};
function detectLanguage() {
const lang = navigator.language || navigator.userLanguage || 'en-US';
if (translations[lang]) return lang;
const baseLang = lang.split('-')[0];
const supportedLangs = Object.keys(translations);
for (let supportedLang of supportedLangs) {
if (supportedLang.startsWith(baseLang)) {
return supportedLang;
}
}
return 'en-US';
}
function getProductUrl(lang) {
return `https://note2link.com/${lang}/tana-accelerator`;
}
const currentLang = detectLanguage();
const t = translations[currentLang];
const productUrl = getProductUrl(currentLang);
// Create promotion banner with Tana-themed design (orange theme)
function createPromoBanner() {
const banner = document.createElement('div');
banner.id = 'tana-accelerator-banner';
banner.innerHTML = `
<div style="
position: fixed;
top: 50px;
right: 20px;
width: 340px;
background: rgba(255, 111, 0, 0.85);
color: rgba(255, 255, 255, 0.95);
padding: 24px;
border-radius: 16px;
box-shadow: 0 20px 40px rgba(255, 111, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.08);
z-index: 10000;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', Roboto, sans-serif;
backdrop-filter: blur(20px) saturate(180%);
-webkit-backdrop-filter: blur(20px) saturate(180%);
border: 1px solid rgba(255, 255, 255, 0.12);
animation: slideInGlass 0.6s cubic-bezier(0.16, 1, 0.3, 1);
overflow: hidden;
">
<div style="
position: absolute;
top: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
"></div>
<div style="display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 16px;">
<h3 style="
margin: 0;
font-size: 17px;
font-weight: 600;
color: rgba(255, 255, 255, 0.95);
line-height: 1.3;
letter-spacing: -0.01em;
">${t.title}</h3>
<button onclick="this.parentElement.parentElement.parentElement.remove()" style="
background: rgba(255, 255, 255, 0.08);
border: none;
color: rgba(255, 255, 255, 0.7);
font-size: 16px;
cursor: pointer;
padding: 0;
width: 28px;
height: 28px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 8px;
transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
" onmouseover="
this.style.background='rgba(255, 255, 255, 0.15)';
this.style.color='rgba(255, 255, 255, 0.9)';
this.style.transform='scale(1.05)';
" onmouseout="
this.style.background='rgba(255, 255, 255, 0.08)';
this.style.color='rgba(255, 255, 255, 0.7)';
this.style.transform='scale(1)';
">×</button>
</div>
<p style="
margin: 0 0 12px 0;
font-size: 13px;
color: rgba(255, 255, 255, 0.75);
font-weight: 500;
letter-spacing: -0.005em;
">${t.subtitle}</p>
<p style="
margin: 0 0 18px 0;
font-size: 12px;
color: rgba(255, 255, 255, 0.65);
line-height: 1.5;
letter-spacing: -0.003em;
">${t.description}</p>
<div style="margin-bottom: 20px;">
${t.features.map(feature => `
<div style="
font-size: 11px;
margin: 6px 0;
color: rgba(255, 255, 255, 0.8);
padding: 4px 0;
border-bottom: 1px solid rgba(255, 255, 255, 0.06);
">${feature}</div>
`).join('')}
</div>
<a href="${productUrl}" target="_blank" style="
display: inline-block;
background: rgba(230, 81, 0, 0.8);
color: rgba(255, 255, 255, 0.95);
text-decoration: none;
padding: 12px 20px;
border-radius: 10px;
font-weight: 600;
font-size: 13px;
transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
border: 1px solid rgba(255, 255, 255, 0.15);
width: 100%;
text-align: center;
box-sizing: border-box;
backdrop-filter: blur(10px);
letter-spacing: -0.005em;
position: relative;
overflow: hidden;
" onmouseover="
this.style.background='rgba(245, 124, 0, 0.9)';
this.style.transform='translateY(-2px)';
this.style.boxShadow='0 8px 25px rgba(255, 111, 0, 0.3)';
this.style.borderColor='rgba(255, 255, 255, 0.25)';
" onmouseout="
this.style.background='rgba(230, 81, 0, 0.8)';
this.style.transform='translateY(0)';
this.style.boxShadow='none';
this.style.borderColor='rgba(255, 255, 255, 0.15)';
">${t.cta}</a>
<div style="
text-align: center;
margin-top: 16px;
font-size: 10px;
color: rgba(255, 255, 255, 0.5);
letter-spacing: 0.02em;
">${t.powered}</div>
</div>
`;
const style = document.createElement('style');
style.textContent = `
@keyframes slideInGlass {
from {
transform: translateX(100%) scale(0.9);
opacity: 0;
backdrop-filter: blur(0px);
}
to {
transform: translateX(0) scale(1);
opacity: 1;
backdrop-filter: blur(20px) saturate(180%);
}
}
@keyframes slideOutGlass {
from {
transform: translateX(0) scale(1);
opacity: 1;
backdrop-filter: blur(20px) saturate(180%);
}
to {
transform: translateX(100%) scale(0.9);
opacity: 0;
backdrop-filter: blur(0px);
}
}
`;
document.head.appendChild(style);
return banner;
}
function showBanner() {
if (document.getElementById('tana-accelerator-banner')) return;
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', showBanner);
return;
}
const banner = createPromoBanner();
document.body.appendChild(banner);
setTimeout(() => {
const existingBanner = document.getElementById('tana-accelerator-banner');
if (existingBanner) {
existingBanner.style.animation = 'slideOutGlass 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards';
setTimeout(() => existingBanner.remove(), 600);
}
}, 15000);
}
showBanner();
setInterval(() => {
showBanner();
}, 5 * 60 * 1000);
let lastUrl = location.href;
new MutationObserver(() => {
const url = location.href;
if (url !== lastUrl) {
lastUrl = url;
setTimeout(showBanner, 2000);
}
}).observe(document, { subtree: true, childList: true });
})();