سانتروفیلم

سریال‌های به‌روزشده

تازه‌ترین تغییرات سریال‌های سانتروفیلم

همه

امشب چی ببینم؟

چندتا پیشنهاد مخصوص همین الان تو

زمان روز

تازه ها

تازه‌ترین اضافه‌شده‌ها، به ترتیب زمان

خفن ترین ها

رده‌بندی ۱۰ عنوان برتر سانترو

پیشنهاد سردبیر

انتخاب دستی تیم سانترو

فیلم تونی 2026 پیشنهاد ویژه سردبیر فیلم تونی 2026 فیلم 2026 IMDb 7.3 بیوگرافیدرامکمدی یک آنتونی بوردین 19 ساله به پروینستاون سفر می کند و به دنیای آشفته یک آشپزخانه رستوران برخورد می کند و تابستانی را آغاز می کند که مسیر زندگی او را شکل می دهد. مشاهده و دانلود

فیلم های جدید

دیوار پوسترهای تازه

هنوز تصمیم نگرفتی؟

شاید فیلم امشبت همین‌جاست؛ بذار ما یکی برات انتخاب کنیم.بذار ما یکی برات انتخاب کنیم.

'; h += '

سانتروفیلم

گزارش به‌روزرسانی سریال‌ها

' + hEsc(jLong(jn) + ' · ' + fa(pad(jn.h) + ':' + pad(jn.mi))) + ' | بازه: ' + hEsc(rangeLabel()) + ' | ' + hEsc(host) + '

 

'; h += '' + [['سریال در گزارش', st.n], ['به‌روز شده امروز', st.today], ['در ۷ روز اخیر', st.wk], ['تازه در ۲۴ ساعت', st.pct + '٪']].map(function (k) { return ''; }).join('') + '

' + hEsc(fa(k[1])) + '

' + k[0] + '

 

'; h += '' + ['ردیف', 'عنوان سریال', 'فصل', 'قسمت', 'تاریخ ویرایش (شمسی)', 'ساعت'].map(function (t) { return ''; }).join('') + ''; list.forEach(function (x, i) { h += ''; }); h += '
' + t + '
' + hEsc(fa(i + 1)) + '' + hEsc(x.t) + '' + hEsc(x.s) + '' + hEsc(x.e) + '' + hEsc(x.d) + '' + hEsc(x.h) + '

 

جمع کل: ' + hEsc(fa(list.length)) + ' سریال

'; h += '

زمان‌ها بر پایه‌ی آخرین ویرایش ثبت‌شده‌ی هر سریال و به تقویم شمسی است و لزوماً زمان انتشار قسمت جدید نیست.

'; h += '

© ' + hEsc(fa(jn.y)) + ' سانتروفیلم — کلیه حقوق محفوظ است.

'; return h; }; /* ===== چاپ: فاکتور در یک iframe پنهان، A4 ===== */ var printCanvas = function (cv) { var url = cv.toDataURL('image/jpeg', 0.92), f = document.createElement('iframe'); f.setAttribute('aria-hidden', 'true'); f.style.cssText = 'position:fixed;right:0;bottom:0;width:0;height:0;border:0;opacity:0;pointer-events:none'; document.body.appendChild(f); var d = f.contentWindow.document; d.open(); d.write('SantrooFilm '); d.close(); var im = d.getElementById('i'), go = function () { try { f.contentWindow.focus(); f.contentWindow.print(); } catch (e) {} window.setTimeout(function () { if (f.parentNode) f.parentNode.removeChild(f); }, 90000); }; if (im.complete) go(); else im.onload = go; }; /* ===== پنجره‌ی شیشه‌ای خروجی ===== */ var SVGI = { png: '', pdf: '', doc: '', print: '', x: '' }; var OPTS = [['png', 'تصویر PNG', 'فاکتور A4 با کیفیت بالا', 'o-png'], ['pdf', 'فایل PDF', 'آماده‌ی ارسال و بایگانی', 'o-pdf'], ['doc', 'سند Word', 'قابل‌ویرایش، همه‌ی ردیف‌ها', 'o-doc'], ['print', 'چاپ با پرینتر', 'مستقیم روی کاغذ A4', 'o-prn']]; var THEME_ICONS = { aurora: '', miami: '', gold: '', emerald: '', crimson: '', ocean: '', ruby: '', noir: '' }; var THEME_OPTS = [ ['aurora', 'شفقی', 'آبی · بنفش · صورتی', 't-aurora'], ['miami', 'نئون میامی', 'صورتی · فیروزه‌ای', 't-miami'], ['gold', 'طلایی سینما', 'طلا · کهربا', 't-gold'], ['emerald', 'زمردی', 'سبز · نعنایی', 't-emerald'], ['crimson', 'آتشین', 'قرمز · مرجانی', 't-crimson'], ['ocean', 'اقیانوسی', 'آبی عمیق · سیان', 't-ocean'], ['ruby', 'یاقوتی', 'ارغوانی · سرخابی', 't-ruby'], ['noir', 'مینیمال شب', 'خاکستری شیک', 't-noir'] ]; window.__sfxTheme = ''; var modal = null, lastFocus = null, busy = false, closeT = 0; var closeModal = function () { if (!modal) return; modal.classList.remove('is-open'); document.documentElement.classList.remove('sfx-lock'); window.setTimeout(function () { if (modal) modal.setAttribute('hidden', ''); }, 260); document.removeEventListener('keydown', onKey, true); if (lastFocus) { try { lastFocus.focus({ preventScroll: true }); } catch (e) {} } }; var onKey = function (e) { if (!modal || modal.hasAttribute('hidden')) return; if (e.key === 'Escape' || e.key === 'Esc') { e.preventDefault(); e.stopPropagation(); closeModal(); return; } if (e.key === 'Tab') { var f = qa('button', modal).filter(function (b) { return !b.disabled; }); if (!f.length) return; var first = f[0], last = f[f.length - 1]; if (e.shiftKey && document.activeElement === first) { e.preventDefault(); last.focus(); } else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); } } }; var setSt = function (txt, kind) { var s = modal && modal.querySelector('.sfx-st'); if (!s) return; s.textContent = txt || ''; s.setAttribute('data-k', kind || ''); }; var runExport = function (fmt, btn) { if (busy) return; if (!window.__sfxTheme) { setSt('اول یک رنگ / قالب را انتخاب کن', 'err'); return; } var list = collect(); if (!list.length) { setSt('موردی برای خروجی نیست', 'err'); return; } busy = true; btn.classList.add('is-busy'); setSt('در حال آماده‌سازی…', 'wait'); var fin = function (ok, msg) { busy = false; btn.classList.remove('is-busy'); setSt(msg, ok ? 'ok' : 'err'); if (ok) { window.clearTimeout(closeT); closeT = window.setTimeout(closeModal, 1500); } }; var run = function () { try { var stamp = Date.now(); if (fmt === 'doc') { dl(new Blob(['' + wordDoc(list)], { type: 'application/msword;charset=utf-8' }), 'SantrooFilm-Report-' + stamp + '.doc'); fin(true, 'فایل Word آماده شد ✓'); return; } var res = drawInvoice(list, window.__sfxTheme); if (fmt === 'png') { res.canvas.toBlob(function (b) { if (!b) { fin(false, 'خطا در ساخت تصویر'); return; } dl(b, 'SantrooFilm-Invoice-' + res.no + '.png'); fin(true, 'تصویر PNG آماده شد ✓'); }, 'image/png'); return; } if (fmt === 'pdf') { var bin = atob(res.canvas.toDataURL('image/jpeg', 0.92).split(',')[1]), by = new Uint8Array(bin.length), i; for (i = 0; i < bin.length; i++) by[i] = bin.charCodeAt(i); dl(new Blob([makePdf(by, res.canvas.width, res.canvas.height)], { type: 'application/pdf' }), 'SantrooFilm-Report-' + res.no + '.pdf'); fin(true, 'فایل PDF آماده شد ✓'); return; } printCanvas(res.canvas); fin(true, 'پنجره‌ی چاپ باز شد ✓'); } catch (e) { if (window.console && window.console.error) window.console.error('[Santroofilm export]', e); fin(false, 'خطا در ساخت خروجی'); } }; var go = function () { window.setTimeout(run, 40); }; if (document.fonts && document.fonts.ready) document.fonts.ready.then(go, go); else go(); }; var buildModal = function () { var m = el('div', 'sfx'); m.setAttribute('role', 'dialog'); m.setAttribute('aria-modal', 'true'); m.setAttribute('aria-label', 'خروجی‌گیری از گزارش'); m.setAttribute('dir', 'rtl'); m.setAttribute('hidden', ''); m.style.fontFamily = window.getComputedStyle(panel).fontFamily; var bd = el('div', 'sfx-bd'), card = el('div', 'sfx-card'), hd = el('div', 'sfx-hd'), tt = el('div', 'sfx-t'), x = el('button', 'sfx-x'); x.type = 'button'; x.setAttribute('aria-label', 'بستن'); x.innerHTML = SVGI.x; tt.appendChild(el('b', '', 'خروجی‌گیری از گزارش')); tt.appendChild(el('small', 'sfx-sub', '')); hd.appendChild(tt); hd.appendChild(x); card.appendChild(hd); var lbl = el('div', 'sfx-sec-lbl', '۱) رنگ و قالب فاکتور را انتخاب کن'); var themes = el('div', 'sfx-themes'); var grid = el('div', 'sfx-grid'); var syncFmt = function () { var on = !!window.__sfxTheme; qa('.sfx-o', grid).forEach(function (x) { x.disabled = !on; x.classList.toggle('is-locked', !on); x.setAttribute('aria-disabled', on ? 'false' : 'true'); }); if (on) setSt('قالب «' + (THEME_OPTS.filter(function (z) { return z[0] === window.__sfxTheme; })[0] || ['', ''])[1] + '» انتخاب شد — حالا نوع خروجی را بزن', 'ok'); else setSt('برای ادامه، یکی از رنگ‌ها را انتخاب کن', 'wait'); }; THEME_OPTS.forEach(function (o) { var b = el('button', 'sfx-th ' + o[3]); b.type = 'button'; b.setAttribute('data-theme', o[0]); b.setAttribute('aria-pressed', 'false'); var sw = el('span', 'sfx-th-sw'); sw.innerHTML = THEME_ICONS[o[0]] || ''; b.appendChild(sw); var tx = el('span', 'sfx-tx'); tx.appendChild(el('b', '', o[1])); tx.appendChild(el('small', '', o[2])); var dots = el('span', 'sfx-th-dots'); dots.setAttribute('aria-hidden', 'true'); dots.appendChild(el('i', '')); dots.appendChild(el('i', '')); dots.appendChild(el('i', '')); tx.appendChild(dots); b.setAttribute('aria-label', 'قالب ' + o[1] + ' (' + o[2] + ')'); b.setAttribute('title', o[2]); b.appendChild(tx); b.addEventListener('click', function () { window.__sfxTheme = o[0]; qa('.sfx-th', themes).forEach(function (x) { var is = x === b; x.classList.toggle('is-on', is); x.setAttribute('aria-pressed', is ? 'true' : 'false'); }); syncFmt(); }); themes.appendChild(b); }); var lbl2 = el('div', 'sfx-sec-lbl', '۲) نوع خروجی را انتخاب کن'); OPTS.forEach(function (o) { var b = el('button', 'sfx-o ' + o[3]); b.type = 'button'; b.setAttribute('data-fmt', o[0]); b.disabled = true; b.classList.add('is-locked'); b.setAttribute('aria-disabled', 'true'); var ic = el('span', 'sfx-i'); ic.innerHTML = SVGI[o[0]]; var tx = el('span', 'sfx-tx'); tx.appendChild(el('b', '', o[1])); tx.appendChild(el('small', '', o[2])); b.appendChild(ic); b.appendChild(tx); b.appendChild(el('i', 'sfx-sp')); b.addEventListener('click', function () { if (b.disabled) { setSt('اول یک رنگ / قالب را انتخاب کن', 'err'); return; } runExport(o[0], b); }); grid.appendChild(b); }); var sbody = el('div', 'sfx-body'); sbody.appendChild(lbl); sbody.appendChild(themes); sbody.appendChild(lbl2); sbody.appendChild(grid); card.appendChild(sbody); card.appendChild(el('p', 'sfx-st', '')); window.setTimeout(function () { syncFmt(); }, 0); m.appendChild(bd); m.appendChild(card); bd.addEventListener('click', closeModal); x.addEventListener('click', closeModal); bd.addEventListener('touchmove', function (e) { if (e.cancelable) e.preventDefault(); }, { passive: false }); var dy = 0, sy = 0, drag = false; hd.addEventListener('touchstart', function (e) { if (window.innerWidth > 640 || !e.touches || e.touches.length !== 1) return; sy = e.touches[0].clientY; dy = 0; drag = true; card.style.transition = 'none'; }, { passive: true }); hd.addEventListener('touchmove', function (e) { if (!drag) return; var d = e.touches[0].clientY - sy; dy = d > 0 ? d : 0; card.style.transform = 'translate3d(0,' + dy + 'px,0)'; }, { passive: true }); var endDrag = function () { if (!drag) return; drag = false; card.style.transition = ''; card.style.transform = ''; if (dy > 90) closeModal(); dy = 0; }; hd.addEventListener('touchend', endDrag, { passive: true }); hd.addEventListener('touchcancel', endDrag, { passive: true }); document.body.appendChild(m); return m; }; var openModal = function (from) { try { if (!modal) modal = buildModal(); if (!modal) { window.alert('خطا در ساخت پنجره خروجی'); return; } window.__sfxTheme = ''; qa('.sfx-th', modal).forEach(function (x) { x.classList.remove('is-on'); x.setAttribute('aria-pressed', 'false'); }); qa('.sfx-o', modal).forEach(function (x) { x.disabled = true; x.classList.add('is-locked'); x.setAttribute('aria-disabled', 'true'); }); var list = collect(); var sub = modal.querySelector('.sfx-sub'); if (sub) sub.textContent = 'بازه: ' + rangeLabel() + ' · ' + fa(list.length) + ' سریال'; setSt('برای ادامه، یکی از رنگ‌ها را انتخاب کن', 'wait'); lastFocus = from || null; modal.removeAttribute('hidden'); var sb0 = modal.querySelector('.sfx-body'); if (sb0) sb0.scrollTop = 0; window.requestAnimationFrame ? window.requestAnimationFrame(function () { modal.classList.add('is-open'); }) : modal.classList.add('is-open'); document.documentElement.classList.add('sfx-lock'); document.addEventListener('keydown', onKey, true); window.setTimeout(function () { var f = modal.querySelector('.sfx-o, .sfx-th'); if (f) { try { f.focus({ preventScroll: true }); } catch (e) {} } }, 60); } catch (err) { try { console.error('sfx openModal', err); } catch (e2) {} window.alert('خطا در باز شدن خروجی‌گیری: ' + (err && err.message ? err.message : err)); } }; /* ===== دکمه‌های «خروجی‌گیری» و «کپی گزارش» ===== */ var copyText = function (t, done) { var fb = function () { var ta = document.createElement('textarea'); ta.value = t; ta.style.cssText = 'position:fixed;top:0;left:0;opacity:0'; document.body.appendChild(ta); ta.select(); var ok = false; try { ok = document.execCommand('copy'); } catch (e) {} document.body.removeChild(ta); done(ok); }; if (navigator.clipboard && navigator.clipboard.writeText) navigator.clipboard.writeText(t).then(function () { done(true); }, fb); else fb(); }; var flash = function (btn, txt) { var sp = btn.querySelector('.sfu-lbl'); if (!sp) return; if (!btn.getAttribute('data-l')) btn.setAttribute('data-l', sp.textContent); sp.textContent = txt; btn.classList.add('is-done'); window.setTimeout(function () { sp.textContent = btn.getAttribute('data-l'); btn.classList.remove('is-done'); }, 2200); }; acts.forEach(function (btn) { btn.addEventListener('click', function () { var a = btn.getAttribute('data-act'); if (a === 'export') { openModal(btn); return; } var list = collect(); if (!list.length) { flash(btn, 'موردی برای کپی نیست'); return; } copyText(textReport(list), function (ok) { flash(btn, ok ? 'کپی شد ✓' : 'کپی انجام نشد'); }); }); }); }); safe(function () { var box = byId('sfTon'), poolEl = byId('sfPool'); if (!box || !poolEl) return; var pool; try { pool = JSON.parse(poolEl.textContent); } catch (e) { return; } var src = { film: pool.film || [], series: pool.series || [] }; var ORDER = ['morning', 'noon', 'evening', 'night']; var COUNT = 9; var SLOTS = { morning: { icon: 'sun', title: 'صبح چی ببینم؟', sub: 'یه شروع خوب برای روزت', kw: ['انیمیشن', 'خانوادگی', 'کمدی', 'ماجراجویی', 'مستند', 'موزیکال', 'فانتزی', 'زندگینامه', 'بیوگرافی', 'ورزشی', 'انیمه', 'کودک'] }, noon: { icon: 'sun', title: 'ظهر چی ببینم؟', sub: 'یه استراحت دلچسب بین کارها', kw: ['کمدی', 'اکشن', 'ماجراجویی', 'علمیتخیلی', 'انیمیشن', 'انیمه', 'موزیکال', 'فانتزی'] }, evening: { icon: 'sunset', title: 'عصر چی ببینم؟', sub: 'برای وقتی که کارت تموم شد', kw: ['درام', 'رمانتیک', 'عاشقانه', 'جنایی', 'تاریخی', 'زندگینامه', 'بیوگرافی', 'وسترن', 'جنگی'] }, night: { icon: 'moon', title: 'امشب چی ببینم؟', sub: 'چندتا پیشنهاد مخصوص همین الان تو', kw: ['ترسناک', 'وحشت', 'هیجان', 'معمایی', 'رازآلود', 'جنایی', 'علمیتخیلی', 'وسترن'] } }; var norm = function (s) { return String(s || '').replace(/[‌\s_\-]/g, '').replace(/ي/g, 'ی').replace(/ك/g, 'ک'); }; var AFF_KEY = 'sfWtAff'; var aff = {}; try { aff = JSON.parse(localStorage.getItem(AFF_KEY) || '{}') || {}; } catch (e) { aff = {}; } var genresOf = function (gf) { return String(gf || '').split('،').map(norm).filter(Boolean); }; var hrSlot = function () { var h = new Date().getHours(); return h >= 5 && h < 11 ? 'morning' : h >= 11 && h < 16 ? 'noon' : h >= 16 && h < 20 ? 'evening' : 'night'; }; var cur = box.getAttribute('data-slot') || 'night'; var mode = 'all', busy = false; var grid = byId('sfGrid'), shufBtn = byId('sfShuffle'), seg = box.querySelector('.wt-seg'); var modeBtns = qa('[data-mode]', box), timeBtns = qa('[data-slot]', box); var score = function (it, shown) { var gs = genresOf(it.gf), kw = SLOTS[cur].kw, s = 0, i, j, a = 0; for (i = 0; i < kw.length; i++) { for (j = 0; j < gs.length; j++) { if (gs[j].indexOf(kw[i]) !== -1) { s += 1; break; } } } var im = parseFloat(it.im) || 0; if (mode === 'you') { for (j = 0; j < gs.length; j++) a += aff[gs[j]] || 0; s = s * 0.5 + Math.min(a, 12) * 0.35 + im / 10 * 0.8; } else { s += im / 10 * 0.4; } s += Math.random() * 0.9; if (shown[it.u]) s -= 2; return s; }; var rank = function (list, n, shown) { return list.map(function (it) { return { s: score(it, shown), it: it }; }) .sort(function (x, y) { return y.s - x.s; }) .slice(0, n).map(function (r) { return r.it; }); }; var pick = function (shown) { if (mode === 'film') return rank(src.film, COUNT, shown); if (mode === 'series') return rank(src.series, COUNT, shown); if (mode === 'you') return rank(src.film.concat(src.series), COUNT, shown); var f = rank(src.film, COUNT, shown), s = rank(src.series, COUNT, shown), out = [], fi = 0, si = 0; while (out.length < COUNT && (fi < f.length || si < s.length)) { if (out.length % 2 === 0) out.push(fi < f.length ? f[fi++] : s[si++]); else out.push(si < s.length ? s[si++] : f[fi++]); } return out; }; var wtCard = function (it) { var a = el('a', 'wt-c'); a.href = it.u; a.setAttribute('aria-label', it.t); a.setAttribute('data-g', it.gf || ''); a.setAttribute('data-k', it.k); var thumb = it.p || it.i; if (thumb) { var im = document.createElement('img'); im.className = 'wt-img'; if (it.ss && thumb === it.p) { im.srcset = it.ss; im.sizes = '(max-width:991px) 31vw, 190px'; } im.src = thumb; im.alt = ''; im.loading = 'lazy'; im.decoding = 'async'; a.appendChild(im); } var k = span('wt-k'); k.setAttribute('aria-hidden', 'true'); k.appendChild(icon(it.k === 'series' ? 'tv' : 'film')); a.appendChild(k); if (it.im) { var m = span('wt-im'); m.appendChild(el('b', '', 'IMDb')); m.appendChild(document.createTextNode(it.im)); a.appendChild(m); } var cap = span('wt-cap'); cap.appendChild(el('strong', '', it.t)); if (it.g) cap.appendChild(span('wt-g', it.g.split(' • ').join(' · '))); a.appendChild(cap); var pl = span('wt-pl'); pl.setAttribute('aria-hidden', 'true'); pl.appendChild(icon('play')); a.appendChild(pl); return a; }; var render = function (silent) { var shown = {}; qa('.wt-c', grid).forEach(function (a) { shown[a.getAttribute('href')] = 1; }); var items = pick(shown); var apply = function () { grid.textContent = ''; var frag = document.createDocumentFragment(); items.forEach(function (it) { frag.appendChild(wtCard(it)); }); grid.appendChild(frag); grid.classList.remove('fade'); if (!silent) { grid.classList.remove('in'); void grid.offsetWidth; grid.classList.add('in'); } busy = false; }; busy = true; if (silent) { apply(); return; } grid.classList.add('fade'); setTimeout(apply, 180); }; var setSlot = function (slot) { cur = slot; box.setAttribute('data-slot', slot); byId('sfTonTitle').textContent = SLOTS[slot].title; byId('sfTonSub').textContent = SLOTS[slot].sub; var u = box.querySelector('.wt-tl use'); if (u) { u.setAttribute('href', '#sf-i-' + SLOTS[slot].icon); u.setAttributeNS(XNS, 'xlink:href', '#sf-i-' + SLOTS[slot].icon); } if (seg) seg.style.setProperty('--i', ORDER.indexOf(slot)); timeBtns.forEach(function (b) { var on = b.getAttribute('data-slot') === slot; b.classList.toggle('active', on); }); }; // first set is rendered by PHP; if the visitor's clock says another part of the day (cached page / timezone), re-rank silently var real = hrSlot(); if (real !== cur) { setSlot(real); render(true); } modeBtns.forEach(function (b) { b.addEventListener('click', function () { if (busy || b.getAttribute('data-mode') === mode) return; mode = b.getAttribute('data-mode'); modeBtns.forEach(function (t) { var on = t === b; t.classList.toggle('active', on); t.setAttribute('aria-selected', on ? 'true' : 'false'); }); render(); }); }); // زمان روز فقط نمایشی است و خودکار از ساعت دستگاه می‌آید (هر دقیقه بررسی می‌شود) setInterval(function () { if (document.hidden) return; var r = hrSlot(); if (!busy && r !== cur) { setSlot(r); render(); } }, 60000); shufBtn.addEventListener('click', function () { if (busy) return; shufBtn.classList.remove('spin'); void shufBtn.offsetWidth; shufBtn.classList.add('spin'); render(); }); // «برای تو»: ژانرِ کارت‌هایی که باز می‌کنی در همین مرورگر ذخیره می‌شود (localStorage) grid.addEventListener('click', function (e) { var a = e.target && e.target.closest ? e.target.closest('.wt-c') : null; if (!a) return; genresOf(a.getAttribute('data-g')).forEach(function (g) { aff[g] = Math.min((aff[g] || 0) + 1, 50); }); try { localStorage.setItem(AFF_KEY, JSON.stringify(aff)); } catch (e) {} }); }); })();
pwa

وب اپلیکیشن سانتروفیلم را همین الان میتوانید به صفحه اصلی گوشی خود اضافه کنید.