Installable skillMIT

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.

BY ECNU-ICALKUPDATED Oct 28, 2026
INTENDED FOR✳Claude Code>_Codex↗Cursor◎ChatGPTInstall in a listed agent.

instructions.md

---
id: "7c467274-57b5-4170-9c4d-b7140d95076e"
name: implement-session-based-image-viewer-timer-c17dde4dbfb3
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
COMPATIBILITY & REFERENCES

Platform guidance

Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.