Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΠ. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ Π½ΡΠ»Ρ. 0) Π’Π΅ΡΠΌΠΈΠ½Ρ β’ ΠΠΊΠΊΠ°ΡΠ½Ρ β ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΠΉ FunPay-Π°ΠΊΠΊΠ°ΡΠ½Ρ (ΠΏΠΎ golden_key/ΠΊΡΠΊΠ°ΠΌ) Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ ΠΊ ΠΏΡΠΎΠΊΡΠΈ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΠΌΠΈ. β’ ΠΠ»Π°Π³ΠΈΠ½Ρ β βΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΈβ (ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°), Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ/Π²ΡΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΠ»Π°Π³ΠΈΠ½Ρ ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ Π°ΠΊΠΊΠ°ΡΠ½ΡΡ. β’ ΠΠΎΠ½ΡΠΈΠ³ΠΈ β βΠ°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ/ΠΌΠ΅Π»ΠΎΡΠΈβ (Π°Π²ΡΠΎΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅, Π°Π²ΡΠΎΠΎΡΠ²Π΅ΡΡ ΠΈ Ρ.ΠΏ.), Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅/Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΠΎΠ½ΡΠΈΠ³ (ΠΊΠ°ΠΊ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅), Π½Π΅ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡΡΡ Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ. β’ ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ β ΡΠ΅ΠΆΠΈΠΌ Π±Π΅Π· Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°/ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, Π²ΡΡ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ»Π°ΠΉΠ½ (ΠΊΡΠΎΠΌΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ FunPay). ? 1) ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ 1.1 Desktop (Electron + Vite UI) β’ ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ ΡΠ»Π΅Π²Π°: ΠΠ°ΡΠ±ΠΎΡΠ΄, ΠΠΊΠΊΠ°ΡΠ½ΡΡ, ΠΠΎΡΡ, ΠΠ»Π°Π³ΠΈΠ½Ρ, ΠΠ²ΡΠΎΠ²ΡΠ΄Π°ΡΠ°, ΠΡΠΎΠΊΡΠΈ, Π€ΠΈΠ½Π°Π½ΡΡ, ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ β’ Π‘ΠΏΡΠ°Π²Π°: ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ β’ ΠΠ»Ρ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° Π΄ΠΎΡΡΡΠΏΠ΅Π½ drawer/ΠΏΠ°Π½Π΅Π»Ρ (Π²ΡΠ΅Π·ΠΆΠ°ΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ ΡΠΏΡΠ°Π²Π°) Ρ Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ. 1.2 Backend (FastAPI) β’ ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ HTTP API Π½Π° 127.0.0.1:<ΠΏΠΎΡΡ> (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 8787) β’ Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
Π² ΡΠ°ΠΉΠ»Π°Ρ
(JSON) Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° (storage/data) β’ Π€ΠΎΠ½ΠΎΠ²ΡΠ΅ Π²ΠΎΡΠΊΠ΅ΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ Π°ΠΊΠΊΠ°ΡΠ½Ρ: β’ polling Π·Π°ΠΊΠ°Π·ΠΎΠ²/ΡΠ°ΡΠΎΠ²/ΠΎΡΠ·ΡΠ²ΠΎΠ² β’ Π°Π²ΡΠΎ-ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ β’ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΎΠΊΡΠΈ ΠΈ pinned-IP ? 2) Π Π°Π·Π΄Π΅Π»Ρ UI ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» 2.1 ΠΠ°ΡΠ±ΠΎΡΠ΄ Π¦Π΅Π»Ρ: ΠΊΡΠ°ΡΠΊΠ°Ρ ΡΠ²ΠΎΠ΄ΠΊΠ° ΠΏΠΎ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠ°ΡΡΠΎΡΠΊΠΈ/ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ: β’ ΠΠ±ΡΠΈΠΉ Π±Π°Π»Π°Π½Ρ (ΡΡΠΌΠΌΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°ΠΌ) β’ ΠΠΊΠΊΠ°ΡΠ½ΡΡ: Π²ΡΠ΅Π³ΠΎ / Π°ΠΊΡΠΈΠ²Π½ΡΡ
β’ ΠΡΠΎΠ΄Π°ΠΆΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ: ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ / ΡΡΠΌΠΌΠ° β’ ΠΠΎΡΡ: Π°ΠΊΡΠΈΠ²Π½ΡΡ
Π»ΠΎΡΠΎΠ² ΠΡΠ°ΡΠΈΠΊ: β’ βΠΠ±Π·ΠΎΡ ΠΏΡΠΎΠ΄Π°ΠΆβ Π·Π° 7 Π΄Π½Π΅ΠΉ (Π»ΠΈΠ½ΠΈΡ) Π‘Π²ΠΎΠ΄ΠΊΠ° ΡΠΏΡΠ°Π²Π°: β’ Π²ΡΠ΅Π³ΠΎ Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ² β’ Π°ΠΊΡΠΈΠ²Π½ΡΡ
β’ ΠΎΠ±ΡΠΈΠΉ Π±Π°Π»Π°Π½Ρ β’ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ β’ ΡΡΠΌΠΌΠ° ΠΏΡΠΎΠ΄Π°ΠΆ ? 2.2 ΠΠΊΠΊΠ°ΡΠ½ΡΡ Π¦Π΅Π»Ρ: ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°ΠΌΠΈ ΠΈ ΠΈΡ
ΡΡΠ°ΡΡΡΠΎΠΌ. Π’Π°Π±Π»ΠΈΡΠ° Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ²: β’ ID β’ ΠΠΊΠΊΠ°ΡΠ½Ρ (Π½ΠΈΠΊ/Π°Π²Π°ΡΠ°Ρ) β’ ΠΡΠ·ΡΠ²Ρ (ΠΊΠΎΠ»-Π²ΠΎ) β’ ΠΠ°Π»Π°Π½Ρ β’ ΠΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ (Π±Π΅ΠΉΠ΄ΠΆΠΈ) β’ Π‘ΡΠ°ΡΡΡ (ACTIVE/STOP/ERROR) β’ ΠΠ΅ΠΉΡΡΠ²ΠΈΡ (?) ΠΠ½ΠΎΠΏΠΊΠΈ ΡΠ²Π΅ΡΡ
Ρ: β’ ΠΠΎΠ±Π°Π²ΠΈΡΡ Π°ΠΊΠΊΠ°ΡΠ½Ρ β’ ΠΡΠΎΠ²Π΅ΡΠΈΡΡ β’ ΠΠ°ΠΏΡΡΡΠΈΡΡ Π²ΡΠ΅ ΠΠ°ΠΆΠ½ΠΎΠ΅ (ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ): β’ ΠΠ²ΡΠΎΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ: β’ ΠΏΠ΅Ρ-Π°ΠΊΠΊΠ°ΡΠ½Ρ (Π² ΡΡΡΠΎΠΊΠ΅ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°) β’ Π΄Π»Ρ Π²ΡΠ΅Ρ
Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ² (bulk) β’ ΠΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΠΊΠΊΠ°ΡΠ½ΡΡ (ΡΠ°Π±Π»ΠΈΡΠ°), Π° Π½Π΅ Π²Π½ΡΡΡΠΈ drawer. Drawer Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° (ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡ ΠΏΠΎ Π°ΠΊΠΊΠ°ΡΠ½ΡΡ) ΠΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π° Ρ: β’ Π°Π²Π°ΡΠ°Ρ, Π½ΠΈΠΊ, ΡΡΠ°ΡΡΡ, ID β’ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΠ°ΠΏΡΡΡΠΈΡΡ / ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ β’ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ (ΠΊΠ°ΠΊ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅): ΠΠ±Π·ΠΎΡ, ΠΠΎΠ³ΠΈ, ΠΠΎΡΡ, Π§Π°ΡΡ, ΠΠ°ΠΊΠ°Π·Ρ, ΠΠΎΠ½ΡΠΈΠ³ (ΠΈ Π΄Ρ. Π΅ΡΠ»ΠΈ Π΅ΡΡΡ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅) ? 2.3 Drawer: Π²ΠΊΠ»Π°Π΄ΠΊΠ° βΠΠ±Π·ΠΎΡβ Π¦Π΅Π»Ρ: Π±ΡΡΡΡΡΠΉ ΠΎΠ±Π·ΠΎΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π°ΠΊΠΊΠ°ΡΠ½ΡΡ. β’ ΠΊΡΠ°ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° (Π±Π°Π»Π°Π½Ρ, ΠΏΡΠΎΠ΄Π°ΠΆΠΈ, Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ) β’ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΠΎΡΠΊΠ΅ΡΠΎΠ²/Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΉ β’ ΡΠ²ΠΎΠ΄Π½ΡΠ΅ ΡΡΠ°ΡΡΡΡ (βΠΎΡΠΈΠ±ΠΎΠΊ 0 / Π²ΡΡ Ρ
ΠΎΡΠΎΡΠΎβ) ? 2.4 Drawer: Π²ΠΊΠ»Π°Π΄ΠΊΠ° βΠΠΎΠ³ΠΈβ Π¦Π΅Π»Ρ: ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°. β’ ΠΏΠΎΡΠΎΠΊ Π»ΠΎΠ³ΠΎΠ² (INFO/WARN/ERROR) β’ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ/ΠΏΠΎΠΈΡΠΊ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) β’ Π°Π²ΡΠΎΡΠΊΡΠΎΠ»Π» ? 2.5 Drawer: Π²ΠΊΠ»Π°Π΄ΠΊΠ° βΠΠΎΡΡβ Π¦Π΅Π»Ρ: ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΡΠ°ΠΌΠΈ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°. β’ ΡΠΏΠΈΡΠΎΠΊ Π»ΠΎΡΠΎΠ² Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° β’ ΠΏΠΎΠΈΡΠΊ/ΡΠΈΠ»ΡΡΡ β’ ΡΡΠΌΠ±Π»Π΅Ρ ΠΠ²ΡΠΎ-ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ (ΠΊΠ°ΠΊ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅ β Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π΄ΡΠ±Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, Π½ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΡΡΠΈΠ½Ρ ΠΎΠ΄ΠΈΠ½) β’ ΡΡΡΠ½ΠΎΠ΅ βΠΠ±Π½ΠΎΠ²ΠΈΡΡβ/ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° Π»ΠΎΡΠΎΠ² β’ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡ ΠΊΠΎΠ»-Π²Π° Π»ΠΎΡΠΎΠ² ? 2.6 Drawer: Π²ΠΊΠ»Π°Π΄ΠΊΠ° βΠ§Π°ΡΡβ Π¦Π΅Π»Ρ: ΠΏΡΠΎΡΠΌΠΎΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. β’ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΡΠΎΠ² ΡΠ»Π΅Π²Π° β’ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠ°Ρ ΡΠΏΡΠ°Π²Π°: β’ ΠΈΡΡΠΎΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ β’ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ (Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ) β’ ΠΊΠ½ΠΎΠΏΠΊΠ° βΠΠ±Π½ΠΎΠ²ΠΈΡΡβ ? 2.7 Drawer: Π²ΠΊΠ»Π°Π΄ΠΊΠ° βΠΠ°ΠΊΠ°Π·Ρβ Π¦Π΅Π»Ρ: ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΏΠΎ Π°ΠΊΠΊΠ°ΡΠ½ΡΡ. β’ Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ / Π·Π°ΠΊΡΡΡΡΠ΅ β’ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡΠΎΠ² β’ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ ΠΊ Π΄Π΅ΡΠ°Π»ΡΠΌ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) ? 3) ΠΠΎΠ½ΡΠΈΠ³ΠΈ (Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ) β ΠΊΠ°ΠΊ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅ ΠΡΠΎ ΠΠ ΠΏΠ»Π°Π³ΠΈΠ½Ρ. 3.1 ΠΠ΄Π΅ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ β’ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΠΎΠ½ΡΠΈΠ³ Π² drawer Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° (ΠΊΠ°ΠΊ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅) β’ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π² βΠΠΊΠΊΠ°ΡΠ½ΡΡβ Π΄Π»Ρ ΠΏΠ΅Ρ-Π°ΠΊΠΊΠ°ΡΠ½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ 3.2 Π‘ΠΎΡΡΠ°Π² ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ² (ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΊΠ°ΠΊ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅) 1. ΠΠ²ΡΠΎ-ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ Π»ΠΎΡΠΎΠ² β’ toggle β’ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 120 ΠΌΠΈΠ½ΡΡ β’ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ βΠΊΠ°ΠΊ Cardinalβ (ΡΠΌ. 4.1) 2. ΠΡΠ²Π΅Ρ ΠΏΡΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΈ Π·Π°ΠΊΠ°Π·Π° β’ toggle β’ ΡΠ΅ΠΊΡΡ ΠΎΡΠ²Π΅ΡΠ° (ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΡΠΉ) β’ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΡΠΈ ΡΠΎΠ±ΡΡΠΈΠΈ Π·Π°ΠΊΡΡΡΠΈΡ/ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π·Π°ΠΊΠ°Π·Π° 3. ΠΡΠ²Π΅Ρ Π½Π° ΠΎΡΠ·ΡΠ²Ρ β’ toggle β’ ΡΠ΅ΠΊΡΡ ΠΎΡΠ²Π΅ΡΠ° (ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΡΠΉ) β’ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: ΠΎΡΠ²Π΅ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° 4β5? β’ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΡΠΆΠ΅ ΠΎΡΠ²Π΅ΡΠ°Π»ΠΈ 3.3 UI ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ² β’ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ/ΠΏΠΎΠ»Ρ ΠΊΠ°ΠΊ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅ β’ ΠΊΠ½ΠΎΠΏΠΊΠ° Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ β’ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Π°Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ (ΠΏΡΡΡΠΎΠΉ ΡΠ΅ΠΊΡΡ β Π½Π΅ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ Π΅ΡΠ»ΠΈ toggle Π²ΠΊΠ»ΡΡΡΠ½) ? 4) ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ (Π»ΠΎΠ³ΠΈΠΊΠ° ΡΠ°Π±ΠΎΡΡ) 4.1 ΠΠ²ΡΠΎΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ ΠΊΠ°ΠΊ Cardinal (ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅)β’ Π²ΠΎΡΠΊΠ΅Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΡΠ½Π½ΠΎΠΌ toggle β’ ΡΠΈΠΊΠ»: 1. ΠΏΠΎΠΏΡΡΠΊΠ° ΠΏΠΎΠ΄Π½ΡΡΡ Π»ΠΎΡΡ 2. Π΅ΡΠ»ΠΈ FunPay Π½Π΅ Π΄Π°ΡΡ β ΠΏΠΎΠ»ΡΡΠΈΡΡ wait_time ΠΈ ΠΆΠ΄Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ 3. Π΅ΡΠ»ΠΈ ΡΠ΄Π°Π»ΠΎΡΡ β ΠΆΠ΄Π°ΡΡ 120 ΠΌΠΈΠ½ΡΡ 4. ΠΏΠΎΠ²ΡΠΎΡΡΡΡ ΠΏΠΎΠΊΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ β’ ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ°Ρ
: Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ + backoff 4.2 ΠΡΠ²Π΅Ρ ΠΏΡΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΈ Π·Π°ΠΊΠ°Π·Π° β’ Π²ΠΎΡΠΊΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½ΠΎΠ²ΡΠ΅ closed/confirmed Π·Π°ΠΊΠ°Π·Ρ β’ Π΅ΡΠ»ΠΈ Π·Π°ΠΊΠ°Π· Π·Π°ΠΊΡΡΡ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΈ Π°Π²ΡΠΎΠΎΡΠ²Π΅Ρ Π²ΠΊΠ»ΡΡΡΠ½: β’ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ°Ρ Π·Π°ΠΊΠ°Π·Π° β’ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π·Π°ΠΊΠ°Π· ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌ (Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ) ΡΡΠΎΠ±Ρ Π½Π΅ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ 4.3 ΠΡΠ²Π΅Ρ Π½Π° ΠΎΡΠ·ΡΠ²Ρ β’ Π²ΠΎΡΠΊΠ΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ Π½ΠΎΠ²ΡΠ΅ ΠΎΡΠ·ΡΠ²Ρ β’ Π΅ΡΠ»ΠΈ ΠΎΡΠ·ΡΠ² 4β5? ΠΈ Π°Π²ΡΠΎΠΎΡΠ²Π΅Ρ Π²ΠΊΠ»ΡΡΡΠ½ ΠΈ Π΅ΡΡ Π½Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°: β’ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠ²Π΅Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΈΠ· ΠΊΠΎΠ½ΡΠΈΠ³Π° β’ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ? 5) ΠΠ»Π°Π³ΠΈΠ½Ρ (ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΡΡΠ½ΠΎΡΡΡ) 5.1 Π Π°Π·Π΄Π΅Π» βΠΠ»Π°Π³ΠΈΠ½Ρβ β’ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ (ΠΊΠ°ΠΊ Π½Π° ΡΠ²ΠΎΡΠΌ ΡΠΊΡΠΈΠ½Π΅): β’ AutoTicket, AutoResponder, AutoSmm, OfflineActivity, AutoSteamNS, RentSteam, VipRobloxβ¦ β’ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ: β’ ΡΠ΅Π½Π°/ΠΌΠ΅ΡΠΊΠ° (Π² Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ β βΠ±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎβ) β’ Π·Π°Π³ΡΡΠΆΠ΅Π½/Π½Π΅ Π·Π°Π³ΡΡΠΆΠ΅Π½ β’ toggle Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ β’ ΠΊΠ½ΠΎΠΏΠΊΠ° βΠΠ°ΡΡΡΠΎΠΉΠΊΠΈβ (ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ ΠΊ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌ ΠΏΠ»Π°Π³ΠΈΠ½Π°) 5.2 ΠΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΊ Π°ΠΊΠΊΠ°ΡΠ½ΡΡ β’ Π² Π°ΠΊΠΊΠ°ΡΠ½ΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΡ
ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² (Π±Π΅ΠΉΠ΄ΠΆΠΈ) β’ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ βΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π°ΠΊΡΠΈΠ²Π½Ρ Π΄Π»Ρ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°β Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈΠ±ΠΎ: β’ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² (Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°ΠΌ) β’ ΠΈΠ»ΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ (Π΅ΡΠ»ΠΈ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅ Π΅ΡΡΡ) ? 6) ΠΠ²ΡΠΎΠ²ΡΠ΄Π°ΡΠ° 6.1 ΠΠΊΡΠ°Π½ βΠΠ²ΡΠΎΠ²ΡΠ΄Π°ΡΠ°β β’ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ°Π²ΠΈΠ» Π°Π²ΡΠΎΠ΄ΠΎΡΡΠ°Π²ΠΊΠΈ β’ ΠΊΠ½ΠΎΠΏΠΊΠ° βΠΠΎΠ±Π°Π²ΠΈΡΡβ β’ ΡΠΎΡΠΌΠ° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ: β’ Π°ΠΊΠΊΠ°ΡΠ½Ρ β’ ID Π»ΠΎΡΠ° (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) β’ ΡΠ΅ΠΊΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ β’ ΡΠ°ΠΉΠ» ΡΠΎΠ²Π°ΡΠ° (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) β’ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ/Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΎ β’ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΡΠΈ ΠΏΠΎΠΊΡΠΏΠΊΠ΅ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅/ΡΠ°ΠΉΠ» ? 7) ΠΡΠΎΠΊΡΠΈ 7.1 ΠΠΊΡΠ°Π½ βΠΡΠΎΠΊΡΠΈβ β’ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΠΊΡΠΈ β’ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅/ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅/Π·Π°ΠΌΠ΅ΡΠΊΠ° β’ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΎΠΊΡΠΈ 7.2 Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ βIP Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΌΠ΅Π½ΡΡΡΡΡβ Pinned IP Π»ΠΎΠ³ΠΈΠΊΠ°: β’ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° ΡΠΈΠΊΡΠΈΡΡΠ΅ΠΌ βΡΡΠ°Π»ΠΎΠ½Π½ΡΠΉ IPβ β’ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 60 ΠΌΠΈΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ IP ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠΊΡΠΈ β’ retry: 1 β’ Π΅ΡΠ»ΠΈ IP ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ: β’ Π°ΠΊΠΊΠ°ΡΠ½Ρ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ β’ Π»ΠΎΠ³: βProxy IP changed, account stoppedβ β’ ΡΡΠ°ΡΡΡ ERROR (ΠΈΠ»ΠΈ STOP + ΠΏΡΠΈΡΠΈΠ½Π°) ? 8) Π€ΠΈΠ½Π°Π½ΡΡ β’ ΠΎΠ±ΡΠΈΠΉ Π±Π°Π»Π°Π½Ρ (Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ) β’ ΡΠΏΠΈΡΠΎΠΊ Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ² ΠΈ ΠΈΡ
Π±Π°Π»Π°Π½ΡΡ β’ ΠΈΡΡΠΎΡΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅) ? 9) ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ β’ ΠΎΠ±ΡΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β’ ΡΠ΅ΠΆΠΈΠΌΡ ΡΠ°Π±ΠΎΡΡ (ΡΠΌ. Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ) β’ ΠΏΡΡΠΈ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ β’ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° ? 10) ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ (Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π’Π ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ) 10.1 Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ Π Π΅ΠΆΠΈΠΌ, Π³Π΄Π΅: β’ Π²ΡΡ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ (accounts.json, proxies.json, configs.json, logs.json, processed_orders.json ΠΈ Ρ.ΠΏ.) β’ backend ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ β’ desktop ΠΎΠ±ΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ 127.0.0.1 β’ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
Π²Π½Π΅ΡΠ½ΠΈΡ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ²/Π»ΠΈΡΠ΅Π½Π·ΠΈΠΉ/ΠΎΠ±Π»Π°ΠΊΠ° 10.2 ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° β’ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΠΊΡΠΎΠΌΠ΅: β’ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ FunPay β’ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠΎΠΊΡΠΈ ΡΠ΅ΡΠ΅Π· IP-ΡΠ΅ΡΠ²ΠΈΡ β’ ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ: β’ ΡΡΠ°ΡΡΡ βofflineβ β’ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π²ΠΎΡΠΊΠ΅ΡΠΎΠ²/ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² 10.3 Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° β’ ΠΏΠ°ΠΏΠΊΠ° storage/ ΠΈΠ»ΠΈ data/ Π² ΠΊΠΎΡΠ½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° β’ ΡΡΡΡΠΊΡΡΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²: β’ accounts.json β’ proxies.json β’ account_configs.json β’ autodelivery_rules.json β’ processed_confirm.json β’ processed_reviews.json β’ logs_
.json (ΠΈΠ»ΠΈ Π΅Π΄ΠΈΠ½ΡΠΉ logs.json) 10.4 ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° β’ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π² settings.json: β’ “mode“: “local“ β’ UI ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ Π² βΠΠ°ΡΡΡΠΎΠΉΠΊΠΈβ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) β’ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: local ? 11) ΠΠ΅ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ β’ ΠΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π·Π°Π³Π»ΡΡΠ΅ΠΊ: ΠΊΠ½ΠΎΠΏΠΊΠΈ/ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎ Π΄Π΅ΡΠ³Π°ΡΡ API ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π²ΠΎΡΠΊΠ΅ΡΡ β’ ΠΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π»ΠΎΠ³ΠΈΡΡΡΡΡΡ (INFO/WARN/ERROR) β’ ΠΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΠ΅ βΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ²β ΠΈ βΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²β Π² ΠΎΠ΄Π½ΠΎΠΌ UI ΡΠ°Π·Π΄Π΅Π»Π΅ β’ ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ: β’ sensitive Π΄Π°Π½Π½ΡΠ΅ (golden_key) Ρ
ΡΠ°Π½ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ β’ Π½Π΅ ΡΠ²Π΅ΡΠΈΡΡ Π² UI ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ (ΠΌΠ°ΡΠΊΠ°).