Загрузка данных


import tkinter as tk
import urllib.request
import io
import sys
import threading
import winsound
import ctypes
import time
from PIL import Image, ImageTk

# Ссылка на жуткое лицо оригинальной MrsMajor
IMAGE_URL = "https://ytimg.com"

def set_max_volume():
    """Выкручивает громкость Windows на 100%"""
    try:
        WM_APPCOMMAND = 0x0319
        APPCOMMAND_VOLUME_UP = 0xA0000
        hwnd = ctypes.windll.user32.GetForegroundWindow()
        for _ in range(50):
            ctypes.windll.user32.SendMessageW(hwnd, WM_APPCOMMAND, 0, APPCOMMAND_VOLUME_UP)
    except Exception:
        pass

def play_scary_sound():
    """Финальная невыносимая сирена (запускается после таймера)"""
    while True:
        winsound.Beep(3500, 150)
        winsound.Beep(1200, 150)
        winsound.Beep(4500, 100)

def flash_screen():
    """Бешеное мерцание на финальной стадии"""
    try:
        current_bg = label.cget("bg")
        if current_bg == "black":
            label.config(image="", bg="red", text="SYSTEM DESTROYED", fg="black", font=("Courier", 60, "bold"))
        else:
            label.config(image=bg_image, bg="black")
    except Exception:
        pass
    root.after(100, flash_screen)

def start_countdown(count):
    """Логика таймера обратного отсчета"""
    if count > 0:
        timer_label.config(text=f"DELETING SYSTEM IN: {count}")
        # Пикаем каждую секунду, нагнетая обстановку
        winsound.Beep(600, 200)
        root.after(1000, start_countdown, count - 1)
    else:
        # ВРЕМЯ ВЫШЛО: Активируем полный кошмар
        timer_label.destroy() # Убираем текст таймера
        set_max_volume()      # Громкость на макс
        
        # Включаем звук сирены в фоне
        sound_thread = threading.Thread(target=play_scary_sound, daemon=True)
        sound_thread.start()
        
        # Запускаем бешеное мерцание
        flash_screen()

def fade_in_face(alpha=0.0):
    """Плавно проявляет лицо Миссис Мажор из темноты"""
    if alpha <= 1.0:
        try:
            # Смешиваем оригинальную картинку с черным фоном для эффекта появления
            black_bg = Image.new("RGB", (screen_width, screen_height), (0, 0, 0))
            blended_img = Image.blend(black_bg, original_img, alpha)
            
            global bg_image
            bg_image = ImageTk.PhotoImage(blended_img)
            label.config(image=bg_image)
            
            # Шаг проявления (чем меньше число, тем плавнее)
            root.after(40, fade_in_face, alpha + 0.05)
        except Exception:
            pass
    else:
        # Как только лицо полностью появилось — запускаем зловещий таймер
        timer_label.place(relx=0.5, rely=0.85, anchor="center")
        start_countdown(10)

def hard_exit(event):
    """Секретный выход по нажатию клавиши Esc"""
    root.destroy()
    sys.exit()

# Создаем окно
root = tk.Tk()
root.title("MrsMajor Final Stage")
root.attributes('-fullscreen', True)
root.attributes('-topmost', True)
root.config(cursor="none") # Прячем мышку

# Выход на ESC (если окна перехватят фокус, просто зажми её на секунду)
root.bind("<Escape>", hard_exit)

screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()

# Текстовый лейбл для таймера (пока скрыт)
timer_label = tk.Label(root, text="", fg="red", bg="black", font=("Courier", 35, "bold"))

try:
    # Загружаем картинку
    with urllib.request.urlopen(IMAGE_URL) as url:
        image_data = url.read()
    
    # Готовим базовое изображение
    original_img = Image.open(io.BytesIO(image_data))
    original_img = original_img.resize((screen_width, screen_height), Image.Resampling.LANCZOS)
    
    # Стартовый черный экран
    label = tk.Label(root, bg="black")
    label.pack(fill="both", expand=True)
    
    # Запускаем плавное проявление через полсекунды после открытия
    root.after(500, fade_in_face)

except Exception:
    # Если нет интернета, сразу выводим красный текст
    label = tk.Label(root, text="MRS MAJOR HAS YOU", fg="red", bg="black", font=("Courier", 50, "bold"))
    label.pack(fill="both", expand=True)
    start_countdown(10)

root.mainloop()