# peresew3734/playceviri-yama-cikartici architecture

> Architecture diagram of the GitHub repository peresew3734/playceviri-yama-cikartici, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/peresew3734/playceviri-yama-cikartici
- Repository: https://github.com/peresew3734/playceviri-yama-cikartici

## Overview

Yama Çıkarıcı is a small desktop utility for extracting patch files from a selected game installer folder. The user selects the installer, confirms or edits the game-folder name, and starts extraction. The app validates the selection, processes Setup-*.dat files (excluding Setup-0.dat), decrypts each into ZIP data, and writes the extracted files under an application-local output directory. The single source file combines the UI, orchestration, decryption, and archive handling; no separate subsystems are evident.

Main entry points: [`YamaCikarici/yama_cikarici.py`](https://github.com/peresew3734/playceviri-yama-cikartici/blob/main/YamaCikarici/yama_cikarici.py) (ZIP extraction)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Desktop interface"]
  node_ui["Tkinter interface<br/>[yama_cikarici.py]"]
  node_coordinator["Validation and worker<br/>[yama_cikarici.py]"]
end

subgraph group_extraction["Patch extraction"]
  node_inputs["Installer data files"]
  node_decrypt["DAT decryption<br/>[yama_cikarici.py]"]
  node_unpack["ZIP extraction<br/>[yama_cikarici.py]"]
  node_output["Extracted game files"]
end

node_user(("User"))

node_user -->|"selects installer"| node_ui
node_ui -->|"starts extraction"| node_coordinator
node_inputs -->|"reads Setup files"| node_unpack
node_unpack -->|"calls decryption"| node_decrypt
node_decrypt -->|"returns ZIP bytes"| node_unpack
node_unpack -->|"writes extracted files"| node_output
node_coordinator -->|"runs extraction"| node_unpack

click node_ui "https://github.com/peresew3734/playceviri-yama-cikartici/blob/main/YamaCikarici/yama_cikarici.py"
click node_coordinator "https://github.com/peresew3734/playceviri-yama-cikartici/blob/main/YamaCikarici/yama_cikarici.py"
click node_decrypt "https://github.com/peresew3734/playceviri-yama-cikartici/blob/main/YamaCikarici/yama_cikarici.py"
click node_unpack "https://github.com/peresew3734/playceviri-yama-cikartici/blob/main/YamaCikarici/yama_cikarici.py"

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_ui,node_coordinator,node_user toneBlue
class node_inputs,node_decrypt,node_unpack,node_output toneAmber
```

## Components

### Desktop interface

- [Tkinter interface](https://github.com/peresew3734/playceviri-yama-cikartici/blob/main/YamaCikarici/yama_cikarici.py): `YamaCikarici/yama_cikarici.py`
- [Validation and worker](https://github.com/peresew3734/playceviri-yama-cikartici/blob/main/YamaCikarici/yama_cikarici.py): `YamaCikarici/yama_cikarici.py`

### Patch extraction

- **Installer data files**
- [DAT decryption](https://github.com/peresew3734/playceviri-yama-cikartici/blob/main/YamaCikarici/yama_cikarici.py): `YamaCikarici/yama_cikarici.py`
- [ZIP extraction](https://github.com/peresew3734/playceviri-yama-cikartici/blob/main/YamaCikarici/yama_cikarici.py): `YamaCikarici/yama_cikarici.py`
- **Extracted game files**

### Other components

- **User**

## Connections

- User → Tkinter interface: selects installer (evidence: `YamaCikarici/yama_cikarici.py`)
- Tkinter interface → Validation and worker: starts extraction (evidence: `YamaCikarici/yama_cikarici.py`)
- Installer data files → ZIP extraction: reads Setup files (evidence: `YamaCikarici/yama_cikarici.py`)
- ZIP extraction → DAT decryption: calls decryption (evidence: `YamaCikarici/yama_cikarici.py`)
- DAT decryption → ZIP extraction: returns ZIP bytes (evidence: `YamaCikarici/yama_cikarici.py`)
- ZIP extraction → Extracted game files: writes extracted files (evidence: `YamaCikarici/yama_cikarici.py`)
- Validation and worker → ZIP extraction: runs extraction (evidence: `YamaCikarici/yama_cikarici.py`)
