-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmake_screenshots.py
More file actions
94 lines (84 loc) · 3.25 KB
/
Copy pathmake_screenshots.py
File metadata and controls
94 lines (84 loc) · 3.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
"""
Offline screenshot generator — runs with SDL_VIDEODRIVER=offscreen.
Saves PNG snapshots of clock screen and settings screen (General + WiFi tabs).
"""
import os, sys
os.environ["SDL_VIDEODRIVER"] = "offscreen"
os.environ["SDL_AUDIODRIVER"] = "dummy"
import pygame
pygame.init()
SCREEN_W, SCREEN_H = 1024, 600
screen = pygame.display.set_mode((SCREEN_W, SCREEN_H))
from config_manager import ConfigManager
from weather_service import WeatherService
from wifi_service import WifiService
from news_service import NewsService
from clock_screen import ClockScreen
from settings_screen import SettingsScreen
config = ConfigManager()
weather = WeatherService(config)
wifi = WifiService()
news = NewsService()
# ── Inject fake weather data so screenshots look complete ──────────────────
import time, threading
from datetime import datetime as dt
weather.current = {
"temp": 8,
"feels_like": 5,
"humidity": 72,
"wind_speed": 4.2,
"description": "Partly cloudy",
"icon": "02d",
"city": "Oslo",
"country": "NO",
}
weather.forecast = [
{"day": d, "icon": ic, "high": h, "low": l, "pop": p}
for d, ic, h, l, p in [
("Mon", "01d", 10, 3, 5),
("Tue", "02d", 8, 2, 20),
("Wed", "10d", 6, 1, 75),
("Thu", "09d", 5, 0, 80),
("Fri", "01d", 11, 4, 10),
]
]
weather.sunrise = dt.now().replace(hour=6, minute=18, second=0)
weather.sunset = dt.now().replace(hour=20, minute=42, second=0)
weather.last_update = time.time()
# Inject fake news headlines
news._headlines = [
"Global leaders meet at climate summit in Geneva",
"Tech giant unveils next-generation AI assistant",
"Scientists discover new species in Amazon rainforest",
"Markets rally as inflation fears ease",
"SpaceX launches record-breaking satellite cluster",
]
# ── Clock screen ───────────────────────────────────────────────────────────
cs = ClockScreen(screen, config, weather, news)
cs._colon_visible = True
cs.update()
cs.draw()
pygame.image.save(screen, "/tmp/screenshot_clock.png")
print("Saved screenshot_clock.png")
# ── Settings — General tab ─────────────────────────────────────────────────
ss = SettingsScreen(screen, config, wifi, weather)
ss.on_enter()
ss.tab = "general"
ss.draw()
pygame.image.save(screen, "/tmp/screenshot_settings_general.png")
print("Saved screenshot_settings_general.png")
# ── Settings — WiFi tab ────────────────────────────────────────────────────
ss.tab = "wifi"
# Inject fake networks
ss.networks = [
{"ssid": "HomeNetwork", "signal": -45, "secured": True},
{"ssid": "Neighbor_2.4G", "signal": -68, "secured": True},
{"ssid": "GuestNet", "signal": -72, "secured": False},
{"ssid": "OpenCafe", "signal": -80, "secured": False},
]
wifi.connected_ssid = "HomeNetwork"
ss.draw()
pygame.image.save(screen, "/tmp/screenshot_settings_wifi.png")
print("Saved screenshot_settings_wifi.png")
pygame.quit()
print("Done.")