Files
YanDisk/README.md
akhmed f2160a7768 v1.0.3: Доступные мне — реальное обнаружение общих папок (поле share/is_owned)
- Models: ShareInfo (rights, is_owned, is_root) + поле share в DiskResource
- DiskAPIClient.sharedWithMe(): обход дерева, сбор ресурсов с is_owned == false
- Вкладка «Доступные мне» показывает общие папки, в контекстном меню права rw/r
- Реестр публичных ссылок из v1.0.2 убран (был workaround)
2026-09-15 22:22:52 +03:00

83 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# YanDisk
Нативный SwiftUI-клиент Яндекс.Диска для macOS (Apple Silicon).
## Возможности
- Авторизация OAuth (токен в Keychain)
- Просмотр Диска: все файлы и папки, «Недавние», «Корзина»
- **Избранное**: правый клик → «В избранное» (метка хранится локально, звезда в списке)
- **Доступные мне**: папки, к которым доступ дали другие пользователи (обнаружение по полю `share.is_owned == false` в листинге API; права rw/r в контекстном меню)
- Чтение / скачивание, загрузка (кнопка и drag-and-drop)
- Копирование, перемещение, переименование, дублирование
- Удаление в Корзину, восстановление, очистка Корзины
- Синхронизация `~/Yandex.Disk`: **Везде** / **Только на компьютере** / **Только в облаке** (по умолчанию — «Только в облаке»)
- Общий доступ: ссылка, права, пароль, срок действия
- Иконка приложения подстраивается под тему системы (светлая/тёмная), иконка в меню-баре
## План доработок
Аудит кода, найденные неоптимальные места и порядок работ — в [ПРАВКИ.md](ПРАВКИ.md).
Актуальные задачи также заведены в Issues Gitea: https://git.statix.sbs/akhmed/YanDisk/issues
## Сборка
```bash
cd /Users/statix/Projects/YanDisk
./build.sh
open .build/YanDisk.app
```
Установка в `/Applications`:
```bash
rm -rf /Applications/YanDisk.app
cp -R .build/YanDisk.app /Applications/
codesign --force --deep --sign - /Applications/YanDisk.app
```
Smoke-тесты (сборка + проверка OAuth-парсинга, кодирования путей и бандла):
```bash
./smoke_test.sh
```
## Иконка
Исходники: `icons/Icon-iOS-*.png` (1024×1024).
Собранные ресурсы:
- `Resources/AppIcon.icns` — Dock/Finder (светлая тема)
- `Resources/AppIconDark.icns` — Dock/Finder (тёмная тема)
- `Resources/Assets.xcassets/AppIcon.appiconset` — варианты light/dark (HIG)
Пересборка иконки:
```bash
./scripts/generate_icons.sh
```
## Темы
Настройки → Основные → **Тема**: Как в системе / Светлая / Тёмная.
Значение хранится в `AppStorage("Appearance")`. Иконка Dock переключается автоматически
по `effectiveAppearance` (`AppDelegate.updateAppIcon()`).
## Структура
```
Sources/YanDisk/
App/ точка входа, AppDelegate, окна
Core/ API, OAuth, Keychain, модели, AppStore
Sync/ движок синхронизации
UI/ меню-бар, браузер, шаринг, настройки, вход
icons/ исходные PNG иконки
Resources/ Info.plist, AppIcon.icns, AppIconDark.icns, Assets.xcassets
```
## Авторизация
1. Иконка облака → **Добавить аккаунт**
2. **Войти через Яндекс**
3. Вставить `access_token`