feat: initial project branding and setup

This commit is contained in:
admin 2025-12-17 17:45:37 -06:00
parent 4c00729183
commit b6837de9f4
3 changed files with 105 additions and 10 deletions

95
CLAUDE.md Normal file
View file

@ -0,0 +1,95 @@
# Logarr Development
All-in-one media manager (movies, books, audiobooks). Forked from Radarr.
Greek: λόγος (logos) = "word, reason"
<critical_rules>
CRITICAL: Zero AI indicators in code, commits, docs pushed to GitHub
CRITICAL: Keep Radarr movie functionality working at all times
CRITICAL: Hierarchical monitoring is foundational - design it in, don't bolt on
REQUIRED: Follow global CLAUDE.md coding standards
REQUIRED: Use sub-agents for exploration and research
</critical_rules>
## Project Info
| Item | Value |
|------|-------|
| Fork | github.com/Cody-k/logarr |
| Upstream | github.com/Radarr/Radarr |
| Stack | C# .NET 6.0, React, TypeScript |
| Goal | Unified media manager for movies, books, audiobooks |
## Quick Commands
```bash
# Build
./build.sh --backend --frontend
# Run locally
dotnet run --project src/Radarr
# Frontend dev
cd frontend && yarn install && yarn start
# Docker
docker build -t logarr .
```
## Architecture Goals
### Phase 1: Foundation
- Generalize database schema (Movies → MediaItems)
- Add MediaType discriminator
- Implement hierarchical monitoring (Author → Series → Item)
### Phase 2: Multi-Media
- Add book qualities (EPUB, MOBI, PDF)
- Add audiobook qualities (M4B, MP3)
- Port metadata providers from Akouarr/Bookshelf
### Phase 3: UI
- Unified dashboard with type filters
- Type-specific detail views
- Shared components with media badges
## Key Files
```
src/
├── NzbDrone.Common/EnvironmentInfo/BuildInfo.cs # App name
├── NzbDrone.Core/
│ ├── Movies/ # → MediaItems
│ ├── Qualities/ # Quality definitions
│ └── Localization/Core/en.json # UI strings
├── Radarr.Api.V3/ # REST API
└── frontend/src/ # React UI
```
## Migration Notes
### From Akouarr
Features to port:
- Narrator field on editions
- Duration tracking
- Audiobook qualities (MP3, M4B, FLAC)
- Batch query patterns
- Analytics dashboard
- MyAnonaMouse indexer
### From Radarr
Keep intact:
- Movie tracking and monitoring
- TMDB metadata integration
- Quality profile system
- Download client integration
- Indexer framework
## Development Standards
- Match existing codebase patterns
- No placeholder code
- Test changes before committing
- Keep Radarr compatibility during development

View file

@ -26,7 +26,7 @@ static BuildInfo()
Release = $"{Version}-{Branch}";
}
public static string AppName { get; } = "Radarr";
public static string AppName { get; } = "Logarr";
public static Version Version { get; }
public static string Branch { get; }

View file

@ -798,12 +798,12 @@
"ImportListStatusCheckSingleClientMessage": "Lists unavailable due to failures: {importListNames}",
"ImportLists": "Import Lists",
"ImportListsLoadError": "Unable to load Import Lists",
"ImportListsRadarrSettingsApiKeyHelpText": "API Key of the {appName} instance to import from (Radarr 3.0 or higher)",
"ImportListsRadarrSettingsFullUrl": "Full URL",
"ImportListsRadarrSettingsFullUrlHelpText": "URL, including port, of the {appName} instance to import from (Radarr 3.0 or higher)",
"ImportListsRadarrSettingsQualityProfilesHelpText": "Quality Profiles from the source instance to import from",
"ImportListsRadarrSettingsRootFoldersHelpText": "Root Folders from the source instance to import from",
"ImportListsRadarrSettingsTagsHelpText": "Tags from the source instance to import from",
"ImportListsLogarrSettingsApiKeyHelpText": "API Key of the {appName} instance to import from (Logarr 3.0 or higher)",
"ImportListsLogarrSettingsFullUrl": "Full URL",
"ImportListsLogarrSettingsFullUrlHelpText": "URL, including port, of the {appName} instance to import from (Logarr 3.0 or higher)",
"ImportListsLogarrSettingsQualityProfilesHelpText": "Quality Profiles from the source instance to import from",
"ImportListsLogarrSettingsRootFoldersHelpText": "Root Folders from the source instance to import from",
"ImportListsLogarrSettingsTagsHelpText": "Tags from the source instance to import from",
"ImportListsSettingsSummary": "Import from another {appName} instance or Trakt lists and manage list exclusions",
"ImportListsTraktSettingsAdditionalParameters": "Additional Parameters",
"ImportListsTraktSettingsAdditionalParametersHelpText": "Additional Trakt API parameters",
@ -859,7 +859,7 @@
"IncludeHealthWarnings": "Include Health Warnings",
"IncludePopular": "Include Popular",
"IncludePopularMoviesHelpText": "Include popular movies on TMDb",
"IncludeRadarrRecommendations": "Include {appName} Recommendations",
"IncludeLogarrRecommendations": "Include {appName} Recommendations",
"IncludeRecommendationsHelpText": "Include {appName} recommended movies in discovery view",
"IncludeTrending": "Include Trending",
"IncludeTrendingMoviesHelpText": "Include trending movies on TMDb",
@ -1547,7 +1547,7 @@
"QueueLoadError": "Failed to load Queue",
"Queued": "Queued",
"QuickImport": "Move Automatically",
"RadarrTags": "{appName} Tags",
"LogarrTags": "{appName} Tags",
"Rating": "Rating",
"Ratings": "Ratings",
"ReadTheWikiForMoreInformation": "Read the Wiki for more information",
@ -1686,7 +1686,7 @@
"Restart": "Restart",
"RestartLater": "I'll restart later",
"RestartNow": "Restart Now",
"RestartRadarr": "Restart {appName}",
"RestartLogarr": "Restart {appName}",
"RestartReloadNote": "Note: {appName} will automatically restart and reload the UI during the restore process.",
"RestartRequiredHelpTextWarning": "Requires restart to take effect",
"RestartRequiredToApplyChanges": "{appName} requires a restart to apply changes, do you want to restart now?",