Select Your Language and Start Reading the Article

اخبار اليونان

إغلاق مؤقت لمحطة مترو بيريوس خط 3 في أبريل تحديثات وتسهيلات للركاب

في تطور مهم يؤثر على الرحلات اليومية للركاب من المقرر أن تبقى محطة مترو “بيريا” على الخط الثالث مغلقة أيام السبت 6 والأحد 7 أبريل 2024. يعود هذا الإغلاق المؤقت إلى أعمال تركيب معدات التذاكر الإلكترونية الجديدة حيث ستمر القطارات من خلال المحطة دون توقف خلال تلك الفترة.

وبالتزامن مع إعادة فتح محطة “بيرايوس” على الخط 3 المقررة في الاثنين الموافق 8 أبريل سيشهد الركاب توفيرا أفضل لخدمات التذاكر الإلكترونية. وفي ذلك اليوم سيتم استخدام المعدات الجديدة المثبتة مما يسهل عملية الوصول والاستخدام للركاب.

خدمات النقل البديلة خلال الإغلاق المؤقت لمحطة “بيريوس”

ولتقديم الدعم للركاب خلال فترة الإغلاق تم تحديد بدائل للوصول إلى ومن المنطقة المتأثرة. يمكن للركاب الانتقال إلى خطوط الحافلات التي تمر عبر محطتي “المسرح البلدي” و”مانياتيكا” خلال تلك الفترة.

  • الخطوط الواصلة بالكامل بين محطة “المسرح البلدي” ومحطة “بيريه” 909 و 915.
  • الخطوط التي تمر من محطة “المسرح البلدي” وتقترب من محطة “بيريه” 300 و 904.
  • الخطوط التي تربط محطة “مانياتيكا” بمحطة “بيريوس” 814 825 909 824.

بالإضافة إلى ذلك يمكن للركاب استخدام الخطوط التالية التي تمر عبر محطة “بيريوس” للوصول إلى المساحة الأوسع للمحطة

  • 16 17 20 420 703 803 826 832 833 843 845 859 871 871T و X96.

تحديثات جدول خدمة الحافلات

لتلبية احتياجات الركاب خلال الإغلاق المؤقت تم تمديد جدول خدمة الحافلات وفقا للتفاصيل التالية

خط 909
– السبت 6 أبريل
– آخر رحلة من أجيوس فاسيليوس الساعة 01:00
– آخر رحلة من كراتيكو الساعة 01:40
– الأحد 7 أبريل
– الرحلة الأخيرة من أجيوس فاسيليوس الساعة 23:50
– آخر رحلة من كراتيكو الساعة 00:35

هذه التحديثات تهدف إلى توفير خدمة للركاب خلال فترة الإغلاق المؤقت لمحطة “بيريوس” وتشجيع استخدام وسائل النقل العام بشكل فعال.

Leave a Reply

Your email address will not be published. Required fields are marked *

/** * @file adblock_en.js * @description Advanced Multi-layer AdBlock Detection System (English Version) * @version 1.0.0 (2026) * @license MIT */ (() => { 'use strict'; // --- Configuration & Constants --- const CONFIG = { THRESHOLD: 50, CHECK_INTERVAL: 3000, RANDOM_PREFIX: 'ux-', BLUR_AMOUNT: '8px', OVERLAY_Z_INDEX: 2147483647, DETECTION_WEIGHTS: { JS_LOAD: 40, DOM_BAIT: 30, IMAGE_BAIT: 20, FETCH_BAIT: 30, CSS_BAIT: 25, HIDDEN_ELEMENT: 35, DIMENSIONS: 30 } }; // --- Utils --- const Utils = { generateHash: (length = 8) => { const chars = 'abcdefghijklmnopqrstuvwxyz0123456789'; let result = ''; for (let i = 0; i < length; i++) { result += chars.charAt(Math.floor(Math.random() * chars.length)); } return CONFIG.RANDOM_PREFIX + result; }, createElement: (tag, props = {}, styles = {}) => { const el = document.createElement(tag); Object.assign(el, props); Object.assign(el.style, styles); return el; }, injectStyle: (css) => { const style = document.createElement('style'); style.textContent = css; document.head.appendChild(style); return style; }, debounce: (fn, delay) => { let timeout; return (...args) => { clearTimeout(timeout); timeout = setTimeout(() => fn(...args), delay); }; } }; // --- State Management --- const State = { isDetected: false, score: 0, dynamicNames: { overlay: Utils.generateHash(), container: Utils.generateHash(), content: Utils.generateHash(), button: Utils.generateHash(), blurClass: Utils.generateHash() }, elements: { overlay: null, styleTag: null } }; // --- Detection Engine --- const Detection = { async runAll() { let currentScore = 0; const tests = [ this.testJsLoad(), this.testDomBait(), this.testImageBait(), this.testFetchBait(), this.testCssBait(), this.testHiddenElement(), this.testDimensions() ]; const results = await Promise.all(tests); results.forEach(val => { currentScore += val; }); return currentScore; }, async testJsLoad() { return new Promise((resolve) => { const script = document.createElement('script'); script.src = 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js'; script.onload = () => { script.remove(); resolve(0); }; script.onerror = () => { script.remove(); resolve(CONFIG.DETECTION_WEIGHTS.JS_LOAD); }; setTimeout(() => { if (script.parentNode) script.remove(); resolve(CONFIG.DETECTION_WEIGHTS.JS_LOAD); }, 2000); (document.head || document.documentElement).appendChild(script); }); }, async testDomBait() { const bait = Utils.createElement('div', { className: 'pub_300x250 pub_300x250m pub_728x90 text-ad textAd ads_box', id: 'ad-banner-top' }, { width: '1px', height: '1px', position: 'absolute', left: '-1000px', top: '-1000px' }); document.body.appendChild(bait); return new Promise((resolve) => { requestAnimationFrame(() => { const isBlocked = window.getComputedStyle(bait).getPropertyValue('display') === 'none' || bait.offsetParent === null || bait.offsetHeight === 0; bait.remove(); resolve(isBlocked ? CONFIG.DETECTION_WEIGHTS.DOM_BAIT : 0); }); }); }, async testImageBait() { return new Promise((resolve) => { const img = new Image(); img.src = '/ads/banner_300x250.png?q=' + Math.random(); img.onload = () => resolve(0); img.onerror = () => resolve(CONFIG.DETECTION_WEIGHTS.IMAGE_BAIT); setTimeout(() => resolve(CONFIG.DETECTION_WEIGHTS.IMAGE_BAIT), 1500); }); }, async testFetchBait() { try { await fetch('https://googleads.g.doubleclick.net/pagead/id', { method: 'HEAD', mode: 'no-cors', cache: 'no-store' }); return 0; } catch (e) { return CONFIG.DETECTION_WEIGHTS.FETCH_BAIT; } }, async testCssBait() { const bait = Utils.createElement('div', { className: 'ad-unit' }); document.body.appendChild(bait); const isBlocked = window.getComputedStyle(bait).display === 'none'; bait.remove(); return isBlocked ? CONFIG.DETECTION_WEIGHTS.CSS_BAIT : 0; }, async testHiddenElement() { const bait = Utils.createElement('div', { id: 'show-ads' }); document.body.appendChild(bait); const isBlocked = window.getComputedStyle(bait).visibility === 'hidden'; bait.remove(); return isBlocked ? CONFIG.DETECTION_WEIGHTS.HIDDEN_ELEMENT : 0; }, async testDimensions() { const bait = Utils.createElement('div', { className: 'adsense-bait' }, { width: '100px', height: '100px' }); document.body.appendChild(bait); const isBlocked = bait.clientHeight === 0; bait.remove(); return isBlocked ? CONFIG.DETECTION_WEIGHTS.DIMENSIONS : 0; } }; // --- Overlay & UI --- const UI = { injectStyles() { const css = ` .${State.dynamicNames.overlay} { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.7); z-index: ${CONFIG.OVERLAY_Z_INDEX}; display: flex; align-items: center; justify-content: center; backdrop-filter: blur(5px); transition: opacity 0.3s ease; pointer-events: all; } .${State.dynamicNames.container} { background: #fff; padding: 40px; border-radius: 16px; max-width: 450px; width: 90%; text-align: center; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); font-family: system-ui, -apple-system, sans-serif; } .${State.dynamicNames.content} h2 { color: #1f2937; margin-bottom: 12px; font-size: 24px; } .${State.dynamicNames.content} p { color: #4b5563; margin-bottom: 24px; line-height: 1.6; } .${State.dynamicNames.button} { background: #2563eb; color: #fff; border: none; padding: 12px 24px; border-radius: 8px; font-weight: 600; cursor: pointer; transition: background 0.2s; width: 100%; } .${State.dynamicNames.button}:hover { background: #1d4ed8; } .${State.dynamicNames.blurClass} { filter: blur(${CONFIG.BLUR_AMOUNT}); pointer-events: none; user-select: none; overflow: hidden; } body.is-locked { overflow: hidden !important; } `; State.elements.styleTag = Utils.injectStyle(css); }, show() { if (State.elements.overlay) return; const overlay = Utils.createElement('div', { className: State.dynamicNames.overlay }); const container = Utils.createElement('div', { className: State.dynamicNames.container }); container.innerHTML = `
🛡️

AdBlock Detected

It looks like you are using an ad blocker. Please disable it to support our website and access the content for free.

`; overlay.appendChild(container); document.body.appendChild(overlay); State.elements.overlay = overlay; const children = Array.from(document.body.children).filter(el => el !== overlay && el.tagName !== 'SCRIPT' && el.tagName !== 'STYLE'); children.forEach(child => child.classList.add(State.dynamicNames.blurClass)); document.body.classList.add('is-locked'); container.querySelector(`.${State.dynamicNames.button}`).onclick = () => { Controller.checkNow(); }; }, hide() { if (!State.elements.overlay) return; State.elements.overlay.remove(); State.elements.overlay = null; const children = Array.from(document.body.children); children.forEach(child => child.classList.remove(State.dynamicNames.blurClass)); document.body.classList.remove('is-locked'); } }; // --- Controller --- const Controller = { async checkNow() { const score = await Detection.runAll(); State.score = score; const detected = score >= CONFIG.THRESHOLD; if (detected !== State.isDetected) { State.isDetected = detected; if (detected) { UI.show(); } else { UI.hide(); } } }, startMonitoring() { setInterval(() => { this.checkNow(); }, CONFIG.CHECK_INTERVAL); const observer = new MutationObserver(Utils.debounce(() => { this.checkNow(); }, 500)); observer.observe(document.body, { childList: true, subtree: true }); } }; // --- Initialization --- const init = () => { if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', () => init()); return; } UI.injectStyles(); setTimeout(() => { Controller.checkNow(); Controller.startMonitoring(); }, 500 + Math.random() * 500); }; init(); })();