# π Lunaris
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄Π»Ρ Booru ΠΈ Creator-Π°ΡΡ
ΠΈΠ²ΠΎΠ²
ΠΠ»Π°Π²Π½ΡΠΉ Pinterest-ΡΡΠΈΠ»Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΡΠΎ, Π²ΠΈΠ΄Π΅ΠΎ ΠΈ GIF, ΡΠΌΠ½ΡΠΉ ΡΠ΅ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΎΠΊ ΠΈ Π°Π²ΡΠΎΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅.
---
## β¨ ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
- **β‘ ΠΠ³Π½ΠΎΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΡΠ΅Π³ΠΎΠ² (0 ΠΌΡ) ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΠΊΡΡ**: ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ JSON-ΠΊΡΡ Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅ ΠΈ ΠΠ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΡΠΉ ΠΎΡΠΊΠ»ΠΈΠΊ ΠΏΡΠΈ Π½Π°Π±ΠΎΡΠ΅, Π° Danbooru, Gelbooru, Moebooru ΠΈ e621 Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡ Π±Π°Π·Ρ ΡΠ΅Π³ΠΎΠ².
- **π¨ Π¦Π²Π΅ΡΠ½ΡΠ΅ Π±Π΅ΠΉΠ΄ΠΆΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ**: ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Π²Π΅Π΄Π΅Π½Π½ΡΡ
Π±ΡΠΊΠ² ΠΆΠΈΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ Π°ΠΊΡΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΡΠΊΠ°Ρ ΡΠ²Π΅ΡΠΎΠ²Π°Ρ ΠΏΠ°Π»ΠΈΡΡΠ° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ (Ρ
ΡΠ΄ΠΎΠΆΠ½ΠΈΠΊ β ΠΊΡΠ°ΡΠ½ΡΠΉ, ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆ β Π·Π΅Π»Π΅Π½ΡΠΉ, ΠΊΠΎΠΏΠΈΡΠ°ΠΉΡ β ΡΠΈΠΎΠ»Π΅ΡΠΎΠ²ΡΠΉ, Π²ΠΈΠ΄ β Π³ΠΎΠ»ΡΠ±ΠΎΠΉ).
- **π Π Π°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ Π³ΠΈΠ±ΠΊΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ**: ΠΠΎ 2000 Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈ Π΄ΠΎ 20000 Π·Π°ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ΅Π³ΠΎΠ² Ρ ΡΡΡΠ½ΡΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΎΡΠΈΡΡΠΊΠΈ Π² ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°Ρ
.
- **π― ΠΠ±ΡΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π² ΠΌΡΠ»ΡΡΠΈΠΏΠΎΠΈΡΠΊΠ΅**: ΠΡΠΈ Π²Π²ΠΎΠ΄Π΅ `cat and dog anthro` ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ `anthro` Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡΡ ΠΊ ΠΎΠ±ΠΎΠΈΠΌ ΡΠ΅Π³Π°ΠΌ (`cat anthro` + `dog anthro`).
- **π Π Π°Π·Π΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΡΠ»ΡΡΠΈ-ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ΅Π³Π°ΠΌ ΡΠ΅ΡΠ΅Π· `and`**: ΠΠΏΠ΅ΡΠ°ΡΠΎΡ `and` ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Π±Π°Π·Ρ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ΅Π³Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΈ ΠΏΠ»Π°Π²Π½ΠΎ ΡΠ΅ΡΠ΅Π΄ΡΠ΅Ρ ΠΏΠΎΡΡΡ ΠΎΠ±ΠΎΠΈΡ
ΡΠ΅Π³ΠΎΠ² Π² ΠΎΠ±ΡΠ΅ΠΉ Π»Π΅Π½ΡΠ΅.
- **π Pawchive Π² Π³Π»Π°Π²Π½ΠΎΠΉ Π»Π΅Π½ΡΠ΅**: ΠΠ»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ Π»Π΅Π½ΡΠ° Π½Π΅Π΄Π°Π²Π½ΠΈΡ
ΠΏΠΎΡΡΠΎΠ² Ρ Pawchive ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΡΡΠΌΠΎ Π² ΠΎΠ±ΡΠΈΠΉ Feed Π½Π°ΡΠ°Π²Π½Π΅ Ρ Rule34, Gelbooru, e621 ΠΈ Realbooru.
- **π·οΈ ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠ΅Π³ΠΈ Π°Π²ΡΠΎΡΠ°**: ΠΡΡΡΡΠ°Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΠΌ Ρ ΠΆΠΈΠ²ΡΠΌΠΈ ΡΡΡΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΏΠΎΡΡΠΎΠ² (`#tag (count)`).
- **π’ ΠΠ½ΠΎΠ½ΡΡ ΠΈ Π½ΠΎΠ²ΠΎΡΡΠΈ Π°Π²ΡΠΎΡΠΎΠ²**: ΠΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ Π°Π½ΠΎΠ½ΡΠΎΠ² Π°Π²ΡΠΎΡΠ° Ρ Π΄Π°ΡΠ°ΠΌΠΈ ΠΈ ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠΈ.
- **β‘ ΠΠ³Π½ΠΎΠ²Π΅Π½Π½ΡΠΉ ΡΠΈΠ»ΡΡΡ ΡΠΎΡΠΎ, Π²ΠΈΠ΄Π΅ΠΎ ΠΈ GIF**: ΠΠΎΠΊΠ°Π»ΡΠ½Π°Ρ Π±ΡΡΡΡΠ°Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΏΠΎΡΡΠΎΠ² Π°Π²ΡΠΎΡΠ° Π±Π΅Π· Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ.
- **π± ΠΠ»Π°Π²Π½Π°Ρ Π»Π΅Π½ΡΠ° Π² ΡΡΠΈΠ»Π΅ Pinterest**: Masonry-ΡΠ΅ΡΠΊΠ° Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌΠ° (Masonry, 1:1 Π‘Π΅ΡΠΊΠ°, Π‘ΠΏΠΈΡΠΎΠΊ) Π² ΡΠ°ΠΏΠΊΠ΅ Π»Π΅Π½ΡΡ.
- **β‘ Π‘Π²Π΅ΡΡ
Π±ΡΡΡΡΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎ-ΠΏΡΠ΅Π²ΡΡ**: ΠΠ³Π½ΠΎΠ²Π΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠ΅Π²ΡΡ Π±Π΅Π· ΡΡΠΈΠ·ΠΎΠ² ΠΈ Π»ΠΈΡΠ½Π΅ΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΈ ΠΏΠ°ΠΌΡΡΡ ΡΠΌΠ°ΡΡΡΠΎΠ½Π°.
- **βοΈ ΠΠΈΡΡΠ°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠΎΠ² Π²Π»Π΅Π²ΠΎ ΠΈ Π²ΠΏΡΠ°Π²ΠΎ**: ΠΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΡΠΉ ΠΏΠ΅ΠΉΠ΄ΠΆΠ΅Ρ Ρ ΠΏΠ»Π°Π²Π½ΡΠΌΠΈ ΡΠ²Π°ΠΉΠΏΠ°ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π²ΠΎ Π²ΡΠ΅Ρ
ΡΠ°Π·Π΄Π΅Π»Π°Ρ
.
- **β€οΈ ΠΠ²ΠΎΠΉΠ½ΠΎΠΉ ΡΠ°ΠΏ Π΄Π»Ρ Π»Π°ΠΉΠΊΠ° ΠΈ ΡΠ²Π°ΠΉΠΏ Π²Π½ΠΈΠ· Π΄Π»Ρ Π·Π°ΠΊΡΡΡΠΈΡ**: ΠΠ½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΄Π΅ΡΠΊΠΎ ΠΏΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠΌΡ ΡΠ°ΠΏΡ ΠΈ Π·Π°ΠΊΡΡΡΠΈΠ΅ ΡΠΊΡΠ°Π½Π° ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠ²Π°ΠΉΠΏΠΎΠΌ Π²Π½ΠΈΠ·.
- **π€ ΠΡΡΠΌΠ°Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠ°ΠΉΠ»Π° (Share)**: ΠΠ³Π½ΠΎΠ²Π΅Π½Π½ΡΠΉ ΡΠΊΡΠΏΠΎΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΡ
ΠΌΠ΅Π΄ΠΈΠ°ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ΅ΡΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Β«ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡΒ».
- **π Π‘ΠΎΡ
ΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠ΅ ΠΏΡΠ΅ΡΠ΅ΡΡ**: ΠΡΡΡΡΠΎΠ΅ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ ΡΠ΅Π³ΠΎΠ² ΠΈ ΡΠΈΠ»ΡΡΡΠΎΠ² Π² Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ.
- **π Π£ΠΌΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΏΠ°ΠΏΠΎΠΊ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ**: ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ (`{Artist}`, `{Provider}`, `{Service}`, `{ID}`, `{Date}`).
- **ποΈ ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΊΡΡΠ°**: ΠΠ΅ΡΠ°Π»ΡΠ½Π°Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π°Π½ΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π²ΡΠ±ΠΎΡΠΎΡΠ½Π°Ρ ΠΎΡΠΈΡΡΠΊΠ°.
- **π¦ ΠΡΠΊΠ°ΠΏ ΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ**: ΠΠΊΡΠΏΠΎΡΡ ΠΈ ΠΈΠΌΠΏΠΎΡΡ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π² JSON-ΡΠ°ΠΉΠ» Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
- **π AMOLED Pure Black ΡΠ΅ΠΌΠ°**: ΠΡΡΠΈΠ½Π½ΠΎ ΡΠ΅ΡΠ½ΡΠΉ ΡΠΎΠ½ (`#000000`) Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π±Π°ΡΠ°ΡΠ΅ΠΈ Π½Π° OLED Π΄ΠΈΡΠΏΠ»Π΅ΡΡ
.
- **π¨ ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²Π΅ΡΠ° Material You**: ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ Android ΠΈΠ· ΠΎΠ±ΠΎΠ΅Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
- **β ΠΡΠ±ΠΈΠΌΡΠ΅ Π°Π²ΡΠΎΡΡ**: ΠΠΎΠΌΠΏΠ°ΠΊΡΠ½Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°-Π·Π²ΡΠ·Π΄ΠΎΡΠΊΠ° ΡΠ²Π΅ΡΡ
Ρ ΡΠΏΡΠ°Π²Π° Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊΠΎ Π²ΡΠ΅ΠΌ Π»ΡΠ±ΠΈΠΌΡΠΌ Π°Π²ΡΠΎΡΠ°ΠΌ.
- **π·οΈ ΠΡΠ»ΡΡΠΈΠ²ΡΠ±ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ**: ΠΡΠ±ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌ (Patreon, Fanbox, Fantia, Boosty, Discord).
- **π ΠΠ΅ΡΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΊΠ° ΠΏΠΎΡΡΠΎΠ² Π°Π²ΡΠΎΡΠ°**: Π£ΠΌΠ½Π°Ρ ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΡ ΠΏΡΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠ΅ Π²Π½ΠΈΠ· Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π²ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠ°Π±ΠΎΡ.
- **π Π£ΠΌΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ ΠΈ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅**: ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡΡ ΡΠ΅Π³ΠΎΠ² Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°ΠΌΠΈ ΠΎΡ Π°ΠΊΡΠΈΠ²Π½ΡΡ
API.
- **π‘οΈ ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ Blacklist / Whitelist**: Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ΅Π³Π°ΠΌ, ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌ, ΡΠ΅ΠΉΡΠΈΠ½Π³Ρ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ score.
- **π¬ ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΏΠ»Π΅Π΅Ρ**: Π£Π΄ΠΎΠ±Π½ΠΎΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ WebM / MP4, Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ Π·Π²ΡΠΊΠ°, fullscreen ΠΈ ΠΏΠΎΠ²ΡΠΎΡ.
- **πΎ ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΎΠΊ ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ**: Π‘ΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΠΎΠ² Π² Π²ΡΡΠΎΠΊΠΎΠΌ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈ ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ-ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
- **π ΠΡΡΡΠΎΠ΅Π½Π½ΠΎΠ΅ Π°Π²ΡΠΎΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅**: ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π΅ΠΆΠΈΡ
ΡΠ΅Π»ΠΈΠ·ΠΎΠ² Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Gitea.
---
## π ΠΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ
| ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ | Π’ΠΈΠΏ API | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ |
|---|---|---|
| **Gelbooru** | XML / JSON API | ΠΡΠ½ΠΎΠ²Π½Π°Ρ Π±Π°Π·Π° Π°Π½ΠΈΠΌΠ΅-Π°ΡΡΠΎΠ² |
| **Rule34** | Booru API | ΠΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ booru-ΠΈΡΡΠΎΡΠ½ΠΈΠΊ |
| **Realbooru** | HTML Scraper | Π€ΠΎΡΠΎ ΠΈ ΡΠ΅Π°Π»ΠΈΡΡΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ |
| **e621 / e926** | JSON API | Π€ΡΡΡΠΈ- ΠΈ Π°Π½ΡΡΠΎ-Π°ΡΡ Ρ Π±ΠΎΠ³Π°ΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ΅Π³ΠΎΠ² |
| **Pawchive** | REST API v1 | ΠΡΡ
ΠΈΠ²Ρ Π°Π²ΡΠΎΡΠΎΠ² Patreon, Pixiv Fanbox, Fantia ΠΈ Π΄Ρ. |
---
## π₯ Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΠΎΡΠΎΠ²ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅Π»ΠΈΠ·ΠΎΠ²:
π **[Gitea Releases (RarDog/Lunaris)](https://gitea.rardogsynapse.online/RarDog/Lunaris/releases)**
- **Android**: `Lunaris-v2.0.9.apk`
- **Linux (x64)**: `Lunaris-v2.0.9-linux-x64.tar.gz`
- **Windows**: `LunarisSetup-v2.0.9.exe` / `LunarisPortable-v2.0.9.zip`
---
## π οΈ Π‘Π±ΠΎΡΠΊΠ° ΠΈΠ· ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΎΠ²
### Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
- Flutter SDK `>= 3.19.0`
- OpenJDK 17
- Android SDK (Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ APK)
- Clang / CMake / GTK-3 (Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ Linux)
### ΠΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
```bash
# ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
git clone https://gitea.rardogsynapse.online/RarDog/Lunaris.git
cd Lunaris
# Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
flutter pub get
# ΠΠ°ΠΏΡΡΠΊ ΡΠ΅ΡΡΠΎΠ² ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°
flutter analyze
flutter test
# ΠΠ°ΠΏΡΡΠΊ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅
flutter run
```
### Π‘Π±ΠΎΡΠΊΠ° ΡΠ΅Π»ΠΈΠ·ΠΎΠ²
```bash
# Android APK
flutter build apk --release
# Linux x64 Bundle
flutter build linux --release
# Windows Bundle
flutter build windows --release
```
---
## ποΈ ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°
```
lib/
βββ app/ # Π ΠΎΡΡΠ΅Ρ, ΡΠ΅ΠΌΠ°, Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ (RU/EN), Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ
βββ backend/
β βββ di/ # Riverpod providers Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²
β βββ models/ # Post, ArtistProfile, AppSettings, AppUpdateInfo
β βββ providers/ # Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ API (Gelbooru, Rule34, Pawchive ΠΈ Π΄Ρ.)
β βββ repositories/ # ΠΠΎΡΡΡΠΏ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΠ Isar
β βββ services/ # ΠΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ° (Feed, Search, Favorites, Downloads, Updates)
βββ core/ # Π‘Π΅ΡΡ (Dio), Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ
(Isar), ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΊΠ΅ΡΠΈ
βββ features/ # ΠΠΎΠ΄ΡΠ»ΠΈ ΡΠΊΡΠ°Π½ΠΎΠ² (feed, post, artists, favorites, settings)
βββ shared/widgets/ # ΠΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ (PostCard, MasonryGrid, TagChip)
```
---
## π ΠΡΠΈΠ²Π°ΡΠ½ΠΎΡΡΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
- **ΠΠΎΠ»Π½Π°Ρ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΡΡΡ**: ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅Π»Π΅ΠΌΠ΅ΡΡΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π΅Π· Π²Π½Π΅ΡΠ½ΠΈΡ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ²-ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊΠΎΠ².
- **ΠΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Ρ
ΡΠ°Π½Π΅Π½ΠΈΠ΅**: ΠΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΈΡΡΠΎΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ°, ΡΠ΅ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈ ΠΈΠ·Π±ΡΠ°Π½Π½ΠΎΠ΅ Ρ
ΡΠ°Π½ΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π±Π°Π·Π΅ Isar.
- **ΠΠ΅ΡΠ΅ΠΆΠ½ΠΎΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΠ°ΡΠΈΠΊΡ**: Π Π»Π΅Π½ΡΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π²ΡΡ. Π’ΡΠΆΠ΅Π»ΡΠ΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Ρ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠΈ.