דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. התראה על יציאה ממ"ד & שיפור אתר פיקוד העורף

התראה על יציאה ממ"ד & שיפור אתר פיקוד העורף

מתוזמן נעוץ נעול הועבר תכנות
33 פוסטים 16 כותבים 3.9k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • אבי 203א מנותק
    אבי 203א מנותק
    אבי 203
    כתב נערך לאחרונה על ידי
    #1

    אולי רק אני לא מוצא את זה.
    אבל עדין לא מצאתי את הדרך הנורמלית להתעדכן על כניסה ויציאה ממ"ד
    הכל זה רק דרך חדשות וכתבים שמעדכנים.
    https://www.oref.org.il/heb/alerts-history
    הנה למשל אתר פיקוד העורף נרשמתי 100 פעם לקבל עדכנים על עיר מגורי שום דבר לא מתרחש במיוחד.
    אין שמות ברורים למשימות, מבזק, ירי, עדכון. ולך תעשה חיפוש עם העיר שלך במשימה
    אשמח לדעת מה הדרך הנורמלית. בפרט בפלאפונים כשרים אין דרך לדעת אני מקבל רק טרטור על השלב הראשון לפני, לא מקבל לא כניסה לפחות יש אזעקה אבל יציאה ממש מחפש בפורומים וצ'אטים...
    אולי באמת צריך מישהו שיוסיף איזה תוסף לאתר הזה של פיקוד העורך או משהו אחר.

    https://www.av-digital.co.il/

    צבי-שצ צדיק תמיםצ 2 תגובות תגובה אחרונה
    4
    • צבי-שצ מחובר
      צבי-שצ מחובר
      צבי-ש
      השיב לאבי 203 נערך לאחרונה על ידי צבי-ש
      #2

      @אבי-203 כתב בהתראה על יציאה ממ"ד & שיפור אתר פיקוד העורף:

      אולי רק אני לא מוצא את זה.
      אבל עדין לא מצאתי את הדרך הנורמלית להתעדכן על כניסה ויציאה ממ"ד
      הכל זה רק דרך חדשות וכתבים שמעדכנים.
      https://www.oref.org.il/heb/alerts-history
      הנה למשל אתר פיקוד העורף נרשמתי 100 פעם לקבל עדכנים על עיר מגורי שום דבר לא מתרחש במיוחד.
      אין שמות ברורים למשימות, מבזק, ירי, עדכון. ולך תעשה חיפוש עם העיר שלך במשימה
      אשמח לדעת מה הדרך הנורמלית. בפרט בפלאפונים כשרים אין דרך לדעת אני מקבל רק טרטור על השלב הראשון לפני, לא מקבל לא כניסה לפחות יש אזעקה אבל יציאה ממש מחפש בפורומים וצ'אטים...
      אולי באמת צריך מישהו שיוסיף איזה תוסף לאתר הזה של פיקוד העורך או משהו אחר.

      נכנסתי לכאן
      פתחתי F12 על העיר בני ברק כדוגמא
      https://alerts-history.oref.org.il//Shared/Ajax/GetAlarmsHistory.aspx?lang=he&mode=1&city_0=בני ברק

      יש שם התראות לפי קטגוריות (את הקטגוריות ניתן למצוא כאן)

      אני חושב ש13 זה יציאה ממרחב מוגן
      אתה יכול לגשת לזה כל דקה ולראות אם השתנה משהו ביימה האחרונה,
      מלבד זאת אני חושב שכאן (לפי הID של העיר, בני ברק - 237) תוכל למצוא בזמן אמת את אות התראות אבל אני לא בטוח כי כרגע אין שם כלום

      עריכה: אני חושב שהכתובות הנ"ל לא ניתן לגשת אליהם משרתים בחול, אז אם זה עובד בטסטים ולא בפרוד - שים לב לזה

      כיף לגלות דברים חדשים.
      חוק ה-50-50-90: בכל פעם שיש סיכוי של 50-50 שמשהו יעבוד, יש סיכוי של 90 אחוז שהוא לא. מקור

      תגובה 1 תגובה אחרונה
      2
      • צדיק תמיםצ מנותק
        צדיק תמיםצ מנותק
        צדיק תמים
        השיב לאבי 203 נערך לאחרונה על ידי
        #3

        @אבי-203 נתקלתי לאחרונה: https://github.com/eladnava/pikud-haoref-api/
        אפשר גם לעשות scraping על הטלגרם שלהם, https://t.me/s/PikudHaOref_all?embed=1

        ש תגובה 1 תגובה אחרונה
        2
        • ש מחובר
          ש מחובר
          ששא
          השיב לצדיק תמים נערך לאחרונה על ידי
          #4

          @צדיק-תמים עדיין יש את הבעיה

          @צבי-ש כתב בהתראה על יציאה ממ"ד & שיפור אתר פיקוד העורף:

          עריכה: אני חושב שהכתובות הנ"ל לא ניתן לגשת אליהם משרתים בחול, אז אם זה עובד בטסטים ולא בפרוד - שים לב לזה

          אין משהו עם גישה לחול?

          צדיק תמיםצ מדמ 2 תגובות תגובה אחרונה
          0
          • צדיק תמיםצ מנותק
            צדיק תמיםצ מנותק
            צדיק תמים
            השיב לששא נערך לאחרונה על ידי צדיק תמים
            #5

            @ששא הטלגרם שהבאתי
            או שתתלבש על איזה אתר חדשות שבודק מולם...

            ש תגובה 1 תגובה אחרונה
            0
            • ש מחובר
              ש מחובר
              ששא
              השיב לצדיק תמים נערך לאחרונה על ידי
              #6

              @צדיק-תמים כתב בהתראה על יציאה ממ"ד & שיפור אתר פיקוד העורף:

              @ששא הטלגרם שהבאתי

              לא יודע איך עובדים עם טלגרם... וזה גם חסום אצלי כמובן

              צדיק תמיםצ תגובה 1 תגובה אחרונה
              1
              • צדיק תמיםצ מנותק
                צדיק תמיםצ מנותק
                צדיק תמים
                השיב לששא נערך לאחרונה על ידי צדיק תמים
                #7

                @ששא @צדיק-תמים כתב בהתראה על יציאה ממ"ד & שיפור אתר פיקוד העורף:

                אפשר גם לעשות scraping על הטלגרם שלהם, https://t.me/s/PikudHaOref_all?embed=1

                מבחינתך זה סתם אתר אינטרנט
                דוגמת קוד שכתבתי פעם ורצה עד היום:

                const $ = cheerio.load(html);
                return $('div.tgme_widget_message[data-post]').map((i, messageElem) => {
                  const postId = $(messageElem).attr('data-post');
                  const textContainer = $(messageElem).find('.tgme_widget_message_text.js-message_text');
                  textContainer.find('br').replaceWith('\n');
                  const messageText = textContainer.text().trim();
                  const datetimeAttr = $(messageElem).find('.tgme_widget_message_date time').attr('datetime') || '';
                  const formattedDate = datetimeAttr
                    ? new Date(datetimeAttr).toLocaleString('he-IL', {
                        month: 'long',
                        day: 'numeric',
                        hour: '2-digit',
                        minute: '2-digit'
                      })
                    : '';
                });
                
                ש תגובה 1 תגובה אחרונה
                0
                • מדמ מחובר
                  מדמ מחובר
                  מד
                  השיב לששא נערך לאחרונה על ידי
                  #8

                  @ששא כתב בהתראה על יציאה ממ"ד & שיפור אתר פיקוד העורף:

                  אין משהו עם גישה לחול?

                  אני בחו"ל, ואמת נכון הדבר, אין גישה. רק כשאני מתחבר לשרת ישראל כמבואר כאן.

                  תגובה 1 תגובה אחרונה
                  0
                  • ש מחובר
                    ש מחובר
                    ששא
                    השיב לצדיק תמים נערך לאחרונה על ידי ששא
                    #9

                    @צדיק-תמים כתב בהתראה על יציאה ממ"ד & שיפור אתר פיקוד העורף:

                    @ששא @צדיק-תמים כתב בהתראה על יציאה ממ"ד & שיפור אתר פיקוד העורף:

                    אפשר גם לעשות scraping על הטלגרם שלהם, https://t.me/s/PikudHaOref_all?embed=1

                    מבחינתך זה סתם אתר אינטרנט
                    דוגמת קוד שכתבתי פעם ורצה עד היום:

                    const $ = cheerio.load(html);
                    return $('div.tgme_widget_message[data-post]').map((i, messageElem) => {
                      const postId = $(messageElem).attr('data-post');
                      const textContainer = $(messageElem).find('.tgme_widget_message_text.js-message_text');
                      textContainer.find('br').replaceWith('\n');
                      const messageText = textContainer.text().trim();
                      const datetimeAttr = $(messageElem).find('.tgme_widget_message_date time').attr('datetime') || '';
                      const formattedDate = datetimeAttr
                        ? new Date(datetimeAttr).toLocaleString('he-IL', {
                            month: 'long',
                            day: 'numeric',
                            hour: '2-digit',
                            minute: '2-digit'
                          })
                        : '';
                    });
                    

                    זה לוקח מצבע אדום או שזה לוקח סתם דבר אחר?

                    צדיק תמיםצ תגובה 1 תגובה אחרונה
                    0
                    • צדיק תמיםצ מנותק
                      צדיק תמיםצ מנותק
                      צדיק תמים
                      השיב לששא נערך לאחרונה על ידי צדיק תמים
                      #10

                      @ששא זה דוגמה לפרסור הודעות מהתצוגת ווב של ערוץ טלגרם
                      הבאתי קישור לעיל לתצוגת ווב של הערוץ הרשמי של פיקוד העורף

                      תגובה 1 תגובה אחרונה
                      0
                      • אבי 203א מנותק
                        אבי 203א מנותק
                        אבי 203
                        כתב נערך לאחרונה על ידי
                        #11

                        נשאר רק לחבר?

                        <!DOCTYPE html>
                        <html lang="he" dir="rtl">
                        <head>
                            <meta charset="UTF-8">
                            <meta name="viewport" content="width=device-width, initial-scale=1.0">
                            <title>מערכת התראות חכמה - פיקוד העורף</title>
                            <style>
                                * {
                                    margin: 0;
                                    padding: 0;
                                    box-sizing: border-box;
                                }
                        
                                body {
                                    font-family: 'Segoe UI', Arial, sans-serif;
                                    background: #f4f7fa;
                                    color: #333;
                                    min-height: 100vh;
                                    padding: 20px;
                                }
                        
                                .container {
                                    max-width: 1200px;
                                    margin: 0 auto;
                                    background: #fff;
                                    border-radius: 12px;
                                    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
                                    overflow: hidden;
                                }
                        
                                .header {
                                    background: #cc0000;
                                    color: white;
                                    padding: 20px;
                                    text-align: center;
                                }
                        
                                .header h1 {
                                    font-size: 2em;
                                    margin-bottom: 8px;
                                }
                        
                                .header p {
                                    font-size: 1.1em;
                                    opacity: 0.9;
                                }
                        
                                .main-content {
                                    padding: 20px;
                                }
                        
                                .city-selector {
                                    background: #f8f9fa;
                                    border-radius: 10px;
                                    padding: 20px;
                                    margin-bottom: 20px;
                                    text-align: center;
                                    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
                                }
                        
                                .city-selector h2 {
                                    margin-bottom: 15px;
                                    color: #2c3e50;
                                    font-size: 1.5em;
                                }
                        
                                .city-input {
                                    width: 100%;
                                    max-width: 300px;
                                    padding: 12px;
                                    font-size: 1em;
                                    border: 2px solid #ddd;
                                    border-radius: 8px;
                                    text-align: center;
                                    transition: border-color 0.3s ease;
                                }
                        
                                .city-input:focus {
                                    outline: none;
                                    border-color: #4CAF50;
                                }
                        
                                .audio-controls {
                                    display: flex;
                                    align-items: center;
                                    gap: 10px;
                                    margin: 15px 0;
                                    justify-content: center;
                                }
                        
                                .audio-controls label {
                                    font-size: 1em;
                                    color: #2c3e50;
                                }
                        
                                .audio-controls input[type="range"] {
                                    width: 100px;
                                }
                        
                                .audio-controls button {
                                    background: #4CAF50;
                                    color: white;
                                    border: none;
                                    padding: 8px 16px;
                                    border-radius: 8px;
                                    cursor: pointer;
                                    transition: background 0.3s ease;
                                }
                        
                                .audio-controls button:hover {
                                    background: #45a049;
                                }
                        
                                .status-section {
                                    display: grid;
                                    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
                                    gap: 15px;
                                    margin-bottom: 20px;
                                }
                        
                                .status-card {
                                    background: white;
                                    border-radius: 10px;
                                    padding: 20px;
                                    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
                                    border-left: 4px solid #ddd;
                                    transition: transform 0.3s ease;
                                }
                        
                                .status-card.safe {
                                    border-left-color: #4CAF50;
                                }
                        
                                .status-card.warning {
                                    border-left-color: #ff9800;
                                    animation: pulse 2s infinite;
                                }
                        
                                .status-card.danger {
                                    border-left-color: #f44336;
                                    animation: pulse 1s infinite;
                                }
                        
                                @keyframes pulse {
                                    0% { box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08); }
                                    50% { box-shadow: 0 6px 15px rgba(244, 67, 54, 0.3); }
                                    100% { box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08); }
                                }
                        
                                .status-title {
                                    font-size: 1.2em;
                                    font-weight: bold;
                                    margin-bottom: 8px;
                                    display: flex;
                                    align-items: center;
                                    gap: 8px;
                                }
                        
                                .status-icon {
                                    font-size: 1.3em;
                                }
                        
                                .status-time {
                                    color: #666;
                                    font-size: 0.9em;
                                    margin-bottom: 8px;
                                }
                        
                                .status-description {
                                    color: #555;
                                    line-height: 1.4;
                                }
                        
                                .history-section {
                                    background: white;
                                    border-radius: 10px;
                                    padding: 20px;
                                    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
                                }
                        
                                .history-header {
                                    display: flex;
                                    justify-content: space-between;
                                    align-items: center;
                                    margin-bottom: 15px;
                                    padding-bottom: 10px;
                                    border-bottom: 2px solid #eee;
                                }
                        
                                .history-item {
                                    padding: 12px;
                                    border-right: 3px solid #ddd;
                                    margin-bottom: 10px;
                                    background: #f9f9f9;
                                    border-radius: 8px;
                                    transition: transform 0.3s ease;
                                }
                        
                                .history-item:hover {
                                    transform: translateX(-3px);
                                }
                        
                                .history-item.early-warning {
                                    border-right-color: #ff9800;
                                }
                        
                                .history-item.shelter {
                                    border-right-color: #f44336;
                                }
                        
                                .history-item.all-clear {
                                    border-right-color: #4CAF50;
                                }
                        
                                .history-time {
                                    font-weight: bold;
                                    color: #2c3e50;
                                    margin-bottom: 5px;
                                }
                        
                                .history-type {
                                    font-size: 0.9em;
                                    color: #666;
                                    margin-bottom: 5px;
                                }
                        
                                .history-description {
                                    color: #555;
                                }
                        
                                .refresh-btn {
                                    background: #2196F3;
                                    color: white;
                                    border: none;
                                    padding: 8px 16px;
                                    border-radius: 8px;
                                    cursor: pointer;
                                    transition: background 0.3s ease;
                                }
                        
                                .refresh-btn:hover {
                                    background: #1976D2;
                                }
                        
                                .no-city {
                                    text-align: center;
                                    color: #666;
                                    font-style: italic;
                                    padding: 15px;
                                }
                        
                                .connection-status {
                                    position: fixed;
                                    top: 15px;
                                    left: 15px;
                                    background: #4CAF50;
                                    color: white;
                                    padding: 6px 12px;
                                    border-radius: 15px;
                                    font-size: 0.9em;
                                    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
                                    z-index: 1000;
                                }
                        
                                .connection-status.disconnected {
                                    background: #f44336;
                                }
                        
                                @media (max-width: 768px) {
                                    .main-content {
                                        padding: 15px;
                                    }
                                    .header h1 {
                                        font-size: 1.5em;
                                    }
                                    .status-section {
                                        grid-template-columns: 1fr;
                                    }
                                }
                            </style>
                        </head>
                        <body>
                            <div class="connection-status" id="connectionStatus">🔗 מחובר לשרת</div>
                        
                            <div class="container">
                                <div class="header">
                                    <h1>🚨 מערכת התראות חכמה</h1>
                                    <p>מעקב אחר התראות פיקוד העורף בזמן אמת</p>
                                </div>
                        
                                <div class="main-content">
                                    <div class="city-selector">
                                        <h2>בחר את העיר שלך</h2>
                                        <select id="cityInput" class="city-input">
                                            <option value="">בחר עיר</option>
                                            <option value="בני ברק">בני ברק</option>
                                            <option value="תל אביב">תל אביב</option>
                                            <option value="ירושלים">ירושלים</option>
                                            <option value="חיפה">חיפה</option>
                                            <option value="אשדוד">אשדוד</option>
                                            <option value="אשקלון">אשקלון</option>
                                            <option value="באר שבע">באר שבע</option>
                                            <option value="נתניה">נתניה</option>
                                            <option value="חולון">חולון</option>
                                            <option value="רמת גן">רמת גן</option>
                                        </select>
                                        <div class="audio-controls">
                                            <label for="volume">עוצמת קול:</label>
                                            <input type="range" id="volume" min="0" max="1" step="0.1" value="0.5">
                                            <button id="mute">השתק</button>
                                        </div>
                                    </div>
                        
                                    <div id="alertSystem" style="display: none;">
                                        <div class="status-section">
                                            <div class="status-card safe" id="currentStatus">
                                                <div class="status-title">
                                                    <span class="status-icon">✅</span>
                                                    מצב רגיל
                                                </div>
                                                <div class="status-time" id="statusTime">עדכון אחרון: עכשיו</div>
                                                <div class="status-description">אין התראות פעילות באזור שלך</div>
                                            </div>
                        
                                            <div class="status-card">
                                                <div class="status-title">
                                                    <span class="status-icon">📍</span>
                                                    עיר רשומה
                                                </div>
                                                <div class="status-description" id="registeredCity">לא נבחרה עיר</div>
                                            </div>
                        
                                            <div class="status-card">
                                                <div class="status-title">
                                                    <span class="status-icon">⏱️</span>
                                                    זמן לממ"ד
                                                </div>
                                                <div class="status-description" id="shelterTime">מידע יופיע בעת התראה</div>
                                            </div>
                                        </div>
                        
                                        <div class="history-section">
                                            <div class="history-header">
                                                <h2>🕘 היסטוריית התראות</h2>
                                                <button class="refresh-btn" onclick="refreshHistory()">רענן</button>
                                            </div>
                                            <div id="alertHistory">
                                                <div class="no-city">בחר עיר להצגת היסטוריה</div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        
                            <!-- Audio Elements -->
                            <audio id="pre-alert-sound" src="https://cdn.pixabay.com/download/audio/2022/03/10/audio_8d9b4e6f3c.mp3"></audio>
                            <audio id="enter-sound" src="https://cdn.pixabay.com/download/audio/2022/03/10/audio_7b1a4e3f2c.mp3"></audio>
                            <audio id="exit-sound" src="https://cdn.pixabay.com/download/audio/2022/03/10/audio_3f2a1e6b9c.mp3"></audio>
                        
                            <script>
                                let currentCity = '';
                                let isConnected = true;
                                let lastAlertId = null;
                                let alertHistory = [];
                                let isMuted = localStorage.getItem('isMuted') === 'true';
                                const volumeControl = document.getElementById('volume');
                                const muteButton = document.getElementById('mute');
                                const preAlertSound = document.getElementById('pre-alert-sound');
                                const enterSound = document.getElementById('enter-sound');
                                const exitSound = document.getElementById('exit-sound');
                        
                                // City data with shelter times
                                const cityData = {
                                    'בני ברק': { zone: 'דן', shelterTime: 90 },
                                    'תל אביב': { zone: 'דן', shelterTime: 90 },
                                    'ירושלים': { zone: 'ירושלים', shelterTime: 90 },
                                    'חיפה': { zone: 'חיפה והכרמל', shelterTime: 60 },
                                    'אשדוד': { zone: 'אשקלון והסביבה', shelterTime: 30 },
                                    'אשקלון': { zone: 'אשקלון והסביבה', shelterTime: 30 },
                                    'באר שבע': { zone: 'באר שבע והנגב', shelterTime: 60 },
                                    'נתניה': { zone: 'שרון', shelterTime: 45 },
                                    'חולון': { zone: 'דן', shelterTime: 90 },
                                    'רמת גן': { zone: 'דן', shelterTime: 90 }
                                };
                        
                                // Initialize audio settings
                                const savedVolume = localStorage.getItem('volume') || 0.5;
                                preAlertSound.volume = savedVolume;
                                enterSound.volume = savedVolume;
                                exitSound.volume = savedVolume;
                                volumeControl.value = savedVolume;
                                muteButton.textContent = isMuted ? 'בטל השתקה' : 'השתק';
                                if (isMuted) {
                                    preAlertSound.muted = true;
                                    enterSound.muted = true;
                                    exitSound.muted = true;
                                }
                        
                                // Volume control
                                volumeControl.addEventListener('input', (e) => {
                                    const volume = e.target.value;
                                    preAlertSound.volume = volume;
                                    enterSound.volume = volume;
                                    exitSound.volume = volume;
                                    localStorage.setItem('volume', volume);
                                });
                        
                                // Mute toggle
                                muteButton.addEventListener('click', () => {
                                    isMuted = !isMuted;
                                    preAlertSound.muted = isMuted;
                                    enterSound.muted = isMuted;
                                    exitSound.muted = isMuted;
                                    muteButton.textContent = isMuted ? 'בטל השתקה' : 'השתק';
                                    localStorage.setItem('isMuted', isMuted);
                                });
                        
                                function registerCity() {
                                    const cityInput = document.getElementById('cityInput');
                                    const city = cityInput.value;
                                    if (!city) {
                                        showNotification('אנא בחר עיר', 'danger');
                                        return;
                                    }
                                    currentCity = city;
                                    document.getElementById('registeredCity').textContent = city;
                                    document.getElementById('alertSystem').style.display = 'block';
                                    fetchHistory(city);
                                    fetchRealTimeAlerts();
                                    showNotification(`נרשמת בהצלחה להתראות עבור ${city}`, 'success');
                                }
                        
                                function categorizeAlert(alert) {
                                    const message = (alert.message || '').toLowerCase();
                                    if (message.includes('התראה מוקדמת') || message.includes('הכן מרחב מוגן')) {
                                        return { type: 'early-warning', title: 'התראה מוקדמת', icon: '⚠️', description: 'זוהה שיגור לכיוון האזור - היו מוכנים', class: 'warning' };
                                    } else if (message.includes('כניסה למרחב מוגן') || message.includes('אזעקה')) {
                                        return { type: 'shelter', title: 'היכנסו לממ"ד מיידית!', icon: '🚨', description: 'אזעקה באזור - היכנסו לחדר המוגן עכשיו!', class: 'danger' };
                                    } else if (message.includes('שחרור') || message.includes('חזרה לשגרה')) {
                                        return { type: 'all-clear', title: 'יציאה מהממ"ד', icon: '🟢', description: 'הסכנה חלפה - ניתן לצאת מהחדר המוגן', class: 'safe' };
                                    }
                                    return { type: 'safe', title: 'מצב רגיל', icon: '✅', description: 'אין התראות פעילות באזור שלך', class: 'safe' };
                                }
                        
                                async function fetchRealTimeAlerts() {
                                    try {
                                        const response = await fetch('https://www.oref.org.il/WarningMessages/alerts.json');
                                        const data = await response.json();
                                        const statusCard = document.getElementById('currentStatus');
                                        const statusIcon = statusCard.querySelector('.status-icon');
                                        const statusTitle = statusCard.querySelector('.status-title');
                                        const statusDescription = statusCard.querySelector('.status-description');
                                        const statusTime = document.getElementById('statusTime');
                                        const shelterTimeElement = document.getElementById('shelterTime');
                        
                                        if (data.data && currentCity && data.data.some(alert => alert.cities.includes(currentCity))) {
                                            const relevantAlert = data.data.find(alert => alert.cities.includes(currentCity));
                                            if (relevantAlert.id !== lastAlertId) {
                                                lastAlertId = relevantAlert.id;
                                                const alert = categorizeAlert(relevantAlert);
                                                updateAlertStatus(alert);
                                                addToHistory(alert);
                                                if (!isMuted) {
                                                    if (alert.type === 'early-warning') {
                                                        preAlertSound.play().catch(e => console.error('Error playing pre-alert sound:', e));
                                                    } else if (alert.type === 'shelter') {
                                                        enterSound.play().catch(e => console.error('Error playing enter sound:', e));
                                                    } else if (alert.type === 'all-clear') {
                                                        exitSound.play().catch(e => console.error('Error playing exit sound:', e));
                                                    }
                                                }
                                                showNotification(`${alert.icon} ${alert.title} ב${currentCity}`, alert.class);
                                                document.title = alert.type === 'shelter' ? `🚨 אזעקה - ${currentCity}` : 'מערכת התראות חכמה';
                                            }
                                        } else {
                                            const safeStatus = { type: 'safe', title: 'מצב רגיל', icon: '✅', description: 'אין התראות פעילות באזור שלך', class: 'safe' };
                                            updateAlertStatus(safeStatus);
                                        }
                                        updateConnectionStatus(true);
                                    } catch (error) {
                                        console.error('Error fetching real-time alerts:', error);
                                        updateConnectionStatus(false);
                                    }
                                    updateStatusTime();
                                }
                        
                                async function fetchHistory(city) {
                                    try {
                                        const response = await fetch(`https://alerts-history.oref.org.il//Shared/Ajax/GetAlarmsHistory.aspx?lang=he&mode=1&city_0=${encodeURIComponent(city)}`);
                                        const data = await response.json();
                                        alertHistory = data.map(alert => {
                                            const categorized = categorizeAlert(alert);
                                            return {
                                                time: alert.time,
                                                type: categorized.type,
                                                title: categorized.title,
                                                description: categorized.description,
                                                city: currentCity
                                            };
                                        }).slice(0, 20);
                                        renderHistory();
                                    } catch (error) {
                                        console.error('Error fetching history:', error);
                                        showNotification('שגיאה בטעינת היסטוריה', 'danger');
                                    }
                                }
                        
                                function updateAlertStatus(alert) {
                                    const statusCard = document.getElementById('currentStatus');
                                    const statusIcon = statusCard.querySelector('.status-icon');
                                    const statusTitle = statusCard.querySelector('.status-title');
                                    const statusDescription = statusCard.querySelector('.status-description');
                                    const shelterTimeElement = document.getElementById('shelterTime');
                        
                                    statusCard.className = `status-card ${alert.class}`;
                                    statusIcon.textContent = alert.icon;
                                    statusTitle.childNodes[1].textContent = alert.title;
                                    statusDescription.textContent = alert.description;
                        
                                    if (alert.type === 'shelter' || alert.type === 'early-warning') {
                                        const cityInfo = cityData[currentCity];
                                        shelterTimeElement.textContent = cityInfo ? `${cityInfo.shelterTime} שניות` : 'מידע יופיע בעת התראה';
                                    } else {
                                        shelterTimeElement.textContent = 'מידע יופיע בעת התראה';
                                    }
                                }
                        
                                function addToHistory(alert) {
                                    const now = new Date();
                                    alertHistory.unshift({
                                        time: now.toLocaleString('he-IL'),
                                        type: alert.type,
                                        title: alert.title,
                                        description: alert.description,
                                        city: currentCity
                                    });
                                    if (alertHistory.length > 20) {
                                        alertHistory = alertHistory.slice(0, 20);
                                    }
                                    renderHistory();
                                }
                        
                                function renderHistory() {
                                    const historyContainer = document.getElementById('alertHistory');
                                    if (alertHistory.length === 0) {
                                        historyContainer.innerHTML = '<div class="no-city">אין היסטוריית התראות עדיין</div>';
                                        return;
                                    }
                                    const historyHTML = alertHistory.map(item => `
                                        <div class="history-item ${item.type}">
                                            <div class="history-time">${item.time}</div>
                                            <div class="history-type">${getAlertTypeText(item.type)} - ${item.city}</div>
                                            <div class="history-description">${item.description}</div>
                                        </div>
                                    `).join('');
                                    historyContainer.innerHTML = historyHTML;
                                }
                        
                                function getAlertTypeText(type) {
                                    const types = {
                                        'safe': 'מצב רגיל',
                                        'early-warning': 'התראה מוקדמת',
                                        'shelter': 'כניסה לממ"ד',
                                        'all-clear': 'יציאה מממ"ד'
                                    };
                                    return types[type] || type;
                                }
                        
                                function refreshHistory() {
                                    showNotification('מרענן היסטוריה...', 'info');
                                    fetchHistory(currentCity);
                                }
                        
                                function updateConnectionStatus(connected) {
                                    const statusElement = document.getElementById('connectionStatus');
                                    isConnected = connected;
                                    statusElement.textContent = connected ? '🔗 מחובר לשרת' : '❌ לא מחובר';
                                    statusElement.classList.toggle('disconnected', !connected);
                                }
                        
                                function updateStatusTime() {
                                    const timeElement = document.getElementById('statusTime');
                                    const now = new Date();
                                    timeElement.textContent = `עדכון אחרון: ${now.toLocaleTimeString('he-IL')}`;
                                }
                        
                                function showNotification(message, type) {
                                    const notification = document.createElement('div');
                                    notification.style.cssText = `
                                        position: fixed;
                                        top: 80px;
                                        right: 20px;
                                        background: ${type === 'danger' ? '#f44336' : type === 'warning' ? '#ff9800' : type === 'success' ? '#4CAF50' : '#2196F3'};
                                        color: white;
                                        padding: 12px 20px;
                                        border-radius: 8px;
                                        box-shadow: 0 4px 10px rgba(0,0,0,0.3);
                                        z-index: 1001;
                                        max-width: 300px;
                                        font-weight: bold;
                                        animation: slideIn 0.3s ease-out;
                                    `;
                                    notification.textContent = message;
                                    document.body.appendChild(notification);
                                    setTimeout(() => {
                                        notification.style.animation = 'slideOut 0.3s ease-in';
                                        setTimeout(() => document.body.removeChild(notification), 300);
                                    }, 5000);
                                }
                        
                                // Animations for notifications
                                const style = document.createElement('style');
                                style.textContent = `
                                    @keyframes slideIn {
                                        from { transform: translateX(100%); opacity: 0; }
                                        to { transform: translateX(0); opacity: 1; }
                                    }
                                    @keyframes slideOut {
                                        from { transform: translateX(0); opacity: 1; }
                                        to { transform: translateX(100%); opacity: 0; }
                                    }
                                `;
                                document.head.appendChild(style);
                        
                                // Event listeners
                                document.getElementById('cityInput').addEventListener('change', registerCity);
                                setInterval(fetchRealTimeAlerts, 10000);
                                console.log('מערכת התראות חכמה פועלת');
                            </script>
                        </body>
                        </html>
                        

                        https://www.av-digital.co.il/

                        תגובה 1 תגובה אחרונה
                        0
                        • אבי 203א מנותק
                          אבי 203א מנותק
                          אבי 203
                          כתב נערך לאחרונה על ידי אבי 203
                          #12

                          הכנתי משהו לפום ריהטא לא בדקתי מספיק
                          https://ph-7php.onrender.com/

                          https://www.av-digital.co.il/

                          M pcinfogmachP אבי 203א י.פל.י 4 תגובות תגובה אחרונה
                          7
                          • M מנותק
                            M מנותק
                            mekev
                            השיב לאבי 203 נערך לאחרונה על ידי
                            #13

                            @אבי-203
                            מדהים!

                            נקודה למחשבה ממבטי האישי:
                            אולי תעשה את הכותרת בצבע בהיר
                            ורק בעת התראה תשנה אותה לאדומה

                            תגובה 1 תגובה אחרונה
                            0
                            • pcinfogmachP מנותק
                              pcinfogmachP מנותק
                              pcinfogmach
                              השיב לאבי 203 נערך לאחרונה על ידי
                              #14

                              @אבי-203
                              מדהים! יש אפשרות לחלוקה לפי איזורים?
                              למשל ירושלים צפון דרום וכו'?

                              גמ"ח מידע מחשבים ואופיס

                              אבי 203א תגובה 1 תגובה אחרונה
                              0
                              • אבי 203א מנותק
                                אבי 203א מנותק
                                אבי 203
                                השיב לאבי 203 נערך לאחרונה על ידי אבי 203
                                #15

                                @אבי-203 כתב בהתראה על יציאה ממ"ד & שיפור אתר פיקוד העורף:

                                הכנתי משהו לפום ריהטא לא בדקתי מספיק
                                https://ph-7php.onrender.com/

                                אם היה לי זמן וכוח, אני חושב שהדבר החשוב הבא זה רישום למערכת טלפונית, שתשלח צינתוק ממספר X בהתראה מראש, ממספר Y בכניסה לממד וממספר Y ביציאה מהממד. כמובן בהתאם לעיר שנרשמה.
                                או גם סמס.

                                https://www.av-digital.co.il/

                                A תגובה 1 תגובה אחרונה
                                4
                                • אבי 203א מנותק
                                  אבי 203א מנותק
                                  אבי 203
                                  השיב לpcinfogmach נערך לאחרונה על ידי
                                  #16

                                  @pcinfogmach למה זה חשוב? בשביל חיפוש מהיר ברשימה?

                                  https://www.av-digital.co.il/

                                  צדיק תמיםצ pcinfogmachP 2 תגובות תגובה אחרונה
                                  -1
                                  • צדיק תמיםצ מנותק
                                    צדיק תמיםצ מנותק
                                    צדיק תמים
                                    השיב לאבי 203 נערך לאחרונה על ידי
                                    #17
                                    פוסט זה נמחק!
                                    תגובה 1 תגובה אחרונה
                                    -1
                                    • י.פל.י מנותק
                                      י.פל.י מנותק
                                      י.פל.
                                      השיב לאבי 203 נערך לאחרונה על ידי
                                      #18

                                      @אבי-203 כתב בהתראה על יציאה ממ"ד & שיפור אתר פיקוד העורף:

                                      הכנתי משהו לפום ריהטא לא בדקתי מספיק
                                      https://ph-7php.onrender.com/

                                      נראה יפהפה!
                                      האם כשהדף אינו פועל הוא שולח התראות?
                                      ואם לא, האם אתה מתכוון להוסיף?
                                      ואם לא, האם תוכל לשחרר את הקוד [חבל שאעבוד מחדש, כשעשית כבר את העבודה העיקרית...]

                                      תגובה 1 תגובה אחרונה
                                      0
                                      • pcinfogmachP מנותק
                                        pcinfogmachP מנותק
                                        pcinfogmach
                                        השיב לאבי 203 נערך לאחרונה על ידי
                                        #19

                                        @אבי-203 כתב בהתראה על יציאה ממ"ד & שיפור אתר פיקוד העורף:

                                        @pcinfogmach למה זה חשוב? בשביל חיפוש מהיר ברשימה?

                                        כי כשיש התראה בצפון ירושלים זה לא בהכרח בדרום ירושלים - בקיצער זה בעצם כמו שני ערים שונות. ככה הם גם עשו באתר של פיקוד העורף. תודה.

                                        גמ"ח מידע מחשבים ואופיס

                                        O תגובה 1 תגובה אחרונה
                                        2
                                        • ש מנותק
                                          ש מנותק
                                          ש.ב.ח.
                                          כתב נערך לאחרונה על ידי
                                          #20

                                          @אבי-203 אשמח לעבור על קוד המקור, אם יורשה לי.

                                          תגובה 1 תגובה אחרונה
                                          0

                                          • 1
                                          • 2
                                          בא תתחבר לדף היומי!
                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • דף הבית
                                          • קטגוריות
                                          • פוסטים אחרונים
                                          • משתמשים
                                          • חיפוש
                                          • חוקי הפורום