# abraham-ny/wmpignore architecture

> Architecture diagram of the GitHub repository abraham-ny/wmpignore, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/abraham-ny/wmpignore
- Repository: https://github.com/abraham-ny/wmpignore

## Overview

WMP Ignore List Manager is a Windows tray application for excluding selected folders—including folders nested under library roots—from Windows Media Player’s library. The user opens the GUI from the tray, reviews or changes the ignored-folder list, and a background service periodically checks library media paths and removes matches. The sampled code shows the list persisted as IgnoreList.txt beside the application. The README documents the tray and GUI capabilities; the graph reflects sampled runtime wiring.

Main entry points: [`WMPignoreList/IgnoreListService.cs`](https://github.com/abraham-ny/wmpignore/blob/main/WMPignoreList/IgnoreListService.cs) (Ignore-list service), [`WMPignoreList/Program.cs`](https://github.com/abraham-ny/wmpignore/blob/main/WMPignoreList/Program.cs) (Tray entry point), [`WMPignoreList/IgnoreGUI.cs`](https://github.com/abraham-ny/wmpignore/blob/main/WMPignoreList/IgnoreGUI.cs) (Folder manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Tray application"]
  node_program["Tray entry point<br/>[Program.cs]"]
end

subgraph group_management["Ignore-list management"]
  node_gui["Folder manager<br/>[IgnoreGUI.cs]"]
  node_listfile["IgnoreList.txt"]
end

subgraph group_filtering["Library filtering"]
  node_service["Ignore-list service"]
end

node_user(("User"))
node_wmp["Windows Media Player"]

node_user -->|"uses tray"| node_program
node_program -->|"opens manager"| node_gui
node_program -->|"starts monitoring"| node_service
node_gui -->|"loads and edits"| node_service
node_service -->|"reads and writes"| node_listfile
node_service -->|"scans and removes"| node_wmp

click node_program "https://github.com/abraham-ny/wmpignore/blob/main/WMPignoreList/Program.cs"
click node_gui "https://github.com/abraham-ny/wmpignore/blob/main/WMPignoreList/IgnoreGUI.cs"
click node_service "https://github.com/abraham-ny/wmpignore/blob/main/WMPignoreList/IgnoreListService.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_program,node_user toneBlue
class node_gui,node_listfile toneAmber
class node_service toneMint
class node_wmp toneIndigo
```

## Components

### Tray application

- [Tray entry point](https://github.com/abraham-ny/wmpignore/blob/main/WMPignoreList/Program.cs): `WMPignoreList/Program.cs`

### Ignore-list management

- [Folder manager](https://github.com/abraham-ny/wmpignore/blob/main/WMPignoreList/IgnoreGUI.cs): `WMPignoreList/IgnoreGUI.cs`
- **IgnoreList.txt**

### Library filtering

- [Ignore-list service](https://github.com/abraham-ny/wmpignore/blob/main/WMPignoreList/IgnoreListService.cs): `WMPignoreList/IgnoreListService.cs`

### Other components

- **User**
- **Windows Media Player**

## Connections

- User → Tray entry point: uses tray
- Tray entry point → Folder manager: opens manager
- Tray entry point → Ignore-list service: starts monitoring
- Folder manager → Ignore-list service: loads and edits
- Ignore-list service → IgnoreList.txt: reads and writes
- Ignore-list service → Windows Media Player: scans and removes
