Rebrand: Renamr -> Aurora Curator (new logo/app icon, renamed crate aurora-curator-core, package/identifier/window-title updates, README + in-app text)
This commit is contained in:
@@ -31,7 +31,7 @@ interface FileEntry {
|
||||
ext: string;
|
||||
}
|
||||
|
||||
// Result of the local, filename-only season/episode matcher (renamr-core's
|
||||
// Result of the local, filename-only season/episode matcher (aurora-curator-core's
|
||||
// `matching` module, exposed via the `guess_episode` Tauri command). No network calls -
|
||||
// this only recognizes patterns already present in the filename text itself.
|
||||
interface EpisodeGuess {
|
||||
@@ -40,7 +40,7 @@ interface EpisodeGuess {
|
||||
episode: number;
|
||||
}
|
||||
|
||||
// Result of the local, filename-only movie title/year matcher (renamr-core's
|
||||
// Result of the local, filename-only movie title/year matcher (aurora-curator-core's
|
||||
// `matching::guess_movie`, exposed via the `guess_movie` Tauri command). Tried as a
|
||||
// fallback whenever `guess_episode` finds no season/episode pattern - a release name
|
||||
// is either a TV episode or a movie, never both.
|
||||
@@ -52,7 +52,7 @@ interface MovieGuess {
|
||||
// What runMatching resolved a file to, before it's written into the item's bindings.
|
||||
type MatchGuess = { kind: "tv"; episode: EpisodeGuess } | { kind: "movie"; movie: MovieGuess };
|
||||
|
||||
// Result of the local, filename-only release-tag matcher (renamr-core's
|
||||
// Result of the local, filename-only release-tag matcher (aurora-curator-core's
|
||||
// `matching::guess_release_info`, exposed via the `guess_release_info` Tauri command).
|
||||
// Independent of the TV/movie guess above - a release name carries (or doesn't carry)
|
||||
// these tags regardless of what kind of media it is, so this runs alongside whichever
|
||||
@@ -78,7 +78,7 @@ interface RenamePlanEntry {
|
||||
newName: string;
|
||||
}
|
||||
|
||||
// Mirrors renamr-core's `RenameOutcome` (serde-tagged on "status"). Conflict policy is
|
||||
// Mirrors aurora-curator-core's `RenameOutcome` (serde-tagged on "status"). Conflict policy is
|
||||
// fixed at skip - a colliding target is never overwritten, just reported.
|
||||
type RenameOutcome =
|
||||
| { status: "renamed"; newPath: string }
|
||||
@@ -91,15 +91,15 @@ interface RenameResult {
|
||||
outcome: RenameOutcome;
|
||||
}
|
||||
|
||||
// Mirrors renamr-core's `RenameAction` - what actually happens at each computed target.
|
||||
// "move" relocates the file in place (the only action Renamr had before); "copy" and
|
||||
// Mirrors aurora-curator-core's `RenameAction` - what actually happens at each computed target.
|
||||
// "move" relocates the file in place (the only action Aurora Curator had before); "copy" and
|
||||
// "symlink" both leave the source file exactly where it is and produce a new file
|
||||
// elsewhere, which is why only "move" updates the loaded item's own path/name (see
|
||||
// confirmRename below).
|
||||
type RenameAction = "move" | "copy" | "symlink";
|
||||
|
||||
// Mirrors renamr-core's `ConflictPolicy` - what happens when a computed target already
|
||||
// exists. "skip" (the default, and the only behavior Renamr had before) leaves the
|
||||
// Mirrors aurora-curator-core's `ConflictPolicy` - what happens when a computed target already
|
||||
// exists. "skip" (the default, and the only behavior Aurora Curator had before) leaves the
|
||||
// conflicting file alone; "autoNumber" saves alongside it as "Name (1).ext" instead;
|
||||
// "override" replaces it outright (irreversible for whatever gets overwritten).
|
||||
type ConflictPolicy = "skip" | "autoNumber" | "override";
|
||||
@@ -115,7 +115,7 @@ interface FetchQuery {
|
||||
episode: number;
|
||||
}
|
||||
|
||||
// Mirrors renamr-core's `FetchOutcome` (serde-tagged on "status").
|
||||
// Mirrors aurora-curator-core's `FetchOutcome` (serde-tagged on "status").
|
||||
type FetchOutcome =
|
||||
| { status: "found"; seriesName: string; episodeTitle: string; airDate: string | null }
|
||||
| { status: "notFound" }
|
||||
@@ -135,7 +135,7 @@ interface MovieFetchQuery {
|
||||
year: number | null;
|
||||
}
|
||||
|
||||
// Mirrors renamr-core's `MovieFetchOutcome` (serde-tagged on "status").
|
||||
// Mirrors aurora-curator-core's `MovieFetchOutcome` (serde-tagged on "status").
|
||||
type MovieFetchOutcome =
|
||||
| { status: "found"; title: string; releaseDate: string | null }
|
||||
| { status: "notFound" }
|
||||
@@ -146,7 +146,7 @@ interface MovieFetchResult {
|
||||
outcome: MovieFetchOutcome;
|
||||
}
|
||||
|
||||
// Rename history / undo. Mirrors renamr-core's `history` module (serde-tagged on
|
||||
// Rename history / undo. Mirrors aurora-curator-core's `history` module (serde-tagged on
|
||||
// "status" for the outcome, same convention as RenameOutcome/FetchOutcome above).
|
||||
interface HistoryEntry {
|
||||
source: string;
|
||||
@@ -263,9 +263,9 @@ const SAMPLE_ITEMS: Item[] = [
|
||||
];
|
||||
|
||||
// The user's own preferred naming scheme (their words: "I personally like {show name} -
|
||||
// {season number}x{episode number} - {episode name}") - this is Renamr's default now,
|
||||
// {season number}x{episode number} - {episode name}") - this is Aurora Curator's default now,
|
||||
// not just an example. `{show name}`/`{season number}`/etc. are multi-word plain-field
|
||||
// binding names, which work via renamr-core's ExpressionFormat plain-field-name
|
||||
// binding names, which work via aurora-curator-core's ExpressionFormat plain-field-name
|
||||
// fallback (ExpressionError-free even though they aren't valid Rhai identifiers).
|
||||
const SAMPLE_EXPRESSION = "{show name} - {season number}x{episode number} - {episode name}";
|
||||
// The matching engine isn't ported yet, so real loaded files only have their own
|
||||
@@ -395,10 +395,10 @@ export default function RenamePanel() {
|
||||
const [renaming, setRenaming] = useState(false);
|
||||
// What to actually do at each computed target - chosen in the confirmation modal,
|
||||
// remembered across modal opens within the session (defaults to "move", matching
|
||||
// Renamr's original and only behavior before copy/symlink existed).
|
||||
// Aurora Curator's original and only behavior before copy/symlink existed).
|
||||
const [renameAction, setRenameAction] = useState<RenameAction>("move");
|
||||
// What to do when a computed target already exists - same remembered-across-opens
|
||||
// pattern as renameAction, defaults to "skip" (Renamr's original and only behavior
|
||||
// pattern as renameAction, defaults to "skip" (Aurora Curator's original and only behavior
|
||||
// before auto-number/override existed).
|
||||
const [conflictPolicy, setConflictPolicy] = useState<ConflictPolicy>("skip");
|
||||
// TMDB token state for "Fetch Data". `null` = not checked yet, `false` = checked and
|
||||
@@ -545,10 +545,10 @@ export default function RenamePanel() {
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, []);
|
||||
|
||||
// Local, filename-based season/episode/movie detection (renamr-core's `matching`
|
||||
// Local, filename-based season/episode/movie detection (aurora-curator-core's `matching`
|
||||
// module). Tries `guess_episode` first; when a filename carries no season/episode
|
||||
// marker, falls back to `guess_movie` (a release name is either a TV episode or a
|
||||
// movie, never both - see the doc comment on `guess_movie` in renamr-core). Populates
|
||||
// movie, never both - see the doc comment on `guess_movie` in aurora-curator-core). Populates
|
||||
// TV bindings (`{n}`/`{s00e00}`/`{season}`/`{episode}`/etc.) or movie bindings
|
||||
// (`{n}`/`{y}`/etc.) accordingly - no network calls, no metadata lookup, so it's
|
||||
// distinct from (and much cheaper than) "Fetch Data" online matching.
|
||||
@@ -727,7 +727,7 @@ export default function RenamePanel() {
|
||||
// local state and report the outcome. Only "move" relocates the source file, so only
|
||||
// "move" updates a loaded item's own id/name/bindings to point at the new path -
|
||||
// "copy"/"symlink" leave the source exactly where it was and produce an additional
|
||||
// file elsewhere that Renamr doesn't separately track as a loaded item.
|
||||
// file elsewhere that Aurora Curator doesn't separately track as a loaded item.
|
||||
const confirmRename = async () => {
|
||||
if (!renamePlan || renamePlan.length === 0) return;
|
||||
setRenaming(true);
|
||||
@@ -805,7 +805,7 @@ export default function RenamePanel() {
|
||||
setRenamePlan((prev) => (prev ? prev.filter((p) => p.id !== id) : prev));
|
||||
};
|
||||
|
||||
// Rename history / undo - Renamr's only safety net beyond the confirm-before-execute
|
||||
// Rename history / undo - Aurora Curator's only safety net beyond the confirm-before-execute
|
||||
// step, since a filesystem rename has no OS-level undo. `execute_rename` records a
|
||||
// batch of every successfully-renamed file after each Rename; this panel lists those
|
||||
// batches and can revert one back to its original paths.
|
||||
@@ -1310,7 +1310,7 @@ export default function RenamePanel() {
|
||||
<p className="format-hint">
|
||||
Match scans filenames locally for season/episode or movie title/year patterns, plus release-tag text
|
||||
like resolution, source (BluRay/HDTV/WEB-DL/…), video/audio codec, and release group — none of this
|
||||
needs a network call, since it's all parsed straight from the filename itself (Renamr has no video/audio
|
||||
needs a network call, since it's all parsed straight from the filename itself (Aurora Curator has no video/audio
|
||||
file prober, so a tag that isn't in the filename text just won't be available). Fetch Data resolves the
|
||||
season/episode or movie guess against real TMDB metadata for the real title, episode title, and
|
||||
air/release date — needs a free TMDB API token set in <strong>TMDB Settings</strong> first. A batch can
|
||||
|
||||
@@ -47,7 +47,7 @@ export default function Sidebar({
|
||||
</ul>
|
||||
|
||||
<div className="sidebar-footer">
|
||||
<span className="sidebar-wordmark">Renamr</span>
|
||||
<span className="sidebar-wordmark">Aurora Curator</span>
|
||||
<span className="sidebar-version">v{APP_VERSION}</span>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
+3
-2
@@ -1,6 +1,7 @@
|
||||
/* Renamr "Aurora" theme — ported 1:1 (hex values) from the original FB-Mod fork's
|
||||
/* Aurora Curator's UI theme — ported 1:1 (hex values) from the original FB-Mod fork's
|
||||
AuroraTheme.java / HeaderPanel.java / MainFrame.java so the rewrite looks like a
|
||||
continuation of that design rather than a random restyle. */
|
||||
continuation of that design rather than a random restyle. (The app takes its name,
|
||||
"Aurora Curator", from this same Aurora theme.) */
|
||||
:root {
|
||||
--dock: #08252b;
|
||||
--dock-deep: #051115;
|
||||
|
||||
Reference in New Issue
Block a user