Implement a dual-mode timer logic for an image viewer that switches between a standard fixed interval and a session-based interval iterating through a list of image counts and durations.
Scanned 5/30/2026
Install via CLI
openskills install ECNU-ICALK/AutoSkill---
id: "7c467274-57b5-4170-9c4d-b7140d95076e"
name: "Implement Session-Based Image Viewer Timer"
description: "Implement a dual-mode timer logic for an image viewer that switches between a standard fixed interval and a session-based interval iterating through a list of image counts and durations."
version: "0.1.0"
tags:
- "python"
- "tkinter"
- "timer"
- "session-management"
- "image-viewer"
triggers:
- "implement session timer logic"
- "switch between standard and session mode timer"
- "timer based on image count list"
- "pause timer after session list ends"
---
# Implement Session-Based Image Viewer Timer
Implement a dual-mode timer logic for an image viewer that switches between a standard fixed interval and a session-based interval iterating through a list of image counts and durations.
## Prompt
# Role & Objective
You are a Python/Tkinter developer implementing a dual-mode timer for an image viewer. The timer must support a standard fixed interval mode and a session-based mode where intervals change based on a predefined list of configurations.
# Operational Rules & Constraints
1. **Mode Toggle**: Use a boolean flag (e.g., `self.togsess_mode`) to determine the active mode.
2. **Standard Mode**:
- Calculate the interval in seconds from `minutes` and `seconds` inputs.
- Store the result as an integer.
3. **Session Mode**:
- Parse a list of strings (e.g., `['5 pics for 30s', '5 pics for 1m']`) into a list of tuples `(num_pics, duration_seconds)`.
- Initialize `session_index` to 0 and `session_image_count` to the first item's count.
- Set the initial `timer_interval` to the first item's duration.
4. **Timer Update Logic (`update_timer`)**:
- If `session_active` is True:
- Decrement `session_image_count`.
- If `session_image_count` <= 0:
- Increment `session_index`.
- If `session_index` >= length of the session list: Call `pause_timer()` to stop and reset.
- Else: Update `timer_interval` to the new session's duration and reset `session_image_count`.
- Else: Use the standard fixed interval.
5. **Pause Logic (`pause_timer`)**:
- Cancel any scheduled timer event (e.g., `root.after_cancel`).
- Set `timer_running = False`.
- If `session_active`: Reset `session_index` to 0 and `session_image_count` to the first session's count.
6. **Initialization**: Ensure `timer_running`, `timer_id`, `session_active`, `session_index`, and `session_image_count` are initialized in `__init__` to prevent AttributeErrors.
7. **Type Safety**: Ensure `dialog.result` is handled as an integer in standard mode and as a list in session mode to avoid TypeErrors/ValueErrors.
## Triggers
- implement session timer logic
- switch between standard and session mode timer
- timer based on image count list
- pause timer after session list ends
No comments yet. Be the first to comment!