diff --git a/.gitignore b/.gitignore
index 426a94c..88ff6ff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -41,13 +41,12 @@ out/
.kotlin
### Custom ###
-docker-compose.yml
-generated
-db
-data
-packaged_plugins
-logs
-templates
+/generated
+/db
+/data
+/packaged_plugins
+/logs
+/templates
/gameyfin/src/main/frontend/**/*.js
/gameyfin/src/main/frontend/**/*.js.map
/gameyfin/src/main/bundles/
diff --git a/.run/GameyfinApplication.run.xml b/.run/GameyfinApplication.run.xml
index 2b37e24..1c36705 100644
--- a/.run/GameyfinApplication.run.xml
+++ b/.run/GameyfinApplication.run.xml
@@ -1,22 +1,23 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/gameyfin/build.gradle.kts b/app/build.gradle.kts
similarity index 97%
rename from gameyfin/build.gradle.kts
rename to app/build.gradle.kts
index 92b302c..17ba943 100644
--- a/gameyfin/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -1,5 +1,5 @@
group = "de.grimsi"
-val appMainClass = "de.grimsi.gameyfin.GameyfinApplicationKt"
+val appMainClass = "org.gameyfin.GameyfinApplicationKt"
plugins {
id("org.springframework.boot")
diff --git a/gameyfin/gradle/libs.versions.toml b/app/gradle/libs.versions.toml
similarity index 100%
rename from gameyfin/gradle/libs.versions.toml
rename to app/gradle/libs.versions.toml
diff --git a/gameyfin/gradle/wrapper/gradle-wrapper.jar b/app/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from gameyfin/gradle/wrapper/gradle-wrapper.jar
rename to app/gradle/wrapper/gradle-wrapper.jar
diff --git a/gameyfin/gradle/wrapper/gradle-wrapper.properties b/app/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from gameyfin/gradle/wrapper/gradle-wrapper.properties
rename to app/gradle/wrapper/gradle-wrapper.properties
diff --git a/gameyfin/gradlew b/app/gradlew
old mode 100755
new mode 100644
similarity index 100%
rename from gameyfin/gradlew
rename to app/gradlew
diff --git a/gameyfin/gradlew.bat b/app/gradlew.bat
similarity index 100%
rename from gameyfin/gradlew.bat
rename to app/gradlew.bat
diff --git a/gameyfin/heroui.ts b/app/heroui.ts
similarity index 100%
rename from gameyfin/heroui.ts
rename to app/heroui.ts
diff --git a/gameyfin/package-lock.json b/app/package-lock.json
similarity index 100%
rename from gameyfin/package-lock.json
rename to app/package-lock.json
diff --git a/gameyfin/package.json b/app/package.json
similarity index 100%
rename from gameyfin/package.json
rename to app/package.json
diff --git a/gameyfin/postcss.config.js b/app/postcss.config.js
similarity index 100%
rename from gameyfin/postcss.config.js
rename to app/postcss.config.js
diff --git a/app/src/main/bundles/prod.bundle b/app/src/main/bundles/prod.bundle
new file mode 100644
index 0000000..25fcf28
Binary files /dev/null and b/app/src/main/bundles/prod.bundle differ
diff --git a/gameyfin/src/main/frontend/App.tsx b/app/src/main/frontend/App.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/App.tsx
rename to app/src/main/frontend/App.tsx
diff --git a/gameyfin/src/main/frontend/components/ProfileMenu.tsx b/app/src/main/frontend/components/ProfileMenu.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/ProfileMenu.tsx
rename to app/src/main/frontend/components/ProfileMenu.tsx
diff --git a/gameyfin/src/main/frontend/components/administration/ConfigFormField.tsx b/app/src/main/frontend/components/administration/ConfigFormField.tsx
similarity index 95%
rename from gameyfin/src/main/frontend/components/administration/ConfigFormField.tsx
rename to app/src/main/frontend/components/administration/ConfigFormField.tsx
index 1e03040..9efa46f 100644
--- a/gameyfin/src/main/frontend/components/administration/ConfigFormField.tsx
+++ b/app/src/main/frontend/components/administration/ConfigFormField.tsx
@@ -1,4 +1,4 @@
-import ConfigEntryDto from "Frontend/generated/de/grimsi/gameyfin/config/dto/ConfigEntryDto";
+import ConfigEntryDto from "Frontend/generated/org/gameyfin/app/config/dto/ConfigEntryDto";
import React from "react";
import Input from "Frontend/components/general/input/Input";
import CheckboxInput from "Frontend/components/general/input/CheckboxInput";
diff --git a/gameyfin/src/main/frontend/components/administration/LibraryManagement.tsx b/app/src/main/frontend/components/administration/LibraryManagement.tsx
similarity index 95%
rename from gameyfin/src/main/frontend/components/administration/LibraryManagement.tsx
rename to app/src/main/frontend/components/administration/LibraryManagement.tsx
index cfb240c..11fa2e8 100644
--- a/gameyfin/src/main/frontend/components/administration/LibraryManagement.tsx
+++ b/app/src/main/frontend/components/administration/LibraryManagement.tsx
@@ -8,8 +8,8 @@ import {Plus} from "@phosphor-icons/react";
import {LibraryEndpoint} from "Frontend/generated/endpoints";
import {LibraryOverviewCard} from "Frontend/components/general/cards/LibraryOverviewCard";
import LibraryCreationModal from "Frontend/components/general/modals/LibraryCreationModal";
-import LibraryUpdateDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryUpdateDto";
-import LibraryDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryDto";
+import LibraryUpdateDto from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryUpdateDto";
+import LibraryDto from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryDto";
import {useSnapshot} from "valtio/react";
import {libraryState} from "Frontend/state/LibraryState";
diff --git a/gameyfin/src/main/frontend/components/administration/LogManagement.tsx b/app/src/main/frontend/components/administration/LogManagement.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/administration/LogManagement.tsx
rename to app/src/main/frontend/components/administration/LogManagement.tsx
diff --git a/gameyfin/src/main/frontend/components/administration/MessageManagement.tsx b/app/src/main/frontend/components/administration/MessageManagement.tsx
similarity index 98%
rename from gameyfin/src/main/frontend/components/administration/MessageManagement.tsx
rename to app/src/main/frontend/components/administration/MessageManagement.tsx
index 0e84ce5..8ad552b 100644
--- a/gameyfin/src/main/frontend/components/administration/MessageManagement.tsx
+++ b/app/src/main/frontend/components/administration/MessageManagement.tsx
@@ -5,7 +5,7 @@ import Section from "Frontend/components/general/Section";
import {addToast, Button, Card, Tooltip, useDisclosure} from "@heroui/react";
import {MessageEndpoint, MessageTemplateEndpoint} from "Frontend/generated/endpoints";
import {PaperPlaneRight, Pencil} from "@phosphor-icons/react";
-import MessageTemplateDto from "Frontend/generated/de/grimsi/gameyfin/messages/templates/MessageTemplateDto";
+import MessageTemplateDto from "Frontend/generated/org/gameyfin/app/messages/templates/MessageTemplateDto";
import SendTestNotificationModal from "Frontend/components/administration/messages/SendTestNotificationModal";
import EditTemplateModal from "Frontend/components/administration/messages/EditTemplateModel";
diff --git a/gameyfin/src/main/frontend/components/administration/PluginManagement.tsx b/app/src/main/frontend/components/administration/PluginManagement.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/administration/PluginManagement.tsx
rename to app/src/main/frontend/components/administration/PluginManagement.tsx
diff --git a/gameyfin/src/main/frontend/components/administration/ProfileManagement.tsx b/app/src/main/frontend/components/administration/ProfileManagement.tsx
similarity index 98%
rename from gameyfin/src/main/frontend/components/administration/ProfileManagement.tsx
rename to app/src/main/frontend/components/administration/ProfileManagement.tsx
index ae0808c..c965cc1 100644
--- a/gameyfin/src/main/frontend/components/administration/ProfileManagement.tsx
+++ b/app/src/main/frontend/components/administration/ProfileManagement.tsx
@@ -6,7 +6,7 @@ import {ArrowCounterClockwise, Check, Info, Trash} from "@phosphor-icons/react";
import React, {useEffect, useState} from "react";
import {useAuth} from "Frontend/util/auth";
import * as Yup from "yup";
-import UserUpdateDto from "Frontend/generated/de/grimsi/gameyfin/users/dto/UserUpdateDto";
+import UserUpdateDto from "Frontend/generated/org/gameyfin/app/users/dto/UserUpdateDto";
import {EmailConfirmationEndpoint, MessageEndpoint, UserEndpoint} from "Frontend/generated/endpoints";
import {SmallInfoField} from "Frontend/components/general/SmallInfoField";
import {removeAvatar, uploadAvatar} from "Frontend/endpoints/AvatarEndpoint";
diff --git a/gameyfin/src/main/frontend/components/administration/SsoManagement.tsx b/app/src/main/frontend/components/administration/SsoManagement.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/administration/SsoManagement.tsx
rename to app/src/main/frontend/components/administration/SsoManagement.tsx
diff --git a/gameyfin/src/main/frontend/components/administration/SystemManagement.tsx b/app/src/main/frontend/components/administration/SystemManagement.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/administration/SystemManagement.tsx
rename to app/src/main/frontend/components/administration/SystemManagement.tsx
diff --git a/gameyfin/src/main/frontend/components/administration/UserManagement.tsx b/app/src/main/frontend/components/administration/UserManagement.tsx
similarity index 96%
rename from gameyfin/src/main/frontend/components/administration/UserManagement.tsx
rename to app/src/main/frontend/components/administration/UserManagement.tsx
index 74a4a64..4c38313 100644
--- a/gameyfin/src/main/frontend/components/administration/UserManagement.tsx
+++ b/app/src/main/frontend/components/administration/UserManagement.tsx
@@ -3,7 +3,7 @@ import ConfigFormField from "Frontend/components/administration/ConfigFormField"
import withConfigPage from "Frontend/components/administration/withConfigPage";
import Section from "Frontend/components/general/Section";
import {UserEndpoint} from "Frontend/generated/endpoints";
-import UserInfoDto from "Frontend/generated/de/grimsi/gameyfin/users/dto/UserInfoDto";
+import UserInfoDto from "Frontend/generated/org/gameyfin/app/users/dto/UserInfoDto";
import {UserManagementCard} from "Frontend/components/general/cards/UserManagementCard";
import {SmallInfoField} from "Frontend/components/general/SmallInfoField";
import {Info, UserPlus} from "@phosphor-icons/react";
diff --git a/gameyfin/src/main/frontend/components/administration/messages/EditTemplateModel.tsx b/app/src/main/frontend/components/administration/messages/EditTemplateModel.tsx
similarity index 96%
rename from gameyfin/src/main/frontend/components/administration/messages/EditTemplateModel.tsx
rename to app/src/main/frontend/components/administration/messages/EditTemplateModel.tsx
index 6e81971..63604df 100644
--- a/gameyfin/src/main/frontend/components/administration/messages/EditTemplateModel.tsx
+++ b/app/src/main/frontend/components/administration/messages/EditTemplateModel.tsx
@@ -12,8 +12,8 @@ import {
Textarea
} from "@heroui/react";
import {MessageTemplateEndpoint} from "Frontend/generated/endpoints";
-import MessageTemplateDto from "Frontend/generated/de/grimsi/gameyfin/messages/templates/MessageTemplateDto";
-import TemplateType from "Frontend/generated/de/grimsi/gameyfin/messages/templates/TemplateType";
+import MessageTemplateDto from "Frontend/generated/org/gameyfin/app/messages/templates/MessageTemplateDto";
+import TemplateType from "Frontend/generated/org/gameyfin/app/messages/templates/TemplateType";
interface EditTemplateModalProps {
isOpen: boolean;
diff --git a/gameyfin/src/main/frontend/components/administration/messages/SendTestNotificationModal.tsx b/app/src/main/frontend/components/administration/messages/SendTestNotificationModal.tsx
similarity index 97%
rename from gameyfin/src/main/frontend/components/administration/messages/SendTestNotificationModal.tsx
rename to app/src/main/frontend/components/administration/messages/SendTestNotificationModal.tsx
index 3999955..7c2d065 100644
--- a/gameyfin/src/main/frontend/components/administration/messages/SendTestNotificationModal.tsx
+++ b/app/src/main/frontend/components/administration/messages/SendTestNotificationModal.tsx
@@ -4,7 +4,7 @@ import {addToast, Button, Modal, ModalBody, ModalContent, ModalFooter, ModalHead
import Input from "Frontend/components/general/input/Input";
import {MessageEndpoint} from "Frontend/generated/endpoints";
import * as Yup from "yup";
-import MessageTemplateDto from "Frontend/generated/de/grimsi/gameyfin/messages/templates/MessageTemplateDto";
+import MessageTemplateDto from "Frontend/generated/org/gameyfin/app/messages/templates/MessageTemplateDto";
interface SendTestNotificationModalProps {
isOpen: boolean;
diff --git a/gameyfin/src/main/frontend/components/administration/withConfigPage.tsx b/app/src/main/frontend/components/administration/withConfigPage.tsx
similarity index 98%
rename from gameyfin/src/main/frontend/components/administration/withConfigPage.tsx
rename to app/src/main/frontend/components/administration/withConfigPage.tsx
index 7ee261d..b49b766 100644
--- a/gameyfin/src/main/frontend/components/administration/withConfigPage.tsx
+++ b/app/src/main/frontend/components/administration/withConfigPage.tsx
@@ -1,6 +1,6 @@
import React, {useEffect, useState} from "react";
import {ConfigEndpoint} from "Frontend/generated/endpoints";
-import ConfigEntryDto from "Frontend/generated/de/grimsi/gameyfin/config/dto/ConfigEntryDto";
+import ConfigEntryDto from "Frontend/generated/org/gameyfin/app/config/dto/ConfigEntryDto";
import {Form, Formik} from "formik";
import {Button, Skeleton} from "@heroui/react";
import {Check, Info} from "@phosphor-icons/react";
diff --git a/gameyfin/src/main/frontend/components/general/Avatar.tsx b/app/src/main/frontend/components/general/Avatar.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/Avatar.tsx
rename to app/src/main/frontend/components/general/Avatar.tsx
diff --git a/gameyfin/src/main/frontend/components/general/IconBackgroundPattern.tsx b/app/src/main/frontend/components/general/IconBackgroundPattern.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/IconBackgroundPattern.tsx
rename to app/src/main/frontend/components/general/IconBackgroundPattern.tsx
diff --git a/gameyfin/src/main/frontend/components/general/RoleChip.tsx b/app/src/main/frontend/components/general/RoleChip.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/RoleChip.tsx
rename to app/src/main/frontend/components/general/RoleChip.tsx
diff --git a/gameyfin/src/main/frontend/components/general/ScanProgressPopover.tsx b/app/src/main/frontend/components/general/ScanProgressPopover.tsx
similarity index 96%
rename from gameyfin/src/main/frontend/components/general/ScanProgressPopover.tsx
rename to app/src/main/frontend/components/general/ScanProgressPopover.tsx
index 3804475..449cb4c 100644
--- a/gameyfin/src/main/frontend/components/general/ScanProgressPopover.tsx
+++ b/app/src/main/frontend/components/general/ScanProgressPopover.tsx
@@ -11,11 +11,11 @@ import {
} from "@heroui/react";
import {useSnapshot} from "valtio/react";
import {scanState} from "Frontend/state/ScanState";
-import LibraryScanProgress from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryScanProgress";
+import LibraryScanProgress from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryScanProgress";
import {libraryState} from "Frontend/state/LibraryState";
import {Target} from "@phosphor-icons/react";
import {timeBetween, timeUntil} from "Frontend/util/utils";
-import LibraryScanStatus from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryScanStatus";
+import LibraryScanStatus from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryScanStatus";
import {useEffect, useState} from "react";
export default function ScanProgressPopover() {
diff --git a/gameyfin/src/main/frontend/components/general/SearchBar.tsx b/app/src/main/frontend/components/general/SearchBar.tsx
similarity index 96%
rename from gameyfin/src/main/frontend/components/general/SearchBar.tsx
rename to app/src/main/frontend/components/general/SearchBar.tsx
index b160046..877e7dd 100644
--- a/gameyfin/src/main/frontend/components/general/SearchBar.tsx
+++ b/app/src/main/frontend/components/general/SearchBar.tsx
@@ -2,7 +2,7 @@ import {Autocomplete, AutocompleteItem} from "@heroui/react";
import {CaretRight, MagnifyingGlass} from "@phosphor-icons/react";
import {useSnapshot} from "valtio/react";
import {gameState} from "Frontend/state/GameState";
-import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto";
+import GameDto from "Frontend/generated/org/gameyfin/app/games/dto/GameDto";
import {useNavigate} from "react-router";
import {GameCover} from "Frontend/components/general/covers/GameCover";
diff --git a/gameyfin/src/main/frontend/components/general/Section.tsx b/app/src/main/frontend/components/general/Section.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/Section.tsx
rename to app/src/main/frontend/components/general/Section.tsx
diff --git a/gameyfin/src/main/frontend/components/general/SmallInfoField.tsx b/app/src/main/frontend/components/general/SmallInfoField.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/SmallInfoField.tsx
rename to app/src/main/frontend/components/general/SmallInfoField.tsx
diff --git a/gameyfin/src/main/frontend/components/general/cards/LibraryOverviewCard.tsx b/app/src/main/frontend/components/general/cards/LibraryOverviewCard.tsx
similarity index 92%
rename from gameyfin/src/main/frontend/components/general/cards/LibraryOverviewCard.tsx
rename to app/src/main/frontend/components/general/cards/LibraryOverviewCard.tsx
index 8dde4c2..a773b31 100644
--- a/gameyfin/src/main/frontend/components/general/cards/LibraryOverviewCard.tsx
+++ b/app/src/main/frontend/components/general/cards/LibraryOverviewCard.tsx
@@ -1,11 +1,11 @@
import {Button, Card, Chip, Tooltip} from "@heroui/react";
-import LibraryDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryDto";
-import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto";
+import LibraryDto from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryDto";
+import GameDto from "Frontend/generated/org/gameyfin/app/games/dto/GameDto";
import React from "react";
import {LibraryEndpoint} from "Frontend/generated/endpoints";
import {GameCover} from "Frontend/components/general/covers/GameCover";
import {MagnifyingGlass, SlidersHorizontal} from "@phosphor-icons/react";
-import ScanType from "Frontend/generated/de/grimsi/gameyfin/libraries/enums/ScanType";
+import ScanType from "Frontend/generated/org/gameyfin/app/libraries/enums/ScanType";
import {useNavigate} from "react-router";
import {useSnapshot} from "valtio/react";
import {gameState} from "Frontend/state/GameState";
diff --git a/gameyfin/src/main/frontend/components/general/cards/PluginManagementCard.tsx b/app/src/main/frontend/components/general/cards/PluginManagementCard.tsx
similarity index 94%
rename from gameyfin/src/main/frontend/components/general/cards/PluginManagementCard.tsx
rename to app/src/main/frontend/components/general/cards/PluginManagementCard.tsx
index 301a086..1dbb71a 100644
--- a/gameyfin/src/main/frontend/components/general/cards/PluginManagementCard.tsx
+++ b/app/src/main/frontend/components/general/cards/PluginManagementCard.tsx
@@ -19,13 +19,13 @@ import PluginState from "Frontend/generated/org/pf4j/PluginState";
import React, {ReactNode} from "react";
import PluginDetailsModal from "Frontend/components/general/modals/PluginDetailsModal";
import PluginLogo from "Frontend/components/general/plugin/PluginLogo";
-import PluginTrustLevel from "Frontend/generated/de/grimsi/gameyfin/core/plugins/management/PluginTrustLevel";
+import PluginTrustLevel from "Frontend/generated/org/gameyfin/app/core/plugins/management/PluginTrustLevel";
import {PluginEndpoint} from "Frontend/generated/endpoints";
-import PluginDto from "Frontend/generated/de/grimsi/gameyfin/core/plugins/dto/PluginDto";
+import PluginDto from "Frontend/generated/org/gameyfin/app/core/plugins/dto/PluginDto";
import PluginConfigValidationResult
- from "Frontend/generated/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigValidationResult";
+ from "Frontend/generated/org/gameyfin/pluginapi/core/config/PluginConfigValidationResult";
import PluginConfigValidationResultType
- from "Frontend/generated/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigValidationResultType";
+ from "Frontend/generated/org/gameyfin/pluginapi/core/config/PluginConfigValidationResultType";
export function PluginManagementCard({plugin}: { plugin: PluginDto }) {
const pluginDetailsModal = useDisclosure();
diff --git a/gameyfin/src/main/frontend/components/general/cards/UserManagementCard.tsx b/app/src/main/frontend/components/general/cards/UserManagementCard.tsx
similarity index 97%
rename from gameyfin/src/main/frontend/components/general/cards/UserManagementCard.tsx
rename to app/src/main/frontend/components/general/cards/UserManagementCard.tsx
index 86eec03..cd33c65 100644
--- a/gameyfin/src/main/frontend/components/general/cards/UserManagementCard.tsx
+++ b/app/src/main/frontend/components/general/cards/UserManagementCard.tsx
@@ -7,8 +7,8 @@ import {AvatarEndpoint} from "Frontend/endpoints/endpoints";
import Avatar from "Frontend/components/general/Avatar";
import ConfirmUserDeletionModal from "Frontend/components/general/modals/ConfirmUserDeletionModal";
import PasswordResetTokenModal from "Frontend/components/general/modals/PasswortResetTokenModal";
-import TokenDto from "Frontend/generated/de/grimsi/gameyfin/shared/token/TokenDto";
-import UserInfoDto from "Frontend/generated/de/grimsi/gameyfin/users/dto/UserInfoDto";
+import TokenDto from "Frontend/generated/org/gameyfin/app/shared/token/TokenDto";
+import UserInfoDto from "Frontend/generated/org/gameyfin/app/users/dto/UserInfoDto";
import RoleChip from "Frontend/components/general/RoleChip";
import AssignRolesModal from "Frontend/components/general/modals/AssignRolesModal";
diff --git a/gameyfin/src/main/frontend/components/general/covers/CoverGrid.tsx b/app/src/main/frontend/components/general/covers/CoverGrid.tsx
similarity index 85%
rename from gameyfin/src/main/frontend/components/general/covers/CoverGrid.tsx
rename to app/src/main/frontend/components/general/covers/CoverGrid.tsx
index b902c91..303703a 100644
--- a/gameyfin/src/main/frontend/components/general/covers/CoverGrid.tsx
+++ b/app/src/main/frontend/components/general/covers/CoverGrid.tsx
@@ -1,4 +1,4 @@
-import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto";
+import GameDto from "Frontend/generated/org/gameyfin/app/games/dto/GameDto";
import {GameCover} from "Frontend/components/general/covers/GameCover";
interface CoverGridProps {
diff --git a/gameyfin/src/main/frontend/components/general/covers/CoverRow.tsx b/app/src/main/frontend/components/general/covers/CoverRow.tsx
similarity index 97%
rename from gameyfin/src/main/frontend/components/general/covers/CoverRow.tsx
rename to app/src/main/frontend/components/general/covers/CoverRow.tsx
index 9880e6d..dbe1c1a 100644
--- a/gameyfin/src/main/frontend/components/general/covers/CoverRow.tsx
+++ b/app/src/main/frontend/components/general/covers/CoverRow.tsx
@@ -1,6 +1,6 @@
import React, {useEffect, useRef, useState} from "react";
import {GameCover} from "Frontend/components/general/covers/GameCover";
-import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto";
+import GameDto from "Frontend/generated/org/gameyfin/app/games/dto/GameDto";
import {ArrowRight} from "@phosphor-icons/react";
import {useNavigate} from "react-router";
diff --git a/gameyfin/src/main/frontend/components/general/covers/GameCover.tsx b/app/src/main/frontend/components/general/covers/GameCover.tsx
similarity index 93%
rename from gameyfin/src/main/frontend/components/general/covers/GameCover.tsx
rename to app/src/main/frontend/components/general/covers/GameCover.tsx
index 98c8443..00e99d7 100644
--- a/gameyfin/src/main/frontend/components/general/covers/GameCover.tsx
+++ b/app/src/main/frontend/components/general/covers/GameCover.tsx
@@ -1,4 +1,4 @@
-import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto";
+import GameDto from "Frontend/generated/org/gameyfin/app/games/dto/GameDto";
import {Image} from "@heroui/react";
import {GameCoverFallback} from "Frontend/components/general/covers/GameCoverFallback";
diff --git a/gameyfin/src/main/frontend/components/general/covers/GameCoverFallback.tsx b/app/src/main/frontend/components/general/covers/GameCoverFallback.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/covers/GameCoverFallback.tsx
rename to app/src/main/frontend/components/general/covers/GameCoverFallback.tsx
diff --git a/gameyfin/src/main/frontend/components/general/covers/ImageCarousel.tsx b/app/src/main/frontend/components/general/covers/ImageCarousel.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/covers/ImageCarousel.tsx
rename to app/src/main/frontend/components/general/covers/ImageCarousel.tsx
diff --git a/gameyfin/src/main/frontend/components/general/covers/LibraryHeader.tsx b/app/src/main/frontend/components/general/covers/LibraryHeader.tsx
similarity index 91%
rename from gameyfin/src/main/frontend/components/general/covers/LibraryHeader.tsx
rename to app/src/main/frontend/components/general/covers/LibraryHeader.tsx
index e2c603b..963195d 100644
--- a/gameyfin/src/main/frontend/components/general/covers/LibraryHeader.tsx
+++ b/app/src/main/frontend/components/general/covers/LibraryHeader.tsx
@@ -1,6 +1,6 @@
-import LibraryDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryDto";
+import LibraryDto from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryDto";
import React from "react";
-import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto";
+import GameDto from "Frontend/generated/org/gameyfin/app/games/dto/GameDto";
import {useSnapshot} from "valtio/react";
import {gameState} from "Frontend/state/GameState";
import IconBackgroundPattern from "Frontend/components/general/IconBackgroundPattern";
diff --git a/gameyfin/src/main/frontend/components/general/input/ArrayInput.tsx b/app/src/main/frontend/components/general/input/ArrayInput.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/input/ArrayInput.tsx
rename to app/src/main/frontend/components/general/input/ArrayInput.tsx
diff --git a/gameyfin/src/main/frontend/components/general/input/CheckboxInput.tsx b/app/src/main/frontend/components/general/input/CheckboxInput.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/input/CheckboxInput.tsx
rename to app/src/main/frontend/components/general/input/CheckboxInput.tsx
diff --git a/gameyfin/src/main/frontend/components/general/input/ComboButton.tsx b/app/src/main/frontend/components/general/input/ComboButton.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/input/ComboButton.tsx
rename to app/src/main/frontend/components/general/input/ComboButton.tsx
diff --git a/gameyfin/src/main/frontend/components/general/input/DatePickerInput.tsx b/app/src/main/frontend/components/general/input/DatePickerInput.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/input/DatePickerInput.tsx
rename to app/src/main/frontend/components/general/input/DatePickerInput.tsx
diff --git a/gameyfin/src/main/frontend/components/general/input/DirectoryMappingInput.tsx b/app/src/main/frontend/components/general/input/DirectoryMappingInput.tsx
similarity index 96%
rename from gameyfin/src/main/frontend/components/general/input/DirectoryMappingInput.tsx
rename to app/src/main/frontend/components/general/input/DirectoryMappingInput.tsx
index 7813eef..4174997 100644
--- a/gameyfin/src/main/frontend/components/general/input/DirectoryMappingInput.tsx
+++ b/app/src/main/frontend/components/general/input/DirectoryMappingInput.tsx
@@ -3,7 +3,7 @@ import {Button, Code, useDisclosure} from "@heroui/react";
import {ArrowRight, Minus, Plus, XCircle} from "@phosphor-icons/react";
import PathPickerModal from "Frontend/components/general/modals/PathPickerModal";
import {SmallInfoField} from "Frontend/components/general/SmallInfoField";
-import DirectoryMappingDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/DirectoryMappingDto";
+import DirectoryMappingDto from "Frontend/generated/org/gameyfin/app/libraries/dto/DirectoryMappingDto";
import {useField} from "formik";
interface DirectoryMappingInputProps {
diff --git a/gameyfin/src/main/frontend/components/general/input/FileTreeView.tsx b/app/src/main/frontend/components/general/input/FileTreeView.tsx
similarity index 95%
rename from gameyfin/src/main/frontend/components/general/input/FileTreeView.tsx
rename to app/src/main/frontend/components/general/input/FileTreeView.tsx
index 07a7387..08f4738 100644
--- a/gameyfin/src/main/frontend/components/general/input/FileTreeView.tsx
+++ b/app/src/main/frontend/components/general/input/FileTreeView.tsx
@@ -2,10 +2,10 @@ import TreeView, {flattenTree, INode, NodeId} from "react-accessible-treeview";
import {File, Folder, FolderOpen, IconContext} from "@phosphor-icons/react";
import {useEffect, useState} from "react";
import {FilesystemEndpoint} from "Frontend/generated/endpoints";
-import FileDto from "Frontend/generated/de/grimsi/gameyfin/core/filesystem/FileDto";
-import FileType from "Frontend/generated/de/grimsi/gameyfin/core/filesystem/FileType";
+import FileDto from "Frontend/generated/org/gameyfin/app/core/filesystem/FileDto";
+import FileType from "Frontend/generated/org/gameyfin/app/core/filesystem/FileType";
import {IFlatMetadata} from "react-accessible-treeview/dist/TreeView/utils";
-import OperatingSystemType from "Frontend/generated/de/grimsi/gameyfin/core/filesystem/OperatingSystemType";
+import OperatingSystemType from "Frontend/generated/org/gameyfin/app/core/filesystem/OperatingSystemType";
interface ITreeNode {
id?: NodeId;
diff --git a/gameyfin/src/main/frontend/components/general/input/GameCoverPicker.tsx b/app/src/main/frontend/components/general/input/GameCoverPicker.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/input/GameCoverPicker.tsx
rename to app/src/main/frontend/components/general/input/GameCoverPicker.tsx
diff --git a/gameyfin/src/main/frontend/components/general/input/Input.tsx b/app/src/main/frontend/components/general/input/Input.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/input/Input.tsx
rename to app/src/main/frontend/components/general/input/Input.tsx
diff --git a/gameyfin/src/main/frontend/components/general/input/SelectInput.tsx b/app/src/main/frontend/components/general/input/SelectInput.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/input/SelectInput.tsx
rename to app/src/main/frontend/components/general/input/SelectInput.tsx
diff --git a/gameyfin/src/main/frontend/components/general/input/TextAreaInput.tsx b/app/src/main/frontend/components/general/input/TextAreaInput.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/input/TextAreaInput.tsx
rename to app/src/main/frontend/components/general/input/TextAreaInput.tsx
diff --git a/gameyfin/src/main/frontend/components/general/library/LibraryManagementDetails.tsx b/app/src/main/frontend/components/general/library/LibraryManagementDetails.tsx
similarity index 94%
rename from gameyfin/src/main/frontend/components/general/library/LibraryManagementDetails.tsx
rename to app/src/main/frontend/components/general/library/LibraryManagementDetails.tsx
index 03e11bf..23cbb23 100644
--- a/gameyfin/src/main/frontend/components/general/library/LibraryManagementDetails.tsx
+++ b/app/src/main/frontend/components/general/library/LibraryManagementDetails.tsx
@@ -1,10 +1,10 @@
-import LibraryDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryDto";
+import LibraryDto from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryDto";
import {Check} from "@phosphor-icons/react";
import {addToast, Button} from "@heroui/react";
import React from "react";
import {Form, Formik} from "formik";
import {deepDiff} from "Frontend/util/utils";
-import LibraryUpdateDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryUpdateDto";
+import LibraryUpdateDto from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryUpdateDto";
import {LibraryEndpoint} from "Frontend/generated/endpoints";
import Input from "Frontend/components/general/input/Input";
import DirectoryMappingInput from "Frontend/components/general/input/DirectoryMappingInput";
diff --git a/gameyfin/src/main/frontend/components/general/library/LibraryManagementGames.tsx b/app/src/main/frontend/components/general/library/LibraryManagementGames.tsx
similarity index 97%
rename from gameyfin/src/main/frontend/components/general/library/LibraryManagementGames.tsx
rename to app/src/main/frontend/components/general/library/LibraryManagementGames.tsx
index a0dd2f9..de50c1b 100644
--- a/gameyfin/src/main/frontend/components/general/library/LibraryManagementGames.tsx
+++ b/app/src/main/frontend/components/general/library/LibraryManagementGames.tsx
@@ -1,5 +1,5 @@
-import LibraryDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryDto";
-import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto";
+import LibraryDto from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryDto";
+import GameDto from "Frontend/generated/org/gameyfin/app/games/dto/GameDto";
import {
Button,
Input,
@@ -21,7 +21,7 @@ import {CheckCircle, MagnifyingGlass, Pencil, Trash} from "@phosphor-icons/react
import {useSnapshot} from "valtio/react";
import {gameState} from "Frontend/state/GameState";
import {GameEndpoint} from "Frontend/generated/endpoints";
-import GameUpdateDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameUpdateDto";
+import GameUpdateDto from "Frontend/generated/org/gameyfin/app/games/dto/GameUpdateDto";
import {useMemo, useState} from "react";
import EditGameMetadataModal from "Frontend/components/general/modals/EditGameMetadataModal";
import MatchGameModal from "Frontend/components/general/modals/MatchGameModal";
diff --git a/gameyfin/src/main/frontend/components/general/library/LibraryManagementUnmatchedPaths.tsx b/app/src/main/frontend/components/general/library/LibraryManagementUnmatchedPaths.tsx
similarity index 96%
rename from gameyfin/src/main/frontend/components/general/library/LibraryManagementUnmatchedPaths.tsx
rename to app/src/main/frontend/components/general/library/LibraryManagementUnmatchedPaths.tsx
index a256b30..d1925f6 100644
--- a/gameyfin/src/main/frontend/components/general/library/LibraryManagementUnmatchedPaths.tsx
+++ b/app/src/main/frontend/components/general/library/LibraryManagementUnmatchedPaths.tsx
@@ -1,4 +1,4 @@
-import LibraryDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryDto";
+import LibraryDto from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryDto";
import {
Button,
Input,
@@ -16,7 +16,7 @@ import {
import {MagnifyingGlass, Trash} from "@phosphor-icons/react";
import {LibraryEndpoint} from "Frontend/generated/endpoints";
import {useMemo, useState} from "react";
-import LibraryUpdateDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryUpdateDto";
+import LibraryUpdateDto from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryUpdateDto";
import {fileNameFromPath, hashCode} from "Frontend/util/utils";
import MatchGameModal from "Frontend/components/general/modals/MatchGameModal";
diff --git a/gameyfin/src/main/frontend/components/general/modals/AssignRolesModal.tsx b/app/src/main/frontend/components/general/modals/AssignRolesModal.tsx
similarity index 95%
rename from gameyfin/src/main/frontend/components/general/modals/AssignRolesModal.tsx
rename to app/src/main/frontend/components/general/modals/AssignRolesModal.tsx
index d9783a5..58598c1 100644
--- a/gameyfin/src/main/frontend/components/general/modals/AssignRolesModal.tsx
+++ b/app/src/main/frontend/components/general/modals/AssignRolesModal.tsx
@@ -12,9 +12,9 @@ import {
SelectItem
} from "@heroui/react";
import {UserEndpoint} from "Frontend/generated/endpoints";
-import UserInfoDto from "Frontend/generated/de/grimsi/gameyfin/users/dto/UserInfoDto";
+import UserInfoDto from "Frontend/generated/org/gameyfin/app/users/dto/UserInfoDto";
import RoleChip from "Frontend/components/general/RoleChip";
-import RoleAssignmentResult from "Frontend/generated/de/grimsi/gameyfin/users/enums/RoleAssignmentResult";
+import RoleAssignmentResult from "Frontend/generated/org/gameyfin/app/users/enums/RoleAssignmentResult";
interface AssignRolesModalProps {
isOpen: boolean;
diff --git a/gameyfin/src/main/frontend/components/general/modals/ConfirmUserDeletionModal.tsx b/app/src/main/frontend/components/general/modals/ConfirmUserDeletionModal.tsx
similarity index 95%
rename from gameyfin/src/main/frontend/components/general/modals/ConfirmUserDeletionModal.tsx
rename to app/src/main/frontend/components/general/modals/ConfirmUserDeletionModal.tsx
index 1150c86..066a383 100644
--- a/gameyfin/src/main/frontend/components/general/modals/ConfirmUserDeletionModal.tsx
+++ b/app/src/main/frontend/components/general/modals/ConfirmUserDeletionModal.tsx
@@ -1,7 +1,7 @@
import React, {useEffect, useState} from "react";
import {Button, Code, Input, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader} from "@heroui/react";
import {UserEndpoint} from "Frontend/generated/endpoints";
-import UserInfoDto from "Frontend/generated/de/grimsi/gameyfin/users/dto/UserInfoDto";
+import UserInfoDto from "Frontend/generated/org/gameyfin/app/users/dto/UserInfoDto";
interface ConfirmUserDeletionModalProps {
isOpen: boolean;
diff --git a/gameyfin/src/main/frontend/components/general/modals/EditGameMetadataModal.tsx b/app/src/main/frontend/components/general/modals/EditGameMetadataModal.tsx
similarity index 97%
rename from gameyfin/src/main/frontend/components/general/modals/EditGameMetadataModal.tsx
rename to app/src/main/frontend/components/general/modals/EditGameMetadataModal.tsx
index 554de6c..b4886c7 100644
--- a/gameyfin/src/main/frontend/components/general/modals/EditGameMetadataModal.tsx
+++ b/app/src/main/frontend/components/general/modals/EditGameMetadataModal.tsx
@@ -1,4 +1,4 @@
-import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto";
+import GameDto from "Frontend/generated/org/gameyfin/app/games/dto/GameDto";
import {
Accordion,
AccordionItem,
@@ -12,7 +12,7 @@ import {
import {Form, Formik} from "formik";
import Input from "Frontend/components/general/input/Input";
import React from "react";
-import GameUpdateDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameUpdateDto";
+import GameUpdateDto from "Frontend/generated/org/gameyfin/app/games/dto/GameUpdateDto";
import {deepDiff} from "Frontend/util/utils";
import {GameEndpoint} from "Frontend/generated/endpoints";
import TextAreaInput from "Frontend/components/general/input/TextAreaInput";
diff --git a/gameyfin/src/main/frontend/components/general/modals/GameCoverPickerModal.tsx b/app/src/main/frontend/components/general/modals/GameCoverPickerModal.tsx
similarity index 96%
rename from gameyfin/src/main/frontend/components/general/modals/GameCoverPickerModal.tsx
rename to app/src/main/frontend/components/general/modals/GameCoverPickerModal.tsx
index 2508d01..cab5ff9 100644
--- a/gameyfin/src/main/frontend/components/general/modals/GameCoverPickerModal.tsx
+++ b/app/src/main/frontend/components/general/modals/GameCoverPickerModal.tsx
@@ -1,7 +1,7 @@
-import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto";
+import GameDto from "Frontend/generated/org/gameyfin/app/games/dto/GameDto";
import {Button, Image, Input, Modal, ModalBody, ModalContent, ModalHeader, ScrollShadow} from "@heroui/react";
import React, {useEffect, useState} from "react";
-import GameSearchResultDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameSearchResultDto";
+import GameSearchResultDto from "Frontend/generated/org/gameyfin/app/games/dto/GameSearchResultDto";
import {GameEndpoint} from "Frontend/generated/endpoints";
import {ArrowRight, MagnifyingGlass} from "@phosphor-icons/react";
diff --git a/gameyfin/src/main/frontend/components/general/modals/InviteUserModal.tsx b/app/src/main/frontend/components/general/modals/InviteUserModal.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/modals/InviteUserModal.tsx
rename to app/src/main/frontend/components/general/modals/InviteUserModal.tsx
diff --git a/gameyfin/src/main/frontend/components/general/modals/LibraryCreationModal.tsx b/app/src/main/frontend/components/general/modals/LibraryCreationModal.tsx
similarity index 98%
rename from gameyfin/src/main/frontend/components/general/modals/LibraryCreationModal.tsx
rename to app/src/main/frontend/components/general/modals/LibraryCreationModal.tsx
index af9a9b8..bc4f2d1 100644
--- a/gameyfin/src/main/frontend/components/general/modals/LibraryCreationModal.tsx
+++ b/app/src/main/frontend/components/general/modals/LibraryCreationModal.tsx
@@ -1,7 +1,7 @@
import React, {useState} from "react";
import {addToast, Button, Checkbox, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader} from "@heroui/react";
import {Form, Formik} from "formik";
-import LibraryDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryDto";
+import LibraryDto from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryDto";
import {LibraryEndpoint} from "Frontend/generated/endpoints";
import Input from "Frontend/components/general/input/Input";
import * as Yup from "yup";
diff --git a/gameyfin/src/main/frontend/components/general/modals/MatchGameModal.tsx b/app/src/main/frontend/components/general/modals/MatchGameModal.tsx
similarity index 98%
rename from gameyfin/src/main/frontend/components/general/modals/MatchGameModal.tsx
rename to app/src/main/frontend/components/general/modals/MatchGameModal.tsx
index 2f8863d..bacc7c1 100644
--- a/gameyfin/src/main/frontend/components/general/modals/MatchGameModal.tsx
+++ b/app/src/main/frontend/components/general/modals/MatchGameModal.tsx
@@ -15,7 +15,7 @@ import {
import React, {useEffect, useState} from "react";
import {ArrowRight, MagnifyingGlass} from "@phosphor-icons/react";
import {GameEndpoint} from "Frontend/generated/endpoints";
-import GameSearchResultDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameSearchResultDto";
+import GameSearchResultDto from "Frontend/generated/org/gameyfin/app/games/dto/GameSearchResultDto";
import PluginIcon from "../plugin/PluginIcon";
interface EditGameMetadataModalProps {
diff --git a/gameyfin/src/main/frontend/components/general/modals/PasswordResetModal.tsx b/app/src/main/frontend/components/general/modals/PasswordResetModal.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/modals/PasswordResetModal.tsx
rename to app/src/main/frontend/components/general/modals/PasswordResetModal.tsx
diff --git a/gameyfin/src/main/frontend/components/general/modals/PasswortResetTokenModal.tsx b/app/src/main/frontend/components/general/modals/PasswortResetTokenModal.tsx
similarity index 96%
rename from gameyfin/src/main/frontend/components/general/modals/PasswortResetTokenModal.tsx
rename to app/src/main/frontend/components/general/modals/PasswortResetTokenModal.tsx
index 5a6ca04..6574079 100644
--- a/gameyfin/src/main/frontend/components/general/modals/PasswortResetTokenModal.tsx
+++ b/app/src/main/frontend/components/general/modals/PasswortResetTokenModal.tsx
@@ -1,6 +1,6 @@
import React, {useEffect, useState} from "react";
import {Button, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader, Snippet} from "@heroui/react";
-import TokenDto from "Frontend/generated/de/grimsi/gameyfin/shared/token/TokenDto";
+import TokenDto from "Frontend/generated/org/gameyfin/app/shared/token/TokenDto";
import {timeUntil} from "Frontend/util/utils";
interface PasswordResetTokenModalProps {
diff --git a/gameyfin/src/main/frontend/components/general/modals/PathPickerModal.tsx b/app/src/main/frontend/components/general/modals/PathPickerModal.tsx
similarity index 97%
rename from gameyfin/src/main/frontend/components/general/modals/PathPickerModal.tsx
rename to app/src/main/frontend/components/general/modals/PathPickerModal.tsx
index 4a185dd..3db7420 100644
--- a/gameyfin/src/main/frontend/components/general/modals/PathPickerModal.tsx
+++ b/app/src/main/frontend/components/general/modals/PathPickerModal.tsx
@@ -3,7 +3,7 @@ import {Form, Formik} from "formik";
import React, {useEffect, useState} from "react";
import Input from "Frontend/components/general/input/Input";
import FileTreeView from "Frontend/components/general/input/FileTreeView";
-import DirectoryMappingDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/DirectoryMappingDto";
+import DirectoryMappingDto from "Frontend/generated/org/gameyfin/app/libraries/dto/DirectoryMappingDto";
import {ArrowRight} from "@phosphor-icons/react";
interface PathPickerModalProps {
diff --git a/gameyfin/src/main/frontend/components/general/modals/PluginDetailsModal.tsx b/app/src/main/frontend/components/general/modals/PluginDetailsModal.tsx
similarity index 98%
rename from gameyfin/src/main/frontend/components/general/modals/PluginDetailsModal.tsx
rename to app/src/main/frontend/components/general/modals/PluginDetailsModal.tsx
index 984ef4f..bc8cb72 100644
--- a/gameyfin/src/main/frontend/components/general/modals/PluginDetailsModal.tsx
+++ b/app/src/main/frontend/components/general/modals/PluginDetailsModal.tsx
@@ -5,9 +5,9 @@ import PluginLogo from "Frontend/components/general/plugin/PluginLogo";
import Markdown from "react-markdown";
import remarkBreaks from "remark-breaks";
import {PluginEndpoint} from "Frontend/generated/endpoints";
-import PluginDto from "Frontend/generated/de/grimsi/gameyfin/core/plugins/dto/PluginDto";
+import PluginDto from "Frontend/generated/org/gameyfin/app/core/plugins/dto/PluginDto";
import {ArrowClockwise} from "@phosphor-icons/react";
-import PluginConfigMetadataDto from "Frontend/generated/de/grimsi/gameyfin/core/plugins/dto/PluginConfigMetadataDto";
+import PluginConfigMetadataDto from "Frontend/generated/org/gameyfin/app/core/plugins/dto/PluginConfigMetadataDto";
import PluginConfigFormField from "Frontend/components/general/plugin/PluginConfigFormField";
interface PluginDetailsModalProps {
diff --git a/gameyfin/src/main/frontend/components/general/modals/PluginPrioritiesModal.tsx b/app/src/main/frontend/components/general/modals/PluginPrioritiesModal.tsx
similarity index 98%
rename from gameyfin/src/main/frontend/components/general/modals/PluginPrioritiesModal.tsx
rename to app/src/main/frontend/components/general/modals/PluginPrioritiesModal.tsx
index b77287f..9152608 100644
--- a/gameyfin/src/main/frontend/components/general/modals/PluginPrioritiesModal.tsx
+++ b/app/src/main/frontend/components/general/modals/PluginPrioritiesModal.tsx
@@ -3,7 +3,7 @@ import {addToast, Button, Chip, Modal, ModalBody, ModalContent, ModalFooter, Mod
import {ListBox, ListBoxItem, useDragAndDrop} from "react-aria-components";
import {CaretUpDown} from "@phosphor-icons/react";
import {useListData} from "@react-stately/data";
-import PluginDto from "Frontend/generated/de/grimsi/gameyfin/core/plugins/dto/PluginDto";
+import PluginDto from "Frontend/generated/org/gameyfin/app/core/plugins/dto/PluginDto";
import {PluginEndpoint} from "Frontend/generated/endpoints";
interface PluginPrioritiesModalProps {
diff --git a/gameyfin/src/main/frontend/components/general/modals/SignUpModal.tsx b/app/src/main/frontend/components/general/modals/SignUpModal.tsx
similarity index 97%
rename from gameyfin/src/main/frontend/components/general/modals/SignUpModal.tsx
rename to app/src/main/frontend/components/general/modals/SignUpModal.tsx
index fc0a76b..4c07005 100644
--- a/gameyfin/src/main/frontend/components/general/modals/SignUpModal.tsx
+++ b/app/src/main/frontend/components/general/modals/SignUpModal.tsx
@@ -1,7 +1,7 @@
import React from "react";
import {addToast, Button, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader} from "@heroui/react";
import {RegistrationEndpoint} from "Frontend/generated/endpoints";
-import UserRegistrationDto from "Frontend/generated/de/grimsi/gameyfin/users/dto/UserRegistrationDto";
+import UserRegistrationDto from "Frontend/generated/org/gameyfin/app/users/dto/UserRegistrationDto";
import {Form, Formik} from "formik";
import * as Yup from "yup";
import Input from "Frontend/components/general/input/Input";
diff --git a/gameyfin/src/main/frontend/components/general/plugin/PluginConfigFormField.tsx b/app/src/main/frontend/components/general/plugin/PluginConfigFormField.tsx
similarity index 95%
rename from gameyfin/src/main/frontend/components/general/plugin/PluginConfigFormField.tsx
rename to app/src/main/frontend/components/general/plugin/PluginConfigFormField.tsx
index 8ea1f44..652e45b 100644
--- a/gameyfin/src/main/frontend/components/general/plugin/PluginConfigFormField.tsx
+++ b/app/src/main/frontend/components/general/plugin/PluginConfigFormField.tsx
@@ -2,7 +2,7 @@ import SelectInput from "Frontend/components/general/input/SelectInput";
import CheckboxInput from "Frontend/components/general/input/CheckboxInput";
import Input from "Frontend/components/general/input/Input";
import React from "react";
-import PluginConfigMetadataDto from "Frontend/generated/de/grimsi/gameyfin/core/plugins/dto/PluginConfigMetadataDto";
+import PluginConfigMetadataDto from "Frontend/generated/org/gameyfin/app/core/plugins/dto/PluginConfigMetadataDto";
export default function PluginConfigFormField({pluginConfigMetadata, ...props}: any) {
function inputElement(metadata: PluginConfigMetadataDto) {
diff --git a/gameyfin/src/main/frontend/components/general/plugin/PluginIcon.tsx b/app/src/main/frontend/components/general/plugin/PluginIcon.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/plugin/PluginIcon.tsx
rename to app/src/main/frontend/components/general/plugin/PluginIcon.tsx
diff --git a/gameyfin/src/main/frontend/components/general/plugin/PluginLogo.tsx b/app/src/main/frontend/components/general/plugin/PluginLogo.tsx
similarity index 84%
rename from gameyfin/src/main/frontend/components/general/plugin/PluginLogo.tsx
rename to app/src/main/frontend/components/general/plugin/PluginLogo.tsx
index 112ea90..f4c2a95 100644
--- a/gameyfin/src/main/frontend/components/general/plugin/PluginLogo.tsx
+++ b/app/src/main/frontend/components/general/plugin/PluginLogo.tsx
@@ -1,7 +1,7 @@
import {Plug} from "@phosphor-icons/react";
import React from "react";
import {Image} from "@heroui/react";
-import PluginDto from "Frontend/generated/de/grimsi/gameyfin/core/plugins/dto/PluginDto";
+import PluginDto from "Frontend/generated/org/gameyfin/app/core/plugins/dto/PluginDto";
interface PluginLogoProps {
plugin: PluginDto;
diff --git a/gameyfin/src/main/frontend/components/general/plugin/PluginManagementSection.tsx b/app/src/main/frontend/components/general/plugin/PluginManagementSection.tsx
similarity index 95%
rename from gameyfin/src/main/frontend/components/general/plugin/PluginManagementSection.tsx
rename to app/src/main/frontend/components/general/plugin/PluginManagementSection.tsx
index 9155d4a..62ca5e8 100644
--- a/gameyfin/src/main/frontend/components/general/plugin/PluginManagementSection.tsx
+++ b/app/src/main/frontend/components/general/plugin/PluginManagementSection.tsx
@@ -4,7 +4,7 @@ import {PluginManagementCard} from "Frontend/components/general/cards/PluginMana
import React from "react";
import PluginPrioritiesModal from "Frontend/components/general/modals/PluginPrioritiesModal";
import {camelCaseToTitle} from "Frontend/util/utils";
-import PluginDto from "Frontend/generated/de/grimsi/gameyfin/core/plugins/dto/PluginDto";
+import PluginDto from "Frontend/generated/org/gameyfin/app/core/plugins/dto/PluginDto";
interface PluginManagementSectionProps {
type: string;
diff --git a/gameyfin/src/main/frontend/components/general/withSideMenu.tsx b/app/src/main/frontend/components/general/withSideMenu.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/general/withSideMenu.tsx
rename to app/src/main/frontend/components/general/withSideMenu.tsx
diff --git a/gameyfin/src/main/frontend/components/theming/GameyfinLogo.tsx b/app/src/main/frontend/components/theming/GameyfinLogo.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/theming/GameyfinLogo.tsx
rename to app/src/main/frontend/components/theming/GameyfinLogo.tsx
diff --git a/gameyfin/src/main/frontend/components/theming/ThemePreview.tsx b/app/src/main/frontend/components/theming/ThemePreview.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/theming/ThemePreview.tsx
rename to app/src/main/frontend/components/theming/ThemePreview.tsx
diff --git a/gameyfin/src/main/frontend/components/theming/ThemeSelector.tsx b/app/src/main/frontend/components/theming/ThemeSelector.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/theming/ThemeSelector.tsx
rename to app/src/main/frontend/components/theming/ThemeSelector.tsx
diff --git a/gameyfin/src/main/frontend/components/wizard/Wizard.tsx b/app/src/main/frontend/components/wizard/Wizard.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/wizard/Wizard.tsx
rename to app/src/main/frontend/components/wizard/Wizard.tsx
diff --git a/gameyfin/src/main/frontend/components/wizard/WizardStep.tsx b/app/src/main/frontend/components/wizard/WizardStep.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/components/wizard/WizardStep.tsx
rename to app/src/main/frontend/components/wizard/WizardStep.tsx
diff --git a/gameyfin/src/main/frontend/endpoints/AvatarEndpoint.ts b/app/src/main/frontend/endpoints/AvatarEndpoint.ts
similarity index 100%
rename from gameyfin/src/main/frontend/endpoints/AvatarEndpoint.ts
rename to app/src/main/frontend/endpoints/AvatarEndpoint.ts
diff --git a/gameyfin/src/main/frontend/endpoints/DownloadEndpoint.ts b/app/src/main/frontend/endpoints/DownloadEndpoint.ts
similarity index 100%
rename from gameyfin/src/main/frontend/endpoints/DownloadEndpoint.ts
rename to app/src/main/frontend/endpoints/DownloadEndpoint.ts
diff --git a/gameyfin/src/main/frontend/endpoints/endpoints.ts b/app/src/main/frontend/endpoints/endpoints.ts
similarity index 100%
rename from gameyfin/src/main/frontend/endpoints/endpoints.ts
rename to app/src/main/frontend/endpoints/endpoints.ts
diff --git a/gameyfin/src/main/frontend/index.html b/app/src/main/frontend/index.html
similarity index 100%
rename from gameyfin/src/main/frontend/index.html
rename to app/src/main/frontend/index.html
diff --git a/gameyfin/src/main/frontend/index.tsx b/app/src/main/frontend/index.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/index.tsx
rename to app/src/main/frontend/index.tsx
diff --git a/gameyfin/src/main/frontend/main.css b/app/src/main/frontend/main.css
similarity index 100%
rename from gameyfin/src/main/frontend/main.css
rename to app/src/main/frontend/main.css
diff --git a/gameyfin/src/main/frontend/routes.tsx b/app/src/main/frontend/routes.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/routes.tsx
rename to app/src/main/frontend/routes.tsx
diff --git a/gameyfin/src/main/frontend/state/ConfigState.ts b/app/src/main/frontend/state/ConfigState.ts
similarity index 91%
rename from gameyfin/src/main/frontend/state/ConfigState.ts
rename to app/src/main/frontend/state/ConfigState.ts
index 61aab5c..5bc4078 100644
--- a/gameyfin/src/main/frontend/state/ConfigState.ts
+++ b/app/src/main/frontend/state/ConfigState.ts
@@ -1,7 +1,7 @@
import {proxy} from 'valtio';
-import ConfigEntryDto from "Frontend/generated/de/grimsi/gameyfin/config/dto/ConfigEntryDto";
+import ConfigEntryDto from "Frontend/generated/org/gameyfin/app/config/dto/ConfigEntryDto";
import {ConfigEndpoint} from "Frontend/generated/endpoints";
-import ConfigUpdateDto from "Frontend/generated/de/grimsi/gameyfin/config/dto/ConfigUpdateDto";
+import ConfigUpdateDto from "Frontend/generated/org/gameyfin/app/config/dto/ConfigUpdateDto";
import {Subscription} from "@vaadin/hilla-frontend";
type ConfigState = {
diff --git a/gameyfin/src/main/frontend/state/GameState.ts b/app/src/main/frontend/state/GameState.ts
similarity index 96%
rename from gameyfin/src/main/frontend/state/GameState.ts
rename to app/src/main/frontend/state/GameState.ts
index 5ae0713..23e097d 100644
--- a/gameyfin/src/main/frontend/state/GameState.ts
+++ b/app/src/main/frontend/state/GameState.ts
@@ -1,8 +1,8 @@
import {Subscription} from "@vaadin/hilla-frontend";
import {proxy} from "valtio/index";
import {GameEndpoint} from "Frontend/generated/endpoints";
-import GameEvent from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryEvent";
-import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto";
+import GameEvent from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryEvent";
+import GameDto from "Frontend/generated/org/gameyfin/app/games/dto/GameDto";
import Rand from "rand-seed";
type GameState = {
diff --git a/gameyfin/src/main/frontend/state/LibraryState.ts b/app/src/main/frontend/state/LibraryState.ts
similarity index 91%
rename from gameyfin/src/main/frontend/state/LibraryState.ts
rename to app/src/main/frontend/state/LibraryState.ts
index 5f11f8c..a4a651d 100644
--- a/gameyfin/src/main/frontend/state/LibraryState.ts
+++ b/app/src/main/frontend/state/LibraryState.ts
@@ -1,8 +1,8 @@
import {Subscription} from "@vaadin/hilla-frontend";
import {proxy} from "valtio/index";
import {LibraryEndpoint} from "Frontend/generated/endpoints";
-import LibraryDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryDto";
-import LibraryEvent from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryEvent";
+import LibraryDto from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryDto";
+import LibraryEvent from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryEvent";
import {handleLibraryDeletion} from "./ScanState";
type LibraryState = {
diff --git a/gameyfin/src/main/frontend/state/PluginState.ts b/app/src/main/frontend/state/PluginState.ts
similarity index 92%
rename from gameyfin/src/main/frontend/state/PluginState.ts
rename to app/src/main/frontend/state/PluginState.ts
index 4a0198b..aecc300 100644
--- a/gameyfin/src/main/frontend/state/PluginState.ts
+++ b/app/src/main/frontend/state/PluginState.ts
@@ -1,6 +1,6 @@
import {Subscription} from "@vaadin/hilla-frontend";
-import PluginDto from "Frontend/generated/de/grimsi/gameyfin/core/plugins/dto/PluginDto";
-import PluginUpdateDto from "Frontend/generated/de/grimsi/gameyfin/core/plugins/dto/PluginUpdateDto";
+import PluginDto from "Frontend/generated/org/gameyfin/app/core/plugins/dto/PluginDto";
+import PluginUpdateDto from "Frontend/generated/org/gameyfin/app/core/plugins/dto/PluginUpdateDto";
import {proxy} from "valtio/index";
import {PluginEndpoint} from "Frontend/generated/endpoints";
diff --git a/gameyfin/src/main/frontend/state/ScanState.ts b/app/src/main/frontend/state/ScanState.ts
similarity index 89%
rename from gameyfin/src/main/frontend/state/ScanState.ts
rename to app/src/main/frontend/state/ScanState.ts
index e56ce2b..48a31bc 100644
--- a/gameyfin/src/main/frontend/state/ScanState.ts
+++ b/app/src/main/frontend/state/ScanState.ts
@@ -1,8 +1,8 @@
import {proxy} from 'valtio';
-import type LibraryScanProgress from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryScanProgress";
+import type LibraryScanProgress from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryScanProgress";
import {LibraryEndpoint} from "Frontend/generated/endpoints";
import {Subscription} from "@vaadin/hilla-frontend";
-import LibraryScanStatus from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryScanStatus";
+import LibraryScanStatus from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryScanStatus";
import {libraryState} from "Frontend/state/LibraryState";
type ScanState = {
diff --git a/gameyfin/src/main/frontend/theming/theme.ts b/app/src/main/frontend/theming/theme.ts
similarity index 100%
rename from gameyfin/src/main/frontend/theming/theme.ts
rename to app/src/main/frontend/theming/theme.ts
diff --git a/gameyfin/src/main/frontend/theming/themes.ts b/app/src/main/frontend/theming/themes.ts
similarity index 100%
rename from gameyfin/src/main/frontend/theming/themes.ts
rename to app/src/main/frontend/theming/themes.ts
diff --git a/gameyfin/src/main/frontend/theming/themes/blue.ts b/app/src/main/frontend/theming/themes/blue.ts
similarity index 100%
rename from gameyfin/src/main/frontend/theming/themes/blue.ts
rename to app/src/main/frontend/theming/themes/blue.ts
diff --git a/gameyfin/src/main/frontend/theming/themes/colorblind.ts b/app/src/main/frontend/theming/themes/colorblind.ts
similarity index 100%
rename from gameyfin/src/main/frontend/theming/themes/colorblind.ts
rename to app/src/main/frontend/theming/themes/colorblind.ts
diff --git a/gameyfin/src/main/frontend/theming/themes/gameyfin-blue.ts b/app/src/main/frontend/theming/themes/gameyfin-blue.ts
similarity index 100%
rename from gameyfin/src/main/frontend/theming/themes/gameyfin-blue.ts
rename to app/src/main/frontend/theming/themes/gameyfin-blue.ts
diff --git a/gameyfin/src/main/frontend/theming/themes/gameyfin-classic.ts b/app/src/main/frontend/theming/themes/gameyfin-classic.ts
similarity index 100%
rename from gameyfin/src/main/frontend/theming/themes/gameyfin-classic.ts
rename to app/src/main/frontend/theming/themes/gameyfin-classic.ts
diff --git a/gameyfin/src/main/frontend/theming/themes/gameyfin-violet.ts b/app/src/main/frontend/theming/themes/gameyfin-violet.ts
similarity index 100%
rename from gameyfin/src/main/frontend/theming/themes/gameyfin-violet.ts
rename to app/src/main/frontend/theming/themes/gameyfin-violet.ts
diff --git a/gameyfin/src/main/frontend/theming/themes/neutral.ts b/app/src/main/frontend/theming/themes/neutral.ts
similarity index 100%
rename from gameyfin/src/main/frontend/theming/themes/neutral.ts
rename to app/src/main/frontend/theming/themes/neutral.ts
diff --git a/gameyfin/src/main/frontend/theming/themes/orange.ts b/app/src/main/frontend/theming/themes/orange.ts
similarity index 100%
rename from gameyfin/src/main/frontend/theming/themes/orange.ts
rename to app/src/main/frontend/theming/themes/orange.ts
diff --git a/gameyfin/src/main/frontend/theming/themes/purple.ts b/app/src/main/frontend/theming/themes/purple.ts
similarity index 100%
rename from gameyfin/src/main/frontend/theming/themes/purple.ts
rename to app/src/main/frontend/theming/themes/purple.ts
diff --git a/gameyfin/src/main/frontend/theming/themes/red.ts b/app/src/main/frontend/theming/themes/red.ts
similarity index 100%
rename from gameyfin/src/main/frontend/theming/themes/red.ts
rename to app/src/main/frontend/theming/themes/red.ts
diff --git a/gameyfin/src/main/frontend/theming/themes/rose.ts b/app/src/main/frontend/theming/themes/rose.ts
similarity index 100%
rename from gameyfin/src/main/frontend/theming/themes/rose.ts
rename to app/src/main/frontend/theming/themes/rose.ts
diff --git a/gameyfin/src/main/frontend/theming/themes/slate.ts b/app/src/main/frontend/theming/themes/slate.ts
similarity index 100%
rename from gameyfin/src/main/frontend/theming/themes/slate.ts
rename to app/src/main/frontend/theming/themes/slate.ts
diff --git a/gameyfin/src/main/frontend/theming/themes/violet.ts b/app/src/main/frontend/theming/themes/violet.ts
similarity index 100%
rename from gameyfin/src/main/frontend/theming/themes/violet.ts
rename to app/src/main/frontend/theming/themes/violet.ts
diff --git a/gameyfin/src/main/frontend/theming/themes/yellow.ts b/app/src/main/frontend/theming/themes/yellow.ts
similarity index 100%
rename from gameyfin/src/main/frontend/theming/themes/yellow.ts
rename to app/src/main/frontend/theming/themes/yellow.ts
diff --git a/gameyfin/src/main/frontend/util/auth.ts b/app/src/main/frontend/util/auth.ts
similarity index 100%
rename from gameyfin/src/main/frontend/util/auth.ts
rename to app/src/main/frontend/util/auth.ts
diff --git a/gameyfin/src/main/frontend/util/custom-validators.ts b/app/src/main/frontend/util/custom-validators.ts
similarity index 100%
rename from gameyfin/src/main/frontend/util/custom-validators.ts
rename to app/src/main/frontend/util/custom-validators.ts
diff --git a/gameyfin/src/main/frontend/util/middleware.ts b/app/src/main/frontend/util/middleware.ts
similarity index 100%
rename from gameyfin/src/main/frontend/util/middleware.ts
rename to app/src/main/frontend/util/middleware.ts
diff --git a/gameyfin/src/main/frontend/util/routing.ts b/app/src/main/frontend/util/routing.ts
similarity index 100%
rename from gameyfin/src/main/frontend/util/routing.ts
rename to app/src/main/frontend/util/routing.ts
diff --git a/gameyfin/src/main/frontend/util/user-preference-service.ts b/app/src/main/frontend/util/user-preference-service.ts
similarity index 100%
rename from gameyfin/src/main/frontend/util/user-preference-service.ts
rename to app/src/main/frontend/util/user-preference-service.ts
diff --git a/gameyfin/src/main/frontend/util/utils.ts b/app/src/main/frontend/util/utils.ts
similarity index 100%
rename from gameyfin/src/main/frontend/util/utils.ts
rename to app/src/main/frontend/util/utils.ts
diff --git a/gameyfin/src/main/frontend/views/AdministrationView.tsx b/app/src/main/frontend/views/AdministrationView.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/views/AdministrationView.tsx
rename to app/src/main/frontend/views/AdministrationView.tsx
diff --git a/gameyfin/src/main/frontend/views/EmailConfirmationView.tsx b/app/src/main/frontend/views/EmailConfirmationView.tsx
similarity index 96%
rename from gameyfin/src/main/frontend/views/EmailConfirmationView.tsx
rename to app/src/main/frontend/views/EmailConfirmationView.tsx
index 36cd2c0..468706c 100644
--- a/gameyfin/src/main/frontend/views/EmailConfirmationView.tsx
+++ b/app/src/main/frontend/views/EmailConfirmationView.tsx
@@ -2,7 +2,7 @@ import {Card, CardBody, CardHeader} from "@heroui/react";
import {useNavigate, useSearchParams} from "react-router";
import React, {useEffect, useState} from "react";
import {CheckCircle, Warning, WarningCircle} from "@phosphor-icons/react";
-import TokenValidationResult from "Frontend/generated/de/grimsi/gameyfin/shared/token/TokenValidationResult";
+import TokenValidationResult from "Frontend/generated/org/gameyfin/app/shared/token/TokenValidationResult";
import {EmailConfirmationEndpoint} from "Frontend/generated/endpoints";
import {useAuth} from "Frontend/util/auth";
diff --git a/gameyfin/src/main/frontend/views/GameView.tsx b/app/src/main/frontend/views/GameView.tsx
similarity index 98%
rename from gameyfin/src/main/frontend/views/GameView.tsx
rename to app/src/main/frontend/views/GameView.tsx
index c42a268..d866847 100644
--- a/gameyfin/src/main/frontend/views/GameView.tsx
+++ b/app/src/main/frontend/views/GameView.tsx
@@ -9,12 +9,12 @@ import {humanFileSize, isAdmin, toTitleCase} from "Frontend/util/utils";
import {DownloadEndpoint} from "Frontend/endpoints/endpoints";
import {gameState, initializeGameState} from "Frontend/state/GameState";
import {useSnapshot} from "valtio/react";
-import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto";
+import GameDto from "Frontend/generated/org/gameyfin/app/games/dto/GameDto";
import {CheckCircle, Info, MagnifyingGlass, Pencil, Trash, TriangleDashed} from "@phosphor-icons/react";
import {useAuth} from "Frontend/util/auth";
import MatchGameModal from "Frontend/components/general/modals/MatchGameModal";
import EditGameMetadataModal from "Frontend/components/general/modals/EditGameMetadataModal";
-import GameUpdateDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameUpdateDto";
+import GameUpdateDto from "Frontend/generated/org/gameyfin/app/games/dto/GameUpdateDto";
import Markdown from "react-markdown";
import remarkBreaks from "remark-breaks";
diff --git a/gameyfin/src/main/frontend/views/HomeView.tsx b/app/src/main/frontend/views/HomeView.tsx
similarity index 93%
rename from gameyfin/src/main/frontend/views/HomeView.tsx
rename to app/src/main/frontend/views/HomeView.tsx
index 107219f..93f63bc 100644
--- a/gameyfin/src/main/frontend/views/HomeView.tsx
+++ b/app/src/main/frontend/views/HomeView.tsx
@@ -1,4 +1,4 @@
-import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto";
+import GameDto from "Frontend/generated/org/gameyfin/app/games/dto/GameDto";
import {CoverRow} from "Frontend/components/general/covers/CoverRow";
import {useSnapshot} from "valtio/react";
import {libraryState} from "Frontend/state/LibraryState";
diff --git a/gameyfin/src/main/frontend/views/InvitationRegistrationView.tsx b/app/src/main/frontend/views/InvitationRegistrationView.tsx
similarity index 98%
rename from gameyfin/src/main/frontend/views/InvitationRegistrationView.tsx
rename to app/src/main/frontend/views/InvitationRegistrationView.tsx
index b64377e..0d7e475 100644
--- a/gameyfin/src/main/frontend/views/InvitationRegistrationView.tsx
+++ b/app/src/main/frontend/views/InvitationRegistrationView.tsx
@@ -7,7 +7,7 @@ import {RegistrationEndpoint} from "Frontend/generated/endpoints";
import React, {useEffect, useState} from "react";
import {Warning} from "@phosphor-icons/react";
import UserInvitationAcceptanceResult
- from "Frontend/generated/de/grimsi/gameyfin/users/enums/UserInvitationAcceptanceResult";
+ from "Frontend/generated/org/gameyfin/app/users/enums/UserInvitationAcceptanceResult";
export default function InvitationRegistrationView() {
const [searchParams] = useSearchParams();
diff --git a/gameyfin/src/main/frontend/views/LibraryManagementView.tsx b/app/src/main/frontend/views/LibraryManagementView.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/views/LibraryManagementView.tsx
rename to app/src/main/frontend/views/LibraryManagementView.tsx
diff --git a/gameyfin/src/main/frontend/views/LibraryView.tsx b/app/src/main/frontend/views/LibraryView.tsx
similarity index 93%
rename from gameyfin/src/main/frontend/views/LibraryView.tsx
rename to app/src/main/frontend/views/LibraryView.tsx
index 4069167..d52badf 100644
--- a/gameyfin/src/main/frontend/views/LibraryView.tsx
+++ b/app/src/main/frontend/views/LibraryView.tsx
@@ -4,7 +4,7 @@ import {gameState} from "Frontend/state/GameState";
import React, {useEffect} from "react";
import {useNavigate, useParams} from "react-router";
import CoverGrid from "Frontend/components/general/covers/CoverGrid";
-import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto";
+import GameDto from "Frontend/generated/org/gameyfin/app/games/dto/GameDto";
export default function LibraryView() {
const {libraryId} = useParams();
diff --git a/gameyfin/src/main/frontend/views/LoginView.tsx b/app/src/main/frontend/views/LoginView.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/views/LoginView.tsx
rename to app/src/main/frontend/views/LoginView.tsx
diff --git a/gameyfin/src/main/frontend/views/MainLayout.tsx b/app/src/main/frontend/views/MainLayout.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/views/MainLayout.tsx
rename to app/src/main/frontend/views/MainLayout.tsx
diff --git a/gameyfin/src/main/frontend/views/PasswordResetView.tsx b/app/src/main/frontend/views/PasswordResetView.tsx
similarity index 97%
rename from gameyfin/src/main/frontend/views/PasswordResetView.tsx
rename to app/src/main/frontend/views/PasswordResetView.tsx
index 8028dea..223bbea 100644
--- a/gameyfin/src/main/frontend/views/PasswordResetView.tsx
+++ b/app/src/main/frontend/views/PasswordResetView.tsx
@@ -6,7 +6,7 @@ import * as Yup from "yup";
import {PasswordResetEndpoint} from "Frontend/generated/endpoints";
import React, {useEffect, useState} from "react";
import {Warning} from "@phosphor-icons/react";
-import TokenValidationResult from "Frontend/generated/de/grimsi/gameyfin/shared/token/TokenValidationResult";
+import TokenValidationResult from "Frontend/generated/org/gameyfin/app/shared/token/TokenValidationResult";
export default function PasswordResetView() {
const [searchParams, setSearchParams] = useSearchParams();
diff --git a/gameyfin/src/main/frontend/views/ProfileView.tsx b/app/src/main/frontend/views/ProfileView.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/views/ProfileView.tsx
rename to app/src/main/frontend/views/ProfileView.tsx
diff --git a/gameyfin/src/main/frontend/views/RecentlyAddedView.tsx b/app/src/main/frontend/views/RecentlyAddedView.tsx
similarity index 86%
rename from gameyfin/src/main/frontend/views/RecentlyAddedView.tsx
rename to app/src/main/frontend/views/RecentlyAddedView.tsx
index 45603bf..8a02161 100644
--- a/gameyfin/src/main/frontend/views/RecentlyAddedView.tsx
+++ b/app/src/main/frontend/views/RecentlyAddedView.tsx
@@ -1,6 +1,6 @@
import {useSnapshot} from "valtio/react";
import {gameState} from "Frontend/state/GameState";
-import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto";
+import GameDto from "Frontend/generated/org/gameyfin/app/games/dto/GameDto";
import React from "react";
import CoverGrid from "Frontend/components/general/covers/CoverGrid";
diff --git a/gameyfin/src/main/frontend/views/SearchView.tsx b/app/src/main/frontend/views/SearchView.tsx
similarity index 98%
rename from gameyfin/src/main/frontend/views/SearchView.tsx
rename to app/src/main/frontend/views/SearchView.tsx
index 8c4e17b..261141b 100644
--- a/gameyfin/src/main/frontend/views/SearchView.tsx
+++ b/app/src/main/frontend/views/SearchView.tsx
@@ -6,8 +6,8 @@ import {libraryState} from "Frontend/state/LibraryState";
import {useSearchParams} from "react-router";
import {useEffect, useMemo, useState} from "react";
import {Fzf} from "fzf";
-import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto";
-import LibraryDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryDto";
+import GameDto from "Frontend/generated/org/gameyfin/app/games/dto/GameDto";
+import LibraryDto from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryDto";
import CoverGrid from "Frontend/components/general/covers/CoverGrid";
import {toTitleCase} from "Frontend/util/utils";
diff --git a/gameyfin/src/main/frontend/views/SetupView.tsx b/app/src/main/frontend/views/SetupView.tsx
similarity index 100%
rename from gameyfin/src/main/frontend/views/SetupView.tsx
rename to app/src/main/frontend/views/SetupView.tsx
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/GameyfinApplication.kt b/app/src/main/kotlin/org/gameyfin/app/GameyfinApplication.kt
similarity index 95%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/GameyfinApplication.kt
rename to app/src/main/kotlin/org/gameyfin/app/GameyfinApplication.kt
index d1174e3..358b1ef 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/GameyfinApplication.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/GameyfinApplication.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin
+package org.gameyfin.app
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/ConfigEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/config/ConfigEndpoint.kt
similarity index 84%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/ConfigEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/config/ConfigEndpoint.kt
index bdc80e8..0077b70 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/ConfigEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/config/ConfigEndpoint.kt
@@ -1,13 +1,13 @@
-package de.grimsi.gameyfin.config
+package org.gameyfin.app.config
import com.vaadin.hilla.Endpoint
-import de.grimsi.gameyfin.config.dto.ConfigEntryDto
-import de.grimsi.gameyfin.config.dto.ConfigUpdateDto
-import de.grimsi.gameyfin.core.Role
-import de.grimsi.gameyfin.users.util.isAdmin
import io.github.oshai.kotlinlogging.KotlinLogging
import jakarta.annotation.security.PermitAll
import jakarta.annotation.security.RolesAllowed
+import org.gameyfin.app.config.dto.ConfigEntryDto
+import org.gameyfin.app.config.dto.ConfigUpdateDto
+import org.gameyfin.app.core.Role
+import org.gameyfin.app.users.util.isAdmin
import org.springframework.security.core.context.SecurityContextHolder
import org.springframework.security.core.userdetails.UserDetails
import reactor.core.publisher.Flux
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/ConfigProperties.kt b/app/src/main/kotlin/org/gameyfin/app/config/ConfigProperties.kt
similarity index 99%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/ConfigProperties.kt
rename to app/src/main/kotlin/org/gameyfin/app/config/ConfigProperties.kt
index 2214884..6034db7 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/ConfigProperties.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/config/ConfigProperties.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.config
+package org.gameyfin.app.config
import org.springframework.boot.logging.LogLevel
import java.io.Serializable
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/ConfigService.kt b/app/src/main/kotlin/org/gameyfin/app/config/ConfigService.kt
similarity index 97%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/ConfigService.kt
rename to app/src/main/kotlin/org/gameyfin/app/config/ConfigService.kt
index 818b976..2caa883 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/ConfigService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/config/ConfigService.kt
@@ -1,10 +1,10 @@
-package de.grimsi.gameyfin.config
+package org.gameyfin.app.config
-import de.grimsi.gameyfin.config.dto.ConfigEntryDto
-import de.grimsi.gameyfin.config.dto.ConfigUpdateDto
-import de.grimsi.gameyfin.config.entities.ConfigEntry
-import de.grimsi.gameyfin.config.persistence.ConfigRepository
import io.github.oshai.kotlinlogging.KotlinLogging
+import org.gameyfin.app.config.dto.ConfigEntryDto
+import org.gameyfin.app.config.dto.ConfigUpdateDto
+import org.gameyfin.app.config.entities.ConfigEntry
+import org.gameyfin.app.config.persistence.ConfigRepository
import org.springframework.data.repository.findByIdOrNull
import org.springframework.stereotype.Service
import reactor.core.publisher.Flux
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/dto/ConfigEntryDto.kt b/app/src/main/kotlin/org/gameyfin/app/config/dto/ConfigEntryDto.kt
similarity index 90%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/dto/ConfigEntryDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/config/dto/ConfigEntryDto.kt
index ef69b3c..30f632a 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/dto/ConfigEntryDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/config/dto/ConfigEntryDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.config.dto
+package org.gameyfin.app.config.dto
import com.fasterxml.jackson.annotation.JsonInclude
import java.io.Serializable
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/dto/ConfigUpdateDto.kt b/app/src/main/kotlin/org/gameyfin/app/config/dto/ConfigUpdateDto.kt
similarity index 69%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/dto/ConfigUpdateDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/config/dto/ConfigUpdateDto.kt
index 5452d63..182c53f 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/dto/ConfigUpdateDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/config/dto/ConfigUpdateDto.kt
@@ -1,7 +1,7 @@
-package de.grimsi.gameyfin.config.dto
+package org.gameyfin.app.config.dto
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
-import de.grimsi.gameyfin.core.serialization.ArrayDeserializer
+import org.gameyfin.app.core.serialization.ArrayDeserializer
import java.io.Serializable
data class ConfigUpdateDto(
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/entities/ConfigEntry.kt b/app/src/main/kotlin/org/gameyfin/app/config/entities/ConfigEntry.kt
similarity index 72%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/entities/ConfigEntry.kt
rename to app/src/main/kotlin/org/gameyfin/app/config/entities/ConfigEntry.kt
index dcf4217..64fe3cf 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/entities/ConfigEntry.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/config/entities/ConfigEntry.kt
@@ -1,7 +1,7 @@
-package de.grimsi.gameyfin.config.entities
+package org.gameyfin.app.config.entities
-import de.grimsi.gameyfin.core.security.EncryptionConverter
import jakarta.persistence.*
+import org.gameyfin.app.core.security.EncryptionConverter
@Entity
@Table(name = "app_config")
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/persistence/ConfigRepository.kt b/app/src/main/kotlin/org/gameyfin/app/config/persistence/ConfigRepository.kt
similarity index 55%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/persistence/ConfigRepository.kt
rename to app/src/main/kotlin/org/gameyfin/app/config/persistence/ConfigRepository.kt
index d69fc3b..76e0c21 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/config/persistence/ConfigRepository.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/config/persistence/ConfigRepository.kt
@@ -1,6 +1,6 @@
-package de.grimsi.gameyfin.config.persistence
+package org.gameyfin.app.config.persistence
-import de.grimsi.gameyfin.config.entities.ConfigEntry
+import org.gameyfin.app.config.entities.ConfigEntry
import org.springframework.data.jpa.repository.JpaRepository
interface ConfigRepository : JpaRepository
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/Role.kt b/app/src/main/kotlin/org/gameyfin/app/core/Role.kt
similarity index 50%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/Role.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/Role.kt
index 22d264c..0401300 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/Role.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/Role.kt
@@ -1,8 +1,9 @@
-package de.grimsi.gameyfin.core
+package org.gameyfin.app.core
import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonValue
-import de.grimsi.gameyfin.users.RoleService.Companion.INTERNAL_ROLE_PREFIX
+import org.gameyfin.app.users.RoleService
+import java.lang.Enum
enum class Role(val roleName: String, val powerLevel: Int) {
@@ -20,22 +21,22 @@ enum class Role(val roleName: String, val powerLevel: Int) {
@JsonCreator
@JvmStatic
fun fromValue(value: String): Role? {
- val enumString = value.removePrefix(INTERNAL_ROLE_PREFIX)
- return Role.entries.find { it.roleName == enumString }
+ val enumString = value.removePrefix(RoleService.Companion.INTERNAL_ROLE_PREFIX)
+ return entries.find { it.roleName == enumString }
}
fun safeValueOf(type: String): Role? {
- val enumString = type.removePrefix(INTERNAL_ROLE_PREFIX)
- return java.lang.Enum.valueOf(Role::class.java, enumString)
+ val enumString = type.removePrefix(RoleService.Companion.INTERNAL_ROLE_PREFIX)
+ return Enum.valueOf(Role::class.java, enumString)
}
}
// necessary for the ability to use the Roles class in the @RolesAllowed annotation
class Names {
companion object {
- const val SUPERADMIN = "${INTERNAL_ROLE_PREFIX}SUPERADMIN"
- const val ADMIN = "${INTERNAL_ROLE_PREFIX}ADMIN"
- const val USER = "${INTERNAL_ROLE_PREFIX}USER"
+ const val SUPERADMIN = "${RoleService.Companion.INTERNAL_ROLE_PREFIX}SUPERADMIN"
+ const val ADMIN = "${RoleService.Companion.INTERNAL_ROLE_PREFIX}ADMIN"
+ const val USER = "${RoleService.Companion.INTERNAL_ROLE_PREFIX}USER"
}
}
}
\ No newline at end of file
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/SetupDataLoader.kt b/app/src/main/kotlin/org/gameyfin/app/core/SetupDataLoader.kt
similarity index 92%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/SetupDataLoader.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/SetupDataLoader.kt
index 7fefa37..6ef13a3 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/SetupDataLoader.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/SetupDataLoader.kt
@@ -1,9 +1,9 @@
-package de.grimsi.gameyfin.core
+package org.gameyfin.app.core
-import de.grimsi.gameyfin.setup.SetupService
-import de.grimsi.gameyfin.users.UserService
-import de.grimsi.gameyfin.users.entities.User
+import org.gameyfin.app.setup.SetupService
+import org.gameyfin.app.users.UserService
import io.github.oshai.kotlinlogging.KotlinLogging
+import org.gameyfin.app.users.entities.User
import org.springframework.boot.context.event.ApplicationReadyEvent
import org.springframework.context.event.EventListener
import org.springframework.core.env.Environment
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/Utils.kt b/app/src/main/kotlin/org/gameyfin/app/core/Utils.kt
similarity index 98%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/Utils.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/Utils.kt
index 342b0a0..6409c68 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/Utils.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/Utils.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core
+package org.gameyfin.app.core
import org.apache.tika.Tika
import org.springframework.core.io.ByteArrayResource
@@ -7,6 +7,7 @@ import org.springframework.http.MediaType
import org.springframework.http.ResponseEntity
import org.springframework.web.context.request.RequestContextHolder
import org.springframework.web.context.request.ServletRequestAttributes
+import kotlin.text.iterator
class Utils {
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/annotations/DynamicAccessInterceptor.kt b/app/src/main/kotlin/org/gameyfin/app/core/annotations/DynamicAccessInterceptor.kt
similarity index 89%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/annotations/DynamicAccessInterceptor.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/annotations/DynamicAccessInterceptor.kt
index 56800a0..8595a18 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/annotations/DynamicAccessInterceptor.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/annotations/DynamicAccessInterceptor.kt
@@ -1,9 +1,9 @@
-package de.grimsi.gameyfin.core.annotations
+package org.gameyfin.app.core.annotations
-import de.grimsi.gameyfin.config.ConfigProperties
-import de.grimsi.gameyfin.config.ConfigService
+import org.gameyfin.app.config.ConfigService
import jakarta.servlet.http.HttpServletRequest
import jakarta.servlet.http.HttpServletResponse
+import org.gameyfin.app.config.ConfigProperties
import org.springframework.stereotype.Component
import org.springframework.web.method.HandlerMethod
import org.springframework.web.servlet.HandlerInterceptor
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/annotations/DynamicPublicAccess.kt b/app/src/main/kotlin/org/gameyfin/app/core/annotations/DynamicPublicAccess.kt
similarity index 90%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/annotations/DynamicPublicAccess.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/annotations/DynamicPublicAccess.kt
index 92076a3..4176bc5 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/annotations/DynamicPublicAccess.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/annotations/DynamicPublicAccess.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.annotations
+package org.gameyfin.app.core.annotations
import kotlin.annotation.AnnotationRetention.RUNTIME
import kotlin.annotation.AnnotationTarget.CLASS
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/annotations/NullOrNotBlank.kt b/app/src/main/kotlin/org/gameyfin/app/core/annotations/NullOrNotBlank.kt
similarity index 91%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/annotations/NullOrNotBlank.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/annotations/NullOrNotBlank.kt
index 006683f..a6f0913 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/annotations/NullOrNotBlank.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/annotations/NullOrNotBlank.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.annotations
+package org.gameyfin.app.core.annotations
import jakarta.validation.Constraint
import jakarta.validation.Payload
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/annotations/NullOrNotBlankValidator.kt b/app/src/main/kotlin/org/gameyfin/app/core/annotations/NullOrNotBlankValidator.kt
similarity index 88%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/annotations/NullOrNotBlankValidator.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/annotations/NullOrNotBlankValidator.kt
index fcd2d1d..a58b5e5 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/annotations/NullOrNotBlankValidator.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/annotations/NullOrNotBlankValidator.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.annotations
+package org.gameyfin.app.core.annotations
import jakarta.validation.ConstraintValidator
import jakarta.validation.ConstraintValidatorContext
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/development/DelayInterceptor.kt b/app/src/main/kotlin/org/gameyfin/app/core/development/DelayInterceptor.kt
similarity index 92%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/development/DelayInterceptor.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/development/DelayInterceptor.kt
index eb87e43..89c55c9 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/development/DelayInterceptor.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/development/DelayInterceptor.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.development
+package org.gameyfin.app.core.development
import jakarta.servlet.http.HttpServletRequest
import jakarta.servlet.http.HttpServletResponse
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/download/DownloadEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/core/download/DownloadEndpoint.kt
similarity index 82%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/download/DownloadEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/download/DownloadEndpoint.kt
index c4d22a0..b5f604d 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/download/DownloadEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/download/DownloadEndpoint.kt
@@ -1,9 +1,9 @@
-package de.grimsi.gameyfin.core.download
+package org.gameyfin.app.core.download
-import de.grimsi.gameyfin.core.annotations.DynamicPublicAccess
-import de.grimsi.gameyfin.games.GameService
-import de.grimsi.gameyfin.pluginapi.download.FileDownload
-import de.grimsi.gameyfin.pluginapi.download.LinkDownload
+import org.gameyfin.app.core.annotations.DynamicPublicAccess
+import org.gameyfin.app.games.GameService
+import org.gameyfin.pluginapi.download.FileDownload
+import org.gameyfin.pluginapi.download.LinkDownload
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/download/DownloadProviderDto.kt b/app/src/main/kotlin/org/gameyfin/app/core/download/DownloadProviderDto.kt
similarity index 86%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/download/DownloadProviderDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/download/DownloadProviderDto.kt
index eb1e59c..ce828d8 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/download/DownloadProviderDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/download/DownloadProviderDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.download
+package org.gameyfin.app.core.download
import com.fasterxml.jackson.annotation.JsonInclude
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/download/DownloadProviderEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/core/download/DownloadProviderEndpoint.kt
similarity index 88%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/download/DownloadProviderEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/download/DownloadProviderEndpoint.kt
index ce874bf..933b1f8 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/download/DownloadProviderEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/download/DownloadProviderEndpoint.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.download
+package org.gameyfin.app.core.download
import com.vaadin.hilla.Endpoint
import jakarta.annotation.security.PermitAll
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/download/DownloadService.kt b/app/src/main/kotlin/org/gameyfin/app/core/download/DownloadService.kt
similarity index 80%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/download/DownloadService.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/download/DownloadService.kt
index 0404f70..efed758 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/download/DownloadService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/download/DownloadService.kt
@@ -1,9 +1,9 @@
-package de.grimsi.gameyfin.core.download
+package org.gameyfin.app.core.download
-import de.grimsi.gameyfin.core.plugins.management.GameyfinPluginDescriptor
-import de.grimsi.gameyfin.core.plugins.management.GameyfinPluginManager
-import de.grimsi.gameyfin.pluginapi.download.Download
-import de.grimsi.gameyfin.pluginapi.download.DownloadProvider
+import org.gameyfin.app.core.plugins.management.GameyfinPluginDescriptor
+import org.gameyfin.app.core.plugins.management.GameyfinPluginManager
+import org.gameyfin.pluginapi.download.Download
+import org.gameyfin.pluginapi.download.DownloadProvider
import org.springframework.stereotype.Service
import kotlin.io.path.Path
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/events/Events.kt b/app/src/main/kotlin/org/gameyfin/app/core/events/Events.kt
similarity index 63%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/events/Events.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/events/Events.kt
index 7fdb782..db5131b 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/events/Events.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/events/Events.kt
@@ -1,24 +1,24 @@
-package de.grimsi.gameyfin.core.events
+package org.gameyfin.app.core.events
-import de.grimsi.gameyfin.shared.token.Token
-import de.grimsi.gameyfin.shared.token.TokenType.*
-import de.grimsi.gameyfin.users.entities.User
+import org.gameyfin.app.shared.token.Token
+import org.gameyfin.app.shared.token.TokenType
+import org.gameyfin.app.users.entities.User
import org.springframework.context.ApplicationEvent
-class UserInvitationEvent(source: Any, val token: Token, val baseUrl: String, val email: String) :
+class UserInvitationEvent(source: Any, val token: Token, val baseUrl: String, val email: String) :
ApplicationEvent(source)
class UserRegistrationWaitingForApprovalEvent(source: Any, val newUser: User) : ApplicationEvent(source)
class AccountStatusChangedEvent(source: Any, val user: User, val baseUrl: String) : ApplicationEvent(source)
-class EmailNeedsConfirmationEvent(source: Any, val token: Token, val baseUrl: String) :
+class EmailNeedsConfirmationEvent(source: Any, val token: Token, val baseUrl: String) :
ApplicationEvent(source)
class RegistrationAttemptWithExistingEmailEvent(source: Any, val existingUser: User, val baseUrl: String) :
ApplicationEvent(source)
-class PasswordResetRequestEvent(source: Any, val token: Token, val baseUrl: String) :
+class PasswordResetRequestEvent(source: Any, val token: Token, val baseUrl: String) :
ApplicationEvent(source)
class AccountDeletedEvent(source: Any, val user: User, val baseUrl: String) : ApplicationEvent(source)
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FileDto.kt b/app/src/main/kotlin/org/gameyfin/app/core/filesystem/FileDto.kt
similarity index 66%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FileDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/filesystem/FileDto.kt
index 00f22cd..d8e216d 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FileDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/filesystem/FileDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.filesystem
+package org.gameyfin.app.core.filesystem
data class FileDto(
val name: String,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FileType.kt b/app/src/main/kotlin/org/gameyfin/app/core/filesystem/FileType.kt
similarity index 53%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FileType.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/filesystem/FileType.kt
index 8136f26..d24b102 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FileType.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/filesystem/FileType.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.filesystem
+package org.gameyfin.app.core.filesystem
enum class FileType {
FILE,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FilesystemEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/core/filesystem/FilesystemEndpoint.kt
similarity index 85%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FilesystemEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/filesystem/FilesystemEndpoint.kt
index c1cfbe5..8c935b7 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FilesystemEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/filesystem/FilesystemEndpoint.kt
@@ -1,8 +1,8 @@
-package de.grimsi.gameyfin.core.filesystem
+package org.gameyfin.app.core.filesystem
import com.vaadin.hilla.Endpoint
-import de.grimsi.gameyfin.core.Role
import jakarta.annotation.security.RolesAllowed
+import org.gameyfin.app.core.Role
@Endpoint
@RolesAllowed(Role.Names.ADMIN)
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FilesystemScanResult.kt b/app/src/main/kotlin/org/gameyfin/app/core/filesystem/FilesystemScanResult.kt
similarity index 80%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FilesystemScanResult.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/filesystem/FilesystemScanResult.kt
index 86eb2db..8bb0f7f 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FilesystemScanResult.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/filesystem/FilesystemScanResult.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.filesystem
+package org.gameyfin.app.core.filesystem
import java.nio.file.Path
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FilesystemService.kt b/app/src/main/kotlin/org/gameyfin/app/core/filesystem/FilesystemService.kt
similarity index 97%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FilesystemService.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/filesystem/FilesystemService.kt
index 9ec1ec9..f126d77 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/FilesystemService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/filesystem/FilesystemService.kt
@@ -1,10 +1,10 @@
-package de.grimsi.gameyfin.core.filesystem
+package org.gameyfin.app.core.filesystem
-import de.grimsi.gameyfin.config.ConfigProperties
-import de.grimsi.gameyfin.config.ConfigService
-import de.grimsi.gameyfin.libraries.Library
+import org.gameyfin.app.config.ConfigService
import io.github.oshai.kotlinlogging.KotlinLogging
import org.apache.commons.io.FilenameUtils
+import org.gameyfin.app.config.ConfigProperties
+import org.gameyfin.app.libraries.Library
import org.springframework.stereotype.Service
import java.io.File
import java.nio.file.FileSystems
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/OperatingSystemType.kt b/app/src/main/kotlin/org/gameyfin/app/core/filesystem/OperatingSystemType.kt
similarity index 65%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/OperatingSystemType.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/filesystem/OperatingSystemType.kt
index 8c40b25..ec3b269 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/filesystem/OperatingSystemType.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/filesystem/OperatingSystemType.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.filesystem
+package org.gameyfin.app.core.filesystem
enum class OperatingSystemType {
WINDOWS,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/logging/LogEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/core/logging/LogEndpoint.kt
similarity index 85%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/logging/LogEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/logging/LogEndpoint.kt
index ae52aeb..d455884 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/logging/LogEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/logging/LogEndpoint.kt
@@ -1,10 +1,10 @@
-package de.grimsi.gameyfin.core.logging
+package org.gameyfin.app.core.logging
import com.vaadin.hilla.Endpoint
-import de.grimsi.gameyfin.core.Role
-import de.grimsi.gameyfin.users.util.isAdmin
import jakarta.annotation.security.PermitAll
import jakarta.annotation.security.RolesAllowed
+import org.gameyfin.app.core.Role
+import org.gameyfin.app.users.util.isAdmin
import org.springframework.security.core.context.SecurityContextHolder
import org.springframework.security.core.userdetails.UserDetails
import reactor.core.publisher.Flux
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/logging/LogService.kt b/app/src/main/kotlin/org/gameyfin/app/core/logging/LogService.kt
similarity index 94%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/logging/LogService.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/logging/LogService.kt
index 97b702a..3518963 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/logging/LogService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/logging/LogService.kt
@@ -1,11 +1,11 @@
-package de.grimsi.gameyfin.core.logging
+package org.gameyfin.app.core.logging
import ch.qos.logback.classic.LoggerContext
import ch.qos.logback.classic.joran.JoranConfigurator
-import de.grimsi.gameyfin.config.ConfigProperties
-import de.grimsi.gameyfin.config.ConfigService
-import de.grimsi.gameyfin.core.logging.util.AsyncFileTailer
+import org.gameyfin.app.config.ConfigService
import io.github.oshai.kotlinlogging.KotlinLogging
+import org.gameyfin.app.config.ConfigProperties
+import org.gameyfin.app.core.logging.util.AsyncFileTailer
import org.slf4j.LoggerFactory
import org.springframework.boot.context.event.ApplicationStartedEvent
import org.springframework.boot.logging.LogLevel
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/logging/dto/LogConfigDto.kt b/app/src/main/kotlin/org/gameyfin/app/core/logging/dto/LogConfigDto.kt
similarity index 78%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/logging/dto/LogConfigDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/logging/dto/LogConfigDto.kt
index 72757b9..4d89ccd 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/logging/dto/LogConfigDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/logging/dto/LogConfigDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.logging.dto
+package org.gameyfin.app.core.logging.dto
import org.springframework.boot.logging.LogLevel
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/logging/util/AsyncFileTailer.kt b/app/src/main/kotlin/org/gameyfin/app/core/logging/util/AsyncFileTailer.kt
similarity index 97%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/logging/util/AsyncFileTailer.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/logging/util/AsyncFileTailer.kt
index 1abf827..f143963 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/logging/util/AsyncFileTailer.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/logging/util/AsyncFileTailer.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.logging.util
+package org.gameyfin.app.core.logging.util
import io.github.oshai.kotlinlogging.KotlinLogging
import kotlinx.coroutines.CoroutineScope
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/PluginEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/PluginEndpoint.kt
similarity index 85%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/PluginEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/PluginEndpoint.kt
index 1f65268..75df853 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/PluginEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/PluginEndpoint.kt
@@ -1,12 +1,12 @@
-package de.grimsi.gameyfin.core.plugins
+package org.gameyfin.app.core.plugins
import com.vaadin.hilla.Endpoint
-import de.grimsi.gameyfin.core.Role
-import de.grimsi.gameyfin.core.plugins.dto.PluginUpdateDto
-import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResult
-import de.grimsi.gameyfin.users.util.isAdmin
import jakarta.annotation.security.PermitAll
import jakarta.annotation.security.RolesAllowed
+import org.gameyfin.app.core.Role
+import org.gameyfin.app.core.plugins.dto.PluginUpdateDto
+import org.gameyfin.app.users.util.isAdmin
+import org.gameyfin.pluginapi.core.config.PluginConfigValidationResult
import org.springframework.security.core.context.SecurityContextHolder
import org.springframework.security.core.userdetails.UserDetails
import reactor.core.publisher.Flux
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/PluginService.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/PluginService.kt
similarity index 88%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/PluginService.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/PluginService.kt
index 8006762..bd15f64 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/PluginService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/PluginService.kt
@@ -1,19 +1,19 @@
-package de.grimsi.gameyfin.core.plugins
+package org.gameyfin.app.core.plugins
-import de.grimsi.gameyfin.core.plugins.config.PluginConfigEntry
-import de.grimsi.gameyfin.core.plugins.config.PluginConfigEntryKey
-import de.grimsi.gameyfin.core.plugins.config.PluginConfigRepository
-import de.grimsi.gameyfin.core.plugins.dto.PluginConfigMetadataDto
-import de.grimsi.gameyfin.core.plugins.dto.PluginDto
-import de.grimsi.gameyfin.core.plugins.dto.PluginUpdateDto
-import de.grimsi.gameyfin.core.plugins.management.GameyfinPluginDescriptor
-import de.grimsi.gameyfin.core.plugins.management.GameyfinPluginManager
-import de.grimsi.gameyfin.core.plugins.management.PluginManagementEntry
-import de.grimsi.gameyfin.core.plugins.management.PluginManagementRepository
-import de.grimsi.gameyfin.pluginapi.core.config.Configurable
-import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResult
-import de.grimsi.gameyfin.pluginapi.core.wrapper.GameyfinPlugin
import io.github.oshai.kotlinlogging.KotlinLogging
+import org.gameyfin.app.core.plugins.config.PluginConfigEntry
+import org.gameyfin.app.core.plugins.config.PluginConfigEntryKey
+import org.gameyfin.app.core.plugins.config.PluginConfigRepository
+import org.gameyfin.app.core.plugins.dto.PluginConfigMetadataDto
+import org.gameyfin.app.core.plugins.dto.PluginDto
+import org.gameyfin.app.core.plugins.dto.PluginUpdateDto
+import org.gameyfin.app.core.plugins.management.GameyfinPluginDescriptor
+import org.gameyfin.app.core.plugins.management.GameyfinPluginManager
+import org.gameyfin.app.core.plugins.management.PluginManagementEntry
+import org.gameyfin.app.core.plugins.management.PluginManagementRepository
+import org.gameyfin.pluginapi.core.config.Configurable
+import org.gameyfin.pluginapi.core.config.PluginConfigValidationResult
+import org.gameyfin.pluginapi.core.wrapper.GameyfinPlugin
import org.pf4j.ExtensionPoint
import org.pf4j.PluginWrapper
import org.springframework.data.repository.findByIdOrNull
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/config/PluginConfigEntry.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/config/PluginConfigEntry.kt
similarity index 80%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/config/PluginConfigEntry.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/config/PluginConfigEntry.kt
index 8b28a1f..87c2174 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/config/PluginConfigEntry.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/config/PluginConfigEntry.kt
@@ -1,7 +1,7 @@
-package de.grimsi.gameyfin.core.plugins.config
+package org.gameyfin.app.core.plugins.config
-import de.grimsi.gameyfin.core.security.EncryptionConverter
import jakarta.persistence.*
+import org.gameyfin.app.core.security.EncryptionConverter
import java.io.Serializable
@Entity
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/config/PluginConfigRepository.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/config/PluginConfigRepository.kt
similarity index 86%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/config/PluginConfigRepository.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/config/PluginConfigRepository.kt
index a6e6aeb..e64b79e 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/config/PluginConfigRepository.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/config/PluginConfigRepository.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.plugins.config
+package org.gameyfin.app.core.plugins.config
import org.springframework.data.jpa.repository.JpaRepository
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginConfigMetadataDto.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/dto/PluginConfigMetadataDto.kt
similarity index 89%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginConfigMetadataDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/dto/PluginConfigMetadataDto.kt
index d98f9ad..5e7b1c6 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginConfigMetadataDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/dto/PluginConfigMetadataDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.plugins.dto
+package org.gameyfin.app.core.plugins.dto
import com.fasterxml.jackson.annotation.JsonInclude
import java.io.Serializable
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginDto.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/dto/PluginDto.kt
similarity index 75%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/dto/PluginDto.kt
index bbf092f..c0112ee 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/dto/PluginDto.kt
@@ -1,7 +1,7 @@
-package de.grimsi.gameyfin.core.plugins.dto
+package org.gameyfin.app.core.plugins.dto
-import de.grimsi.gameyfin.core.plugins.management.PluginTrustLevel
-import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResult
+import org.gameyfin.app.core.plugins.management.PluginTrustLevel
+import org.gameyfin.pluginapi.core.config.PluginConfigValidationResult
import org.pf4j.PluginState
data class PluginDto(
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginUpdateDto.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/dto/PluginUpdateDto.kt
similarity index 74%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginUpdateDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/dto/PluginUpdateDto.kt
index 6a84ba8..2501aa6 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginUpdateDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/dto/PluginUpdateDto.kt
@@ -1,7 +1,7 @@
-package de.grimsi.gameyfin.core.plugins.dto
+package org.gameyfin.app.core.plugins.dto
import com.fasterxml.jackson.annotation.JsonInclude
-import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResult
+import org.gameyfin.pluginapi.core.config.PluginConfigValidationResult
import org.pf4j.PluginState
@JsonInclude(JsonInclude.Include.NON_NULL)
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/DatabasePluginStatusProvider.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/DatabasePluginStatusProvider.kt
similarity index 95%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/DatabasePluginStatusProvider.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/management/DatabasePluginStatusProvider.kt
index c83a6ea..a827ae9 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/DatabasePluginStatusProvider.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/DatabasePluginStatusProvider.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.plugins.management
+package org.gameyfin.app.core.plugins.management
import org.pf4j.PluginStatusProvider
import org.springframework.data.repository.findByIdOrNull
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinDevelopmentPluginLoader.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinDevelopmentPluginLoader.kt
similarity index 92%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinDevelopmentPluginLoader.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinDevelopmentPluginLoader.kt
index fabc5dd..431a257 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinDevelopmentPluginLoader.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinDevelopmentPluginLoader.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.plugins.management
+package org.gameyfin.app.core.plugins.management
import org.pf4j.DevelopmentPluginLoader
import org.pf4j.PluginClassLoader
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinExtensionFinder.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinExtensionFinder.kt
similarity index 97%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinExtensionFinder.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinExtensionFinder.kt
index 095a00d..c2cf86d 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinExtensionFinder.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinExtensionFinder.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.plugins.management
+package org.gameyfin.app.core.plugins.management
import io.github.oshai.kotlinlogging.KotlinLogging
import org.pf4j.ExtensionDescriptor
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinJarPluginLoader.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinJarPluginLoader.kt
similarity index 94%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinJarPluginLoader.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinJarPluginLoader.kt
index 5b9b60d..15171f0 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinJarPluginLoader.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinJarPluginLoader.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.plugins.management
+package org.gameyfin.app.core.plugins.management
import org.pf4j.DevelopmentPluginLoader
import org.pf4j.PluginDescriptor
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinManifestPluginDescriptorFinder.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinManifestPluginDescriptorFinder.kt
similarity index 96%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinManifestPluginDescriptorFinder.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinManifestPluginDescriptorFinder.kt
index 8d95d58..eadcf0b 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinManifestPluginDescriptorFinder.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinManifestPluginDescriptorFinder.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.plugins.management
+package org.gameyfin.app.core.plugins.management
import org.pf4j.ManifestPluginDescriptorFinder
import java.util.jar.Manifest
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinPluginClassLoader.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinPluginClassLoader.kt
similarity index 92%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinPluginClassLoader.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinPluginClassLoader.kt
index df8986a..bf7a7f7 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinPluginClassLoader.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinPluginClassLoader.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.plugins.management
+package org.gameyfin.app.core.plugins.management
import org.pf4j.PluginClassLoader
import org.pf4j.PluginDescriptor
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinPluginDescriptor.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinPluginDescriptor.kt
similarity index 96%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinPluginDescriptor.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinPluginDescriptor.kt
index 9a4d106..c9f952e 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinPluginDescriptor.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinPluginDescriptor.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.plugins.management
+package org.gameyfin.app.core.plugins.management
import org.pf4j.DefaultPluginDescriptor
import org.pf4j.PluginDescriptor
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinPluginManager.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinPluginManager.kt
similarity index 97%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinPluginManager.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinPluginManager.kt
index 36427bb..8946ae4 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinPluginManager.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/GameyfinPluginManager.kt
@@ -1,10 +1,10 @@
-package de.grimsi.gameyfin.core.plugins.management
+package org.gameyfin.app.core.plugins.management
-import de.grimsi.gameyfin.core.plugins.config.PluginConfigRepository
-import de.grimsi.gameyfin.pluginapi.core.config.Configurable
-import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResult
-import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResultType
import io.github.oshai.kotlinlogging.KotlinLogging
+import org.gameyfin.app.core.plugins.config.PluginConfigRepository
+import org.gameyfin.pluginapi.core.config.Configurable
+import org.gameyfin.pluginapi.core.config.PluginConfigValidationResult
+import org.gameyfin.pluginapi.core.config.PluginConfigValidationResultType
import org.pf4j.*
import org.springframework.data.repository.findByIdOrNull
import org.springframework.stereotype.Component
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/PluginManagementEntry.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/PluginManagementEntry.kt
similarity index 84%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/PluginManagementEntry.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/management/PluginManagementEntry.kt
index a194a21..b2cf1b6 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/PluginManagementEntry.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/PluginManagementEntry.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.plugins.management
+package org.gameyfin.app.core.plugins.management
import jakarta.persistence.Entity
import jakarta.persistence.Id
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/PluginManagementRepository.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/PluginManagementRepository.kt
similarity index 85%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/PluginManagementRepository.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/management/PluginManagementRepository.kt
index cfc9ab1..6c3f570 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/PluginManagementRepository.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/PluginManagementRepository.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.plugins.management
+package org.gameyfin.app.core.plugins.management
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.data.jpa.repository.Query
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/PluginManagerConfig.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/PluginManagerConfig.kt
similarity index 92%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/PluginManagerConfig.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/management/PluginManagerConfig.kt
index a4478cf..b167663 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/PluginManagerConfig.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/PluginManagerConfig.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.plugins.management
+package org.gameyfin.app.core.plugins.management
import io.github.oshai.kotlinlogging.KotlinLogging
import org.springframework.boot.context.event.ApplicationReadyEvent
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/PluginTrustLevel.kt b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/PluginTrustLevel.kt
similarity index 67%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/PluginTrustLevel.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/plugins/management/PluginTrustLevel.kt
index 7383719..dcfe4a8 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/PluginTrustLevel.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/plugins/management/PluginTrustLevel.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.plugins.management
+package org.gameyfin.app.core.plugins.management
enum class PluginTrustLevel {
BUNDLED,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/AppKeyValidator.kt b/app/src/main/kotlin/org/gameyfin/app/core/security/AppKeyValidator.kt
similarity index 95%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/AppKeyValidator.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/security/AppKeyValidator.kt
index d2a8fc3..c082c92 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/AppKeyValidator.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/security/AppKeyValidator.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.security
+package org.gameyfin.app.core.security
import io.github.oshai.kotlinlogging.KotlinLogging
import org.springframework.boot.CommandLineRunner
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/AuthenticationProviderConfig.kt b/app/src/main/kotlin/org/gameyfin/app/core/security/AuthenticationProviderConfig.kt
similarity index 91%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/AuthenticationProviderConfig.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/security/AuthenticationProviderConfig.kt
index cbcffba..83095e4 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/AuthenticationProviderConfig.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/security/AuthenticationProviderConfig.kt
@@ -1,6 +1,6 @@
-package de.grimsi.gameyfin.core.security
+package org.gameyfin.app.core.security
-import de.grimsi.gameyfin.users.UserService
+import org.gameyfin.app.users.UserService
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.security.access.hierarchicalroles.RoleHierarchy
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/AuthorityMapperConfig.kt b/app/src/main/kotlin/org/gameyfin/app/core/security/AuthorityMapperConfig.kt
similarity index 84%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/AuthorityMapperConfig.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/security/AuthorityMapperConfig.kt
index f2ee79c..a83f629 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/AuthorityMapperConfig.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/security/AuthorityMapperConfig.kt
@@ -1,6 +1,6 @@
-package de.grimsi.gameyfin.core.security
+package org.gameyfin.app.core.security
-import de.grimsi.gameyfin.users.RoleService
+import org.gameyfin.app.users.RoleService
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/EncryptionConverter.kt b/app/src/main/kotlin/org/gameyfin/app/core/security/EncryptionConverter.kt
similarity index 91%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/EncryptionConverter.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/security/EncryptionConverter.kt
index c81d094..408260a 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/EncryptionConverter.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/security/EncryptionConverter.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.security
+package org.gameyfin.app.core.security
import jakarta.persistence.AttributeConverter
import jakarta.persistence.Converter
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/EncryptionMapConverter.kt b/app/src/main/kotlin/org/gameyfin/app/core/security/EncryptionMapConverter.kt
similarity index 95%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/EncryptionMapConverter.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/security/EncryptionMapConverter.kt
index e78eccf..2e78223 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/EncryptionMapConverter.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/security/EncryptionMapConverter.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.security
+package org.gameyfin.app.core.security
import com.fasterxml.jackson.databind.ObjectMapper
import jakarta.persistence.AttributeConverter
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/EncryptionUtils.kt b/app/src/main/kotlin/org/gameyfin/app/core/security/EncryptionUtils.kt
similarity index 96%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/EncryptionUtils.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/security/EncryptionUtils.kt
index 08efa18..c382de6 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/EncryptionUtils.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/security/EncryptionUtils.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.security
+package org.gameyfin.app.core.security
import java.util.*
import javax.crypto.Cipher
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/PasswordEncoderConfig.kt b/app/src/main/kotlin/org/gameyfin/app/core/security/PasswordEncoderConfig.kt
similarity index 90%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/PasswordEncoderConfig.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/security/PasswordEncoderConfig.kt
index 7e132a8..0f88c50 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/PasswordEncoderConfig.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/security/PasswordEncoderConfig.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.security
+package org.gameyfin.app.core.security
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/RoleHierarchyConfig.kt b/app/src/main/kotlin/org/gameyfin/app/core/security/RoleHierarchyConfig.kt
similarity index 92%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/RoleHierarchyConfig.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/security/RoleHierarchyConfig.kt
index 0573ecc..84651d8 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/RoleHierarchyConfig.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/security/RoleHierarchyConfig.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.security
+package org.gameyfin.app.core.security
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/SecurityConfig.kt b/app/src/main/kotlin/org/gameyfin/app/core/security/SecurityConfig.kt
similarity index 97%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/SecurityConfig.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/security/SecurityConfig.kt
index 42f89b2..b6598bd 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/SecurityConfig.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/security/SecurityConfig.kt
@@ -1,8 +1,8 @@
-package de.grimsi.gameyfin.core.security
+package org.gameyfin.app.core.security
import com.vaadin.flow.spring.security.VaadinWebSecurity
-import de.grimsi.gameyfin.config.ConfigProperties
-import de.grimsi.gameyfin.config.ConfigService
+import org.gameyfin.app.config.ConfigService
+import org.gameyfin.app.config.ConfigProperties
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Conditional
import org.springframework.context.annotation.Configuration
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/SessionRegistryConfig.kt b/app/src/main/kotlin/org/gameyfin/app/core/security/SessionRegistryConfig.kt
similarity index 90%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/SessionRegistryConfig.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/security/SessionRegistryConfig.kt
index d878b2d..90aecdc 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/SessionRegistryConfig.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/security/SessionRegistryConfig.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.security
+package org.gameyfin.app.core.security
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/SsoAuthenticationSuccessHandler.kt b/app/src/main/kotlin/org/gameyfin/app/core/security/SsoAuthenticationSuccessHandler.kt
similarity index 88%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/SsoAuthenticationSuccessHandler.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/security/SsoAuthenticationSuccessHandler.kt
index 08f9953..30784d4 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/SsoAuthenticationSuccessHandler.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/security/SsoAuthenticationSuccessHandler.kt
@@ -1,13 +1,13 @@
-package de.grimsi.gameyfin.core.security
+package org.gameyfin.app.core.security
-import de.grimsi.gameyfin.config.ConfigProperties
-import de.grimsi.gameyfin.config.ConfigService
-import de.grimsi.gameyfin.config.MatchUsersBy
-import de.grimsi.gameyfin.users.RoleService
-import de.grimsi.gameyfin.users.UserService
-import de.grimsi.gameyfin.users.entities.User
+import org.gameyfin.app.config.ConfigService
+import org.gameyfin.app.users.UserService
import jakarta.servlet.http.HttpServletRequest
import jakarta.servlet.http.HttpServletResponse
+import org.gameyfin.app.config.ConfigProperties
+import org.gameyfin.app.config.MatchUsersBy
+import org.gameyfin.app.users.RoleService
+import org.gameyfin.app.users.entities.User
import org.springframework.security.core.Authentication
import org.springframework.security.oauth2.core.oidc.user.OidcUser
import org.springframework.security.web.authentication.AuthenticationSuccessHandler
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/SsoEnabledCondition.kt b/app/src/main/kotlin/org/gameyfin/app/core/security/SsoEnabledCondition.kt
similarity index 94%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/SsoEnabledCondition.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/security/SsoEnabledCondition.kt
index 6e88a42..af4ae64 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/SsoEnabledCondition.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/security/SsoEnabledCondition.kt
@@ -1,6 +1,6 @@
-package de.grimsi.gameyfin.core.security
+package org.gameyfin.app.core.security
-import de.grimsi.gameyfin.config.ConfigProperties
+import org.gameyfin.app.config.ConfigProperties
import org.springframework.context.annotation.Condition
import org.springframework.context.annotation.ConditionContext
import org.springframework.core.env.Environment
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/WebConfig.kt b/app/src/main/kotlin/org/gameyfin/app/core/security/WebConfig.kt
similarity index 80%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/WebConfig.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/security/WebConfig.kt
index a152ed6..28f1af0 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/security/WebConfig.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/security/WebConfig.kt
@@ -1,7 +1,7 @@
-package de.grimsi.gameyfin.core.security
+package org.gameyfin.app.core.security
-import de.grimsi.gameyfin.core.annotations.DynamicAccessInterceptor
-import de.grimsi.gameyfin.core.development.DelayInterceptor
+import org.gameyfin.app.core.development.DelayInterceptor
+import org.gameyfin.app.core.annotations.DynamicAccessInterceptor
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.context.annotation.Configuration
import org.springframework.web.servlet.config.annotation.InterceptorRegistry
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/serialization/ArrayDeseriazlizer.kt b/app/src/main/kotlin/org/gameyfin/app/core/serialization/ArrayDeseriazlizer.kt
similarity index 93%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/serialization/ArrayDeseriazlizer.kt
rename to app/src/main/kotlin/org/gameyfin/app/core/serialization/ArrayDeseriazlizer.kt
index 51b026c..db637c4 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/serialization/ArrayDeseriazlizer.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/core/serialization/ArrayDeseriazlizer.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.core.serialization
+package org.gameyfin.app.core.serialization
import com.fasterxml.jackson.core.JsonParser
import com.fasterxml.jackson.databind.DeserializationContext
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/CompanyService.kt b/app/src/main/kotlin/org/gameyfin/app/games/CompanyService.kt
similarity index 73%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/CompanyService.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/CompanyService.kt
index 14bd41d..eef4931 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/CompanyService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/CompanyService.kt
@@ -1,7 +1,7 @@
-package de.grimsi.gameyfin.games
+package org.gameyfin.app.games
-import de.grimsi.gameyfin.games.entities.Company
-import de.grimsi.gameyfin.games.repositories.CompanyRepository
+import org.gameyfin.app.games.entities.Company
+import org.gameyfin.app.games.repositories.CompanyRepository
import org.springframework.stereotype.Service
@Service
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/GameEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/games/GameEndpoint.kt
similarity index 79%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/GameEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/GameEndpoint.kt
index 1769606..222ceea 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/GameEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/GameEndpoint.kt
@@ -1,11 +1,15 @@
-package de.grimsi.gameyfin.games
+package org.gameyfin.app.games
import com.vaadin.hilla.Endpoint
-import de.grimsi.gameyfin.core.Role
-import de.grimsi.gameyfin.games.dto.*
-import de.grimsi.gameyfin.libraries.LibraryService
import jakarta.annotation.security.PermitAll
import jakarta.annotation.security.RolesAllowed
+import org.gameyfin.app.core.Role
+import org.gameyfin.app.games.dto.GameDto
+import org.gameyfin.app.games.dto.GameEvent
+import org.gameyfin.app.games.dto.GameSearchResultDto
+import org.gameyfin.app.games.dto.GameUpdateDto
+import org.gameyfin.app.games.dto.OriginalIdDto
+import org.gameyfin.app.libraries.LibraryService
import reactor.core.publisher.Flux
import java.nio.file.Path
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/GameService.kt b/app/src/main/kotlin/org/gameyfin/app/games/GameService.kt
similarity index 96%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/GameService.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/GameService.kt
index 5a5b0f8..a1717ff 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/GameService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/GameService.kt
@@ -1,28 +1,27 @@
-package de.grimsi.gameyfin.games
+package org.gameyfin.app.games
-import de.grimsi.gameyfin.config.ConfigProperties
-import de.grimsi.gameyfin.config.ConfigService
-import de.grimsi.gameyfin.core.alphaNumeric
-import de.grimsi.gameyfin.core.filesystem.FilesystemService
-import de.grimsi.gameyfin.core.filterValuesNotNull
-import de.grimsi.gameyfin.core.plugins.PluginService
-import de.grimsi.gameyfin.core.plugins.management.GameyfinPluginManager
-import de.grimsi.gameyfin.core.plugins.management.PluginManagementEntry
-import de.grimsi.gameyfin.core.replaceRomanNumerals
-import de.grimsi.gameyfin.games.dto.*
-import de.grimsi.gameyfin.games.entities.*
-import de.grimsi.gameyfin.games.entities.GameMetadata
-import de.grimsi.gameyfin.games.repositories.GameRepository
-import de.grimsi.gameyfin.libraries.Library
-import de.grimsi.gameyfin.media.ImageService
-import de.grimsi.gameyfin.pluginapi.gamemetadata.*
-import de.grimsi.gameyfin.users.UserService
import io.github.oshai.kotlinlogging.KotlinLogging
import kotlinx.coroutines.async
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.runBlocking
import me.xdrop.fuzzywuzzy.FuzzySearch
import org.apache.commons.io.FilenameUtils
+import org.gameyfin.app.config.ConfigProperties
+import org.gameyfin.app.config.ConfigService
+import org.gameyfin.app.core.alphaNumeric
+import org.gameyfin.app.core.filesystem.FilesystemService
+import org.gameyfin.app.core.filterValuesNotNull
+import org.gameyfin.app.core.plugins.PluginService
+import org.gameyfin.app.core.plugins.management.GameyfinPluginManager
+import org.gameyfin.app.core.plugins.management.PluginManagementEntry
+import org.gameyfin.app.core.replaceRomanNumerals
+import org.gameyfin.app.games.dto.*
+import org.gameyfin.app.games.entities.*
+import org.gameyfin.app.games.repositories.GameRepository
+import org.gameyfin.app.libraries.Library
+import org.gameyfin.app.media.ImageService
+import org.gameyfin.app.users.UserService
+import org.gameyfin.pluginapi.gamemetadata.*
import org.springframework.data.repository.findByIdOrNull
import org.springframework.security.core.context.SecurityContextHolder
import org.springframework.security.core.userdetails.UserDetails
@@ -36,7 +35,7 @@ import java.time.ZoneId
import java.time.ZoneOffset
import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.toJavaDuration
-import de.grimsi.gameyfin.pluginapi.gamemetadata.GameMetadata as PluginApiMetadata
+import org.gameyfin.pluginapi.gamemetadata.GameMetadata as PluginApiMetadata
@Service
class GameService(
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/NoMatchException.kt b/app/src/main/kotlin/org/gameyfin/app/games/NoMatchException.kt
similarity index 67%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/NoMatchException.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/NoMatchException.kt
index a32c9f4..bbd810d 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/NoMatchException.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/NoMatchException.kt
@@ -1,3 +1,3 @@
-package de.grimsi.gameyfin.games
+package org.gameyfin.app.games
class NoMatchException(message: String) : RuntimeException(message)
\ No newline at end of file
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameDto.kt b/app/src/main/kotlin/org/gameyfin/app/games/dto/GameDto.kt
similarity index 95%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/dto/GameDto.kt
index 8738122..e97ae3b 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/dto/GameDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.games.dto
+package org.gameyfin.app.games.dto
import com.fasterxml.jackson.annotation.JsonInclude
import java.time.Instant
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameEvent.kt b/app/src/main/kotlin/org/gameyfin/app/games/dto/GameEvent.kt
similarity index 90%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameEvent.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/dto/GameEvent.kt
index 0c4b5c8..8186ff3 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameEvent.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/dto/GameEvent.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.games.dto
+package org.gameyfin.app.games.dto
sealed class GameEvent {
abstract val type: String
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameFieldMetadataDto.kt b/app/src/main/kotlin/org/gameyfin/app/games/dto/GameFieldMetadataDto.kt
similarity index 85%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameFieldMetadataDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/dto/GameFieldMetadataDto.kt
index 284748b..014addf 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameFieldMetadataDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/dto/GameFieldMetadataDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.games.dto
+package org.gameyfin.app.games.dto
import java.time.Instant
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameMetadataDto.kt b/app/src/main/kotlin/org/gameyfin/app/games/dto/GameMetadataDto.kt
similarity index 89%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameMetadataDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/dto/GameMetadataDto.kt
index 4ef8347..2caf243 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameMetadataDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/dto/GameMetadataDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.games.dto
+package org.gameyfin.app.games.dto
import com.fasterxml.jackson.annotation.JsonInclude
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameSearchResultDto.kt b/app/src/main/kotlin/org/gameyfin/app/games/dto/GameSearchResultDto.kt
similarity index 92%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameSearchResultDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/dto/GameSearchResultDto.kt
index 4654ffc..f98be5d 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameSearchResultDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/dto/GameSearchResultDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.games.dto
+package org.gameyfin.app.games.dto
import java.time.Instant
import java.util.*
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameUpdateDto.kt b/app/src/main/kotlin/org/gameyfin/app/games/dto/GameUpdateDto.kt
similarity index 92%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameUpdateDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/dto/GameUpdateDto.kt
index c8dd4c7..5d5b0a9 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameUpdateDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/dto/GameUpdateDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.games.dto
+package org.gameyfin.app.games.dto
import java.time.LocalDate
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameUpdateMetadataDto.kt b/app/src/main/kotlin/org/gameyfin/app/games/dto/GameUpdateMetadataDto.kt
similarity index 65%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameUpdateMetadataDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/dto/GameUpdateMetadataDto.kt
index 9486346..90ba396 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameUpdateMetadataDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/dto/GameUpdateMetadataDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.games.dto
+package org.gameyfin.app.games.dto
data class GameUpdateMetadataDto(
val matchConfirmed: Boolean?
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Company.kt b/app/src/main/kotlin/org/gameyfin/app/games/entities/Company.kt
similarity index 88%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Company.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/entities/Company.kt
index aba58bf..b425de9 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Company.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/entities/Company.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.games.entities
+package org.gameyfin.app.games.entities
import jakarta.persistence.*
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Game.kt b/app/src/main/kotlin/org/gameyfin/app/games/entities/Game.kt
similarity index 87%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Game.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/entities/Game.kt
index f03124f..8c0959e 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Game.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/entities/Game.kt
@@ -1,11 +1,11 @@
-package de.grimsi.gameyfin.games.entities
+package org.gameyfin.app.games.entities
-import de.grimsi.gameyfin.libraries.Library
-import de.grimsi.gameyfin.pluginapi.gamemetadata.GameFeature
-import de.grimsi.gameyfin.pluginapi.gamemetadata.Genre
-import de.grimsi.gameyfin.pluginapi.gamemetadata.PlayerPerspective
-import de.grimsi.gameyfin.pluginapi.gamemetadata.Theme
import jakarta.persistence.*
+import org.gameyfin.app.libraries.Library
+import org.gameyfin.pluginapi.gamemetadata.GameFeature
+import org.gameyfin.pluginapi.gamemetadata.Genre
+import org.gameyfin.pluginapi.gamemetadata.PlayerPerspective
+import org.gameyfin.pluginapi.gamemetadata.Theme
import org.hibernate.annotations.CreationTimestamp
import org.hibernate.annotations.UpdateTimestamp
import java.net.URI
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameEntityListener.kt b/app/src/main/kotlin/org/gameyfin/app/games/entities/GameEntityListener.kt
similarity index 61%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameEntityListener.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/entities/GameEntityListener.kt
index f056c81..33c9902 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameEntityListener.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/entities/GameEntityListener.kt
@@ -1,28 +1,28 @@
-package de.grimsi.gameyfin.games.entities
+package org.gameyfin.app.games.entities
-import de.grimsi.gameyfin.games.GameService
-import de.grimsi.gameyfin.games.dto.GameEvent
-import de.grimsi.gameyfin.games.toDto
import jakarta.persistence.PostPersist
import jakarta.persistence.PostRemove
import jakarta.persistence.PostUpdate
+import org.gameyfin.app.games.GameService
+import org.gameyfin.app.games.dto.GameEvent
+import org.gameyfin.app.games.toDto
class GameEntityListener {
@PostPersist
fun created(game: Game) {
val event = GameEvent.Created(game.toDto())
- GameService.emit(event)
+ GameService.Companion.emit(event)
}
@PostUpdate
fun updated(game: Game) {
val event = GameEvent.Updated(game.toDto())
- GameService.emit(event)
+ GameService.Companion.emit(event)
}
@PostRemove
fun deleted(game: Game) {
val event = GameEvent.Deleted(game.id!!)
- GameService.emit(event)
+ GameService.Companion.emit(event)
}
}
\ No newline at end of file
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameFieldMetadata.kt b/app/src/main/kotlin/org/gameyfin/app/games/entities/GameFieldMetadata.kt
similarity index 82%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameFieldMetadata.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/entities/GameFieldMetadata.kt
index 69a432a..345acd5 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameFieldMetadata.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/entities/GameFieldMetadata.kt
@@ -1,8 +1,8 @@
-package de.grimsi.gameyfin.games.entities
+package org.gameyfin.app.games.entities
-import de.grimsi.gameyfin.core.plugins.management.PluginManagementEntry
-import de.grimsi.gameyfin.users.entities.User
import jakarta.persistence.*
+import org.gameyfin.app.core.plugins.management.PluginManagementEntry
+import org.gameyfin.app.users.entities.User
import org.hibernate.annotations.UpdateTimestamp
import java.time.Instant
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameMetadata.kt b/app/src/main/kotlin/org/gameyfin/app/games/entities/GameMetadata.kt
similarity index 80%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameMetadata.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/entities/GameMetadata.kt
index c02e00b..86de8ca 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameMetadata.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/entities/GameMetadata.kt
@@ -1,7 +1,7 @@
-package de.grimsi.gameyfin.games.entities
+package org.gameyfin.app.games.entities
-import de.grimsi.gameyfin.core.plugins.management.PluginManagementEntry
import jakarta.persistence.*
+import org.gameyfin.app.core.plugins.management.PluginManagementEntry
@Embeddable
class GameMetadata(
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Image.kt b/app/src/main/kotlin/org/gameyfin/app/games/entities/Image.kt
similarity index 94%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Image.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/entities/Image.kt
index a383a51..66d2ce6 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Image.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/entities/Image.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.games.entities
+package org.gameyfin.app.games.entities
import jakarta.persistence.Entity
import jakarta.persistence.GeneratedValue
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/LibraryEntityListener.kt b/app/src/main/kotlin/org/gameyfin/app/games/entities/LibraryEntityListener.kt
similarity index 58%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/LibraryEntityListener.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/entities/LibraryEntityListener.kt
index 85ac207..2e49038 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/LibraryEntityListener.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/entities/LibraryEntityListener.kt
@@ -1,29 +1,29 @@
-package de.grimsi.gameyfin.games.entities
+package org.gameyfin.app.games.entities
-import de.grimsi.gameyfin.libraries.Library
-import de.grimsi.gameyfin.libraries.LibraryService
-import de.grimsi.gameyfin.libraries.dto.LibraryEvent
-import de.grimsi.gameyfin.libraries.toDto
+import org.gameyfin.app.libraries.dto.LibraryEvent
import jakarta.persistence.PostPersist
import jakarta.persistence.PostRemove
import jakarta.persistence.PostUpdate
+import org.gameyfin.app.libraries.Library
+import org.gameyfin.app.libraries.LibraryService
+import org.gameyfin.app.libraries.toDto
class LibraryEntityListener {
@PostPersist
fun created(library: Library) {
val event = LibraryEvent.Created(library.toDto())
- LibraryService.emit(event)
+ LibraryService.Companion.emit(event)
}
@PostUpdate
fun updated(library: Library) {
val event = LibraryEvent.Updated(library.toDto())
- LibraryService.emit(event)
+ LibraryService.Companion.emit(event)
}
@PostRemove
fun deleted(library: Library) {
val event = LibraryEvent.Deleted(library.id!!)
- LibraryService.emit(event)
+ LibraryService.Companion.emit(event)
}
}
\ No newline at end of file
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/repositories/CompanyRepository.kt b/app/src/main/kotlin/org/gameyfin/app/games/repositories/CompanyRepository.kt
similarity index 56%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/repositories/CompanyRepository.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/repositories/CompanyRepository.kt
index e0325a0..21ec07f 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/repositories/CompanyRepository.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/repositories/CompanyRepository.kt
@@ -1,7 +1,7 @@
-package de.grimsi.gameyfin.games.repositories
+package org.gameyfin.app.games.repositories
-import de.grimsi.gameyfin.games.entities.Company
-import de.grimsi.gameyfin.games.entities.CompanyType
+import org.gameyfin.app.games.entities.Company
+import org.gameyfin.app.games.entities.CompanyType
import org.springframework.data.jpa.repository.JpaRepository
interface CompanyRepository : JpaRepository {
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/repositories/FieldMetadataRepository.kt b/app/src/main/kotlin/org/gameyfin/app/games/repositories/FieldMetadataRepository.kt
similarity index 56%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/repositories/FieldMetadataRepository.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/repositories/FieldMetadataRepository.kt
index 918a662..b286fc9 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/repositories/FieldMetadataRepository.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/repositories/FieldMetadataRepository.kt
@@ -1,6 +1,6 @@
-package de.grimsi.gameyfin.games.repositories
+package org.gameyfin.app.games.repositories
-import de.grimsi.gameyfin.games.entities.GameFieldMetadata
+import org.gameyfin.app.games.entities.GameFieldMetadata
import org.springframework.data.jpa.repository.JpaRepository
interface FieldMetadataRepository : JpaRepository
\ No newline at end of file
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/repositories/GameRepository.kt b/app/src/main/kotlin/org/gameyfin/app/games/repositories/GameRepository.kt
similarity index 81%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/repositories/GameRepository.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/repositories/GameRepository.kt
index 77eb31e..e2b3819 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/repositories/GameRepository.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/repositories/GameRepository.kt
@@ -1,6 +1,6 @@
-package de.grimsi.gameyfin.games.repositories
+package org.gameyfin.app.games.repositories
-import de.grimsi.gameyfin.games.entities.Game
+import org.gameyfin.app.games.entities.Game
import org.springframework.data.domain.Limit
import org.springframework.data.jpa.repository.JpaRepository
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/repositories/ImageContentStore.kt b/app/src/main/kotlin/org/gameyfin/app/games/repositories/ImageContentStore.kt
similarity index 66%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/repositories/ImageContentStore.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/repositories/ImageContentStore.kt
index f793d3a..d247b15 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/repositories/ImageContentStore.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/repositories/ImageContentStore.kt
@@ -1,6 +1,6 @@
-package de.grimsi.gameyfin.games.repositories
+package org.gameyfin.app.games.repositories
-import de.grimsi.gameyfin.games.entities.Image
+import org.gameyfin.app.games.entities.Image
import org.springframework.content.commons.store.ContentStore
import org.springframework.stereotype.Repository
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/repositories/ImageRepository.kt b/app/src/main/kotlin/org/gameyfin/app/games/repositories/ImageRepository.kt
similarity index 67%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/repositories/ImageRepository.kt
rename to app/src/main/kotlin/org/gameyfin/app/games/repositories/ImageRepository.kt
index f0d134b..942c2ff 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/repositories/ImageRepository.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/games/repositories/ImageRepository.kt
@@ -1,6 +1,6 @@
-package de.grimsi.gameyfin.games.repositories
+package org.gameyfin.app.games.repositories
-import de.grimsi.gameyfin.games.entities.Image
+import org.gameyfin.app.games.entities.Image
import org.springframework.data.jpa.repository.JpaRepository
import java.net.URL
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/DirectoryMapping.kt b/app/src/main/kotlin/org/gameyfin/app/libraries/DirectoryMapping.kt
similarity index 90%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/DirectoryMapping.kt
rename to app/src/main/kotlin/org/gameyfin/app/libraries/DirectoryMapping.kt
index 22553e1..4df31ce 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/DirectoryMapping.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/libraries/DirectoryMapping.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.libraries
+package org.gameyfin.app.libraries
import jakarta.persistence.Entity
import jakarta.persistence.GeneratedValue
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/Library.kt b/app/src/main/kotlin/org/gameyfin/app/libraries/Library.kt
similarity index 86%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/Library.kt
rename to app/src/main/kotlin/org/gameyfin/app/libraries/Library.kt
index c4e78dd..0b1b93d 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/Library.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/libraries/Library.kt
@@ -1,8 +1,8 @@
-package de.grimsi.gameyfin.libraries
+package org.gameyfin.app.libraries
-import de.grimsi.gameyfin.games.entities.Game
-import de.grimsi.gameyfin.games.entities.LibraryEntityListener
+import org.gameyfin.app.games.entities.Game
import jakarta.persistence.*
+import org.gameyfin.app.games.entities.LibraryEntityListener
import org.hibernate.annotations.CreationTimestamp
import org.hibernate.annotations.UpdateTimestamp
import java.time.Instant
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/libraries/LibraryEndpoint.kt
similarity index 78%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/libraries/LibraryEndpoint.kt
index 39cc877..c48d3e1 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/libraries/LibraryEndpoint.kt
@@ -1,15 +1,15 @@
-package de.grimsi.gameyfin.libraries
+package org.gameyfin.app.libraries
import com.vaadin.hilla.Endpoint
-import de.grimsi.gameyfin.core.Role
-import de.grimsi.gameyfin.libraries.dto.LibraryDto
-import de.grimsi.gameyfin.libraries.dto.LibraryEvent
-import de.grimsi.gameyfin.libraries.dto.LibraryScanProgress
-import de.grimsi.gameyfin.libraries.dto.LibraryUpdateDto
-import de.grimsi.gameyfin.libraries.enums.ScanType
-import de.grimsi.gameyfin.users.util.isAdmin
+import org.gameyfin.app.libraries.dto.LibraryDto
+import org.gameyfin.app.libraries.dto.LibraryEvent
import jakarta.annotation.security.PermitAll
import jakarta.annotation.security.RolesAllowed
+import org.gameyfin.app.core.Role
+import org.gameyfin.app.libraries.dto.LibraryScanProgress
+import org.gameyfin.app.libraries.dto.LibraryUpdateDto
+import org.gameyfin.app.libraries.enums.ScanType
+import org.gameyfin.app.users.util.isAdmin
import org.springframework.security.core.context.SecurityContextHolder
import org.springframework.security.core.userdetails.UserDetails
import reactor.core.publisher.Flux
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryRepository.kt b/app/src/main/kotlin/org/gameyfin/app/libraries/LibraryRepository.kt
similarity index 91%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryRepository.kt
rename to app/src/main/kotlin/org/gameyfin/app/libraries/LibraryRepository.kt
index 47fd84e..c9faebc 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryRepository.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/libraries/LibraryRepository.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.libraries
+package org.gameyfin.app.libraries
import org.springframework.data.jpa.repository.EntityGraph
import org.springframework.data.jpa.repository.JpaRepository
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryScanResult.kt b/app/src/main/kotlin/org/gameyfin/app/libraries/LibraryScanResult.kt
similarity index 72%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryScanResult.kt
rename to app/src/main/kotlin/org/gameyfin/app/libraries/LibraryScanResult.kt
index 8b389ca..885ae19 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryScanResult.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/libraries/LibraryScanResult.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.libraries
+package org.gameyfin.app.libraries
data class LibraryScanResult(
val new: Int,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryService.kt b/app/src/main/kotlin/org/gameyfin/app/libraries/LibraryService.kt
similarity index 95%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryService.kt
rename to app/src/main/kotlin/org/gameyfin/app/libraries/LibraryService.kt
index b005f49..bd6e2b1 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/libraries/LibraryService.kt
@@ -1,12 +1,19 @@
-package de.grimsi.gameyfin.libraries
+package org.gameyfin.app.libraries
-import de.grimsi.gameyfin.core.filesystem.FilesystemService
-import de.grimsi.gameyfin.games.GameService
-import de.grimsi.gameyfin.games.entities.Game
-import de.grimsi.gameyfin.libraries.dto.*
-import de.grimsi.gameyfin.libraries.enums.ScanType
-import de.grimsi.gameyfin.media.ImageService
+import org.gameyfin.app.games.entities.Game
import io.github.oshai.kotlinlogging.KotlinLogging
+import org.gameyfin.app.core.filesystem.FilesystemService
+import org.gameyfin.app.games.GameService
+import org.gameyfin.app.libraries.dto.DirectoryMappingDto
+import org.gameyfin.app.libraries.dto.LibraryDto
+import org.gameyfin.app.libraries.dto.LibraryEvent
+import org.gameyfin.app.libraries.dto.LibraryScanProgress
+import org.gameyfin.app.libraries.dto.LibraryScanStatus
+import org.gameyfin.app.libraries.dto.LibraryScanStep
+import org.gameyfin.app.libraries.dto.LibraryStatsDto
+import org.gameyfin.app.libraries.dto.LibraryUpdateDto
+import org.gameyfin.app.libraries.enums.ScanType
+import org.gameyfin.app.media.ImageService
import org.springframework.data.repository.findByIdOrNull
import org.springframework.stereotype.Service
import reactor.core.publisher.Flux
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/DirectoryMappingDto.kt b/app/src/main/kotlin/org/gameyfin/app/libraries/dto/DirectoryMappingDto.kt
similarity index 71%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/DirectoryMappingDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/libraries/dto/DirectoryMappingDto.kt
index dac4344..f3d76aa 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/DirectoryMappingDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/libraries/dto/DirectoryMappingDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.libraries.dto
+package org.gameyfin.app.libraries.dto
data class DirectoryMappingDto(
val internalPath: String,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryDto.kt b/app/src/main/kotlin/org/gameyfin/app/libraries/dto/LibraryDto.kt
similarity index 84%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/libraries/dto/LibraryDto.kt
index aa37c20..4f77a09 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/libraries/dto/LibraryDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.libraries.dto
+package org.gameyfin.app.libraries.dto
data class LibraryDto(
val id: Long,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryEvent.kt b/app/src/main/kotlin/org/gameyfin/app/libraries/dto/LibraryEvent.kt
similarity index 90%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryEvent.kt
rename to app/src/main/kotlin/org/gameyfin/app/libraries/dto/LibraryEvent.kt
index bf3dd8b..930c908 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryEvent.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/libraries/dto/LibraryEvent.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.libraries.dto
+package org.gameyfin.app.libraries.dto
sealed class LibraryEvent {
abstract val type: String
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryScanProgress.kt b/app/src/main/kotlin/org/gameyfin/app/libraries/dto/LibraryScanProgress.kt
similarity index 85%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryScanProgress.kt
rename to app/src/main/kotlin/org/gameyfin/app/libraries/dto/LibraryScanProgress.kt
index cc4ebf0..a5cc9b5 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryScanProgress.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/libraries/dto/LibraryScanProgress.kt
@@ -1,6 +1,6 @@
-package de.grimsi.gameyfin.libraries.dto
+package org.gameyfin.app.libraries.dto
-import de.grimsi.gameyfin.libraries.LibraryScanResult
+import org.gameyfin.app.libraries.LibraryScanResult
import java.time.Instant
import java.util.*
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryStatsDto.kt b/app/src/main/kotlin/org/gameyfin/app/libraries/dto/LibraryStatsDto.kt
similarity index 68%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryStatsDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/libraries/dto/LibraryStatsDto.kt
index b98d6a7..6e5d796 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryStatsDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/libraries/dto/LibraryStatsDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.libraries.dto
+package org.gameyfin.app.libraries.dto
data class LibraryStatsDto(
val gamesCount: Int,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryUpdateDto.kt b/app/src/main/kotlin/org/gameyfin/app/libraries/dto/LibraryUpdateDto.kt
similarity index 81%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryUpdateDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/libraries/dto/LibraryUpdateDto.kt
index 552b4e3..1f4b0c2 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryUpdateDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/libraries/dto/LibraryUpdateDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.libraries.dto
+package org.gameyfin.app.libraries.dto
data class LibraryUpdateDto(
val id: Long,
diff --git a/app/src/main/kotlin/org/gameyfin/app/libraries/enums/ScanType.kt b/app/src/main/kotlin/org/gameyfin/app/libraries/enums/ScanType.kt
new file mode 100644
index 0000000..34a44ce
--- /dev/null
+++ b/app/src/main/kotlin/org/gameyfin/app/libraries/enums/ScanType.kt
@@ -0,0 +1,5 @@
+package org.gameyfin.app.libraries.enums
+
+enum class ScanType {
+ QUICK, FULL
+}
\ No newline at end of file
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/media/ImageEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/media/ImageEndpoint.kt
similarity index 88%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/media/ImageEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/media/ImageEndpoint.kt
index d088dce..8dfa669 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/media/ImageEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/media/ImageEndpoint.kt
@@ -1,13 +1,13 @@
-package de.grimsi.gameyfin.media
+package org.gameyfin.app.media
-import de.grimsi.gameyfin.core.Role
-import de.grimsi.gameyfin.core.Utils
-import de.grimsi.gameyfin.core.annotations.DynamicPublicAccess
-import de.grimsi.gameyfin.core.plugins.PluginService
-import de.grimsi.gameyfin.games.entities.Image
-import de.grimsi.gameyfin.games.entities.ImageType
-import de.grimsi.gameyfin.users.UserService
+import org.gameyfin.app.core.plugins.PluginService
+import org.gameyfin.app.games.entities.Image
+import org.gameyfin.app.games.entities.ImageType
+import org.gameyfin.app.users.UserService
import jakarta.annotation.security.RolesAllowed
+import org.gameyfin.app.core.Role
+import org.gameyfin.app.core.Utils
+import org.gameyfin.app.core.annotations.DynamicPublicAccess
import org.springframework.core.io.ByteArrayResource
import org.springframework.core.io.InputStreamResource
import org.springframework.http.HttpHeaders
@@ -40,7 +40,7 @@ class ImageEndpoint(
@GetMapping("/plugins/{id}/logo")
fun getPluginLogo(@PathVariable("id") pluginId: String): ResponseEntity? {
val logo = pluginService.getLogo(pluginId)
- return Utils.inputStreamToResponseEntity(logo)
+ return Utils.Companion.inputStreamToResponseEntity(logo)
}
@GetMapping("/avatar")
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/media/ImageService.kt b/app/src/main/kotlin/org/gameyfin/app/media/ImageService.kt
similarity index 88%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/media/ImageService.kt
rename to app/src/main/kotlin/org/gameyfin/app/media/ImageService.kt
index ad0bb83..d9a8a6f 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/media/ImageService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/media/ImageService.kt
@@ -1,11 +1,11 @@
-package de.grimsi.gameyfin.media
+package org.gameyfin.app.media
-import de.grimsi.gameyfin.games.entities.Image
-import de.grimsi.gameyfin.games.entities.ImageType
-import de.grimsi.gameyfin.games.repositories.ImageContentStore
-import de.grimsi.gameyfin.games.repositories.ImageRepository
+import org.gameyfin.app.games.entities.Image
+import org.gameyfin.app.games.entities.ImageType
+import org.gameyfin.app.games.repositories.ImageContentStore
import org.apache.tika.Tika
import org.apache.tika.io.TikaInputStream
+import org.gameyfin.app.games.repositories.ImageRepository
import org.springframework.data.repository.findByIdOrNull
import org.springframework.stereotype.Service
import java.io.InputStream
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/MessageEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/messages/MessageEndpoint.kt
similarity index 90%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/MessageEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/messages/MessageEndpoint.kt
index 79376f3..8394671 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/MessageEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/messages/MessageEndpoint.kt
@@ -1,9 +1,9 @@
-package de.grimsi.gameyfin.messages
+package org.gameyfin.app.messages
import com.vaadin.flow.server.auth.AnonymousAllowed
import com.vaadin.hilla.Endpoint
-import de.grimsi.gameyfin.core.Role
import jakarta.annotation.security.RolesAllowed
+import org.gameyfin.app.core.Role
@Endpoint
@RolesAllowed(Role.Names.ADMIN)
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/MessageService.kt b/app/src/main/kotlin/org/gameyfin/app/messages/MessageService.kt
similarity index 91%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/MessageService.kt
rename to app/src/main/kotlin/org/gameyfin/app/messages/MessageService.kt
index 77edaab..a7c1902 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/MessageService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/messages/MessageService.kt
@@ -1,12 +1,18 @@
-package de.grimsi.gameyfin.messages
+package org.gameyfin.app.messages
-import de.grimsi.gameyfin.core.events.*
-import de.grimsi.gameyfin.messages.providers.AbstractMessageProvider
-import de.grimsi.gameyfin.messages.templates.MessageTemplateService
-import de.grimsi.gameyfin.messages.templates.MessageTemplates
-import de.grimsi.gameyfin.users.UserService
+import org.gameyfin.app.messages.templates.MessageTemplates
+import org.gameyfin.app.users.UserService
import io.github.oshai.kotlinlogging.KLogger
import io.github.oshai.kotlinlogging.KotlinLogging
+import org.gameyfin.app.core.events.AccountDeletedEvent
+import org.gameyfin.app.core.events.AccountStatusChangedEvent
+import org.gameyfin.app.core.events.EmailNeedsConfirmationEvent
+import org.gameyfin.app.core.events.PasswordResetRequestEvent
+import org.gameyfin.app.core.events.RegistrationAttemptWithExistingEmailEvent
+import org.gameyfin.app.core.events.UserInvitationEvent
+import org.gameyfin.app.core.events.UserRegistrationWaitingForApprovalEvent
+import org.gameyfin.app.messages.providers.AbstractMessageProvider
+import org.gameyfin.app.messages.templates.MessageTemplateService
import org.springframework.context.ApplicationContext
import org.springframework.context.event.EventListener
import org.springframework.scheduling.annotation.Async
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/providers/AbstractMessageProvider.kt b/app/src/main/kotlin/org/gameyfin/app/messages/providers/AbstractMessageProvider.kt
similarity index 79%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/providers/AbstractMessageProvider.kt
rename to app/src/main/kotlin/org/gameyfin/app/messages/providers/AbstractMessageProvider.kt
index eefcf62..6fcb023 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/providers/AbstractMessageProvider.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/messages/providers/AbstractMessageProvider.kt
@@ -1,7 +1,7 @@
-package de.grimsi.gameyfin.messages.providers
+package org.gameyfin.app.messages.providers
-import de.grimsi.gameyfin.config.ConfigService
-import de.grimsi.gameyfin.messages.templates.TemplateType
+import org.gameyfin.app.config.ConfigService
+import org.gameyfin.app.messages.templates.TemplateType
import java.util.*
abstract class AbstractMessageProvider(
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/providers/EmailMessageProvider.kt b/app/src/main/kotlin/org/gameyfin/app/messages/providers/EmailMessageProvider.kt
similarity index 93%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/providers/EmailMessageProvider.kt
rename to app/src/main/kotlin/org/gameyfin/app/messages/providers/EmailMessageProvider.kt
index b7912d7..816fdaa 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/providers/EmailMessageProvider.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/messages/providers/EmailMessageProvider.kt
@@ -1,13 +1,13 @@
-package de.grimsi.gameyfin.messages.providers
+package org.gameyfin.app.messages.providers
-import de.grimsi.gameyfin.config.ConfigProperties
-import de.grimsi.gameyfin.config.ConfigService
-import de.grimsi.gameyfin.messages.templates.TemplateType
+import org.gameyfin.app.config.ConfigService
+import org.gameyfin.app.messages.templates.TemplateType
import jakarta.mail.Message
import jakarta.mail.MessagingException
import jakarta.mail.Session
import jakarta.mail.internet.InternetAddress
import jakarta.mail.internet.MimeMessage
+import org.gameyfin.app.config.ConfigProperties
import org.springframework.stereotype.Service
import java.util.*
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/MessageTemplateDto.kt b/app/src/main/kotlin/org/gameyfin/app/messages/templates/MessageTemplateDto.kt
similarity index 76%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/MessageTemplateDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/messages/templates/MessageTemplateDto.kt
index 697cdaa..76c6bb4 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/MessageTemplateDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/messages/templates/MessageTemplateDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.messages.templates
+package org.gameyfin.app.messages.templates
data class MessageTemplateDto(
val key: String,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/MessageTemplateEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/messages/templates/MessageTemplateEndpoint.kt
similarity index 91%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/MessageTemplateEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/messages/templates/MessageTemplateEndpoint.kt
index c071c38..c2bf541 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/MessageTemplateEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/messages/templates/MessageTemplateEndpoint.kt
@@ -1,8 +1,8 @@
-package de.grimsi.gameyfin.messages.templates
+package org.gameyfin.app.messages.templates
import com.vaadin.hilla.Endpoint
-import de.grimsi.gameyfin.core.Role
import jakarta.annotation.security.RolesAllowed
+import org.gameyfin.app.core.Role
@RolesAllowed(Role.Names.ADMIN)
@Endpoint
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/MessageTemplateService.kt b/app/src/main/kotlin/org/gameyfin/app/messages/templates/MessageTemplateService.kt
similarity index 98%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/MessageTemplateService.kt
rename to app/src/main/kotlin/org/gameyfin/app/messages/templates/MessageTemplateService.kt
index 4cc412a..99ee372 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/MessageTemplateService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/messages/templates/MessageTemplateService.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.messages.templates
+package org.gameyfin.app.messages.templates
import ch.digitalfondue.mjml4j.Mjml4j
import io.github.oshai.kotlinlogging.KotlinLogging
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/MessageTemplates.kt b/app/src/main/kotlin/org/gameyfin/app/messages/templates/MessageTemplates.kt
similarity index 97%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/MessageTemplates.kt
rename to app/src/main/kotlin/org/gameyfin/app/messages/templates/MessageTemplates.kt
index 336d238..ea58a07 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/MessageTemplates.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/messages/templates/MessageTemplates.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.messages.templates
+package org.gameyfin.app.messages.templates
sealed class MessageTemplates(
val key: String,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/MjmlTemplate.kt b/app/src/main/kotlin/org/gameyfin/app/messages/templates/MjmlTemplate.kt
similarity index 99%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/MjmlTemplate.kt
rename to app/src/main/kotlin/org/gameyfin/app/messages/templates/MjmlTemplate.kt
index 4677276..b69ba4f 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/MjmlTemplate.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/messages/templates/MjmlTemplate.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.messages.templates
+package org.gameyfin.app.messages.templates
abstract class MjmlTemplate {
companion object {
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/TemplateType.kt b/app/src/main/kotlin/org/gameyfin/app/messages/templates/TemplateType.kt
similarity index 63%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/TemplateType.kt
rename to app/src/main/kotlin/org/gameyfin/app/messages/templates/TemplateType.kt
index c967338..882caf9 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/messages/templates/TemplateType.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/messages/templates/TemplateType.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.messages.templates
+package org.gameyfin.app.messages.templates
enum class TemplateType(val extension: String) {
MJML("mjml"), TEXT("txt")
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/setup/SetupEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/setup/SetupEndpoint.kt
similarity index 81%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/setup/SetupEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/setup/SetupEndpoint.kt
index c6fd289..f9be5a1 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/setup/SetupEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/setup/SetupEndpoint.kt
@@ -1,10 +1,10 @@
-package de.grimsi.gameyfin.setup
+package org.gameyfin.app.setup
import com.vaadin.flow.server.auth.AnonymousAllowed
import com.vaadin.hilla.Endpoint
import com.vaadin.hilla.exception.EndpointException
-import de.grimsi.gameyfin.users.dto.UserInfoDto
-import de.grimsi.gameyfin.users.dto.UserRegistrationDto
+import org.gameyfin.app.users.dto.UserInfoDto
+import org.gameyfin.app.users.dto.UserRegistrationDto
@Endpoint
class SetupEndpoint(
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/setup/SetupFilter.kt b/app/src/main/kotlin/org/gameyfin/app/setup/SetupFilter.kt
similarity index 97%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/setup/SetupFilter.kt
rename to app/src/main/kotlin/org/gameyfin/app/setup/SetupFilter.kt
index 64cab06..6c4b22d 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/setup/SetupFilter.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/setup/SetupFilter.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.setup
+package org.gameyfin.app.setup
import jakarta.servlet.*
import jakarta.servlet.http.HttpServletRequest
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/setup/SetupService.kt b/app/src/main/kotlin/org/gameyfin/app/setup/SetupService.kt
similarity index 75%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/setup/SetupService.kt
rename to app/src/main/kotlin/org/gameyfin/app/setup/SetupService.kt
index 21af776..f54fd77 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/setup/SetupService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/setup/SetupService.kt
@@ -1,11 +1,11 @@
-package de.grimsi.gameyfin.setup
+package org.gameyfin.app.setup
-import de.grimsi.gameyfin.core.Role
-import de.grimsi.gameyfin.users.RoleService
-import de.grimsi.gameyfin.users.UserService
-import de.grimsi.gameyfin.users.dto.UserInfoDto
-import de.grimsi.gameyfin.users.dto.UserRegistrationDto
-import de.grimsi.gameyfin.users.entities.User
+import org.gameyfin.app.users.UserService
+import org.gameyfin.app.core.Role
+import org.gameyfin.app.users.RoleService
+import org.gameyfin.app.users.dto.UserInfoDto
+import org.gameyfin.app.users.dto.UserRegistrationDto
+import org.gameyfin.app.users.entities.User
import org.springframework.stereotype.Service
@Service
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/Token.kt b/app/src/main/kotlin/org/gameyfin/app/shared/token/Token.kt
similarity index 82%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/Token.kt
rename to app/src/main/kotlin/org/gameyfin/app/shared/token/Token.kt
index 4ad7367..f99c6c7 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/Token.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/shared/token/Token.kt
@@ -1,9 +1,9 @@
-package de.grimsi.gameyfin.shared.token
+package org.gameyfin.app.shared.token
-import de.grimsi.gameyfin.core.security.EncryptionConverter
-import de.grimsi.gameyfin.core.security.EncryptionMapConverter
-import de.grimsi.gameyfin.users.entities.User
+import org.gameyfin.app.core.security.EncryptionMapConverter
import jakarta.persistence.*
+import org.gameyfin.app.core.security.EncryptionConverter
+import org.gameyfin.app.users.entities.User
import org.hibernate.annotations.CreationTimestamp
import org.hibernate.annotations.OnDelete
import org.hibernate.annotations.OnDeleteAction
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenDto.kt b/app/src/main/kotlin/org/gameyfin/app/shared/token/TokenDto.kt
similarity index 92%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/shared/token/TokenDto.kt
index b409d8f..9dd1e98 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/shared/token/TokenDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.shared.token
+package org.gameyfin.app.shared.token
import java.time.Instant
import kotlin.time.toJavaDuration
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenRepository.kt b/app/src/main/kotlin/org/gameyfin/app/shared/token/TokenRepository.kt
similarity index 81%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenRepository.kt
rename to app/src/main/kotlin/org/gameyfin/app/shared/token/TokenRepository.kt
index b7189e6..840c0bb 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenRepository.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/shared/token/TokenRepository.kt
@@ -1,6 +1,6 @@
-package de.grimsi.gameyfin.shared.token
+package org.gameyfin.app.shared.token
-import de.grimsi.gameyfin.users.entities.User
+import org.gameyfin.app.users.entities.User
import org.springframework.data.jpa.repository.JpaRepository
interface TokenRepository : JpaRepository, String> {
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenService.kt b/app/src/main/kotlin/org/gameyfin/app/shared/token/TokenService.kt
similarity index 95%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenService.kt
rename to app/src/main/kotlin/org/gameyfin/app/shared/token/TokenService.kt
index cafea7c..a540dcc 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/shared/token/TokenService.kt
@@ -1,7 +1,7 @@
-package de.grimsi.gameyfin.shared.token
+package org.gameyfin.app.shared.token
-import de.grimsi.gameyfin.users.entities.User
import io.github.oshai.kotlinlogging.KotlinLogging
+import org.gameyfin.app.users.entities.User
abstract class TokenService(
private val type: T,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenType.kt b/app/src/main/kotlin/org/gameyfin/app/shared/token/TokenType.kt
similarity index 90%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenType.kt
rename to app/src/main/kotlin/org/gameyfin/app/shared/token/TokenType.kt
index 57bf6b9..e02aba7 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenType.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/shared/token/TokenType.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.shared.token
+package org.gameyfin.app.shared.token
import kotlin.time.Duration
import kotlin.time.Duration.Companion.minutes
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenTypeUserType.kt b/app/src/main/kotlin/org/gameyfin/app/shared/token/TokenTypeUserType.kt
similarity index 98%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenTypeUserType.kt
rename to app/src/main/kotlin/org/gameyfin/app/shared/token/TokenTypeUserType.kt
index c6ebfd5..88c84f4 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenTypeUserType.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/shared/token/TokenTypeUserType.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.shared.token
+package org.gameyfin.app.shared.token
import org.hibernate.engine.spi.SharedSessionContractImplementor
import org.hibernate.usertype.UserType
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenValidationResult.kt b/app/src/main/kotlin/org/gameyfin/app/shared/token/TokenValidationResult.kt
similarity index 62%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenValidationResult.kt
rename to app/src/main/kotlin/org/gameyfin/app/shared/token/TokenValidationResult.kt
index be8f7b7..005e6a5 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/shared/token/TokenValidationResult.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/shared/token/TokenValidationResult.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.shared.token
+package org.gameyfin.app.shared.token
enum class TokenValidationResult() {
VALID, INVALID, EXPIRED
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/system/SystemEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/system/SystemEndpoint.kt
similarity index 78%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/system/SystemEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/system/SystemEndpoint.kt
index 7a4edf2..2e3e565 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/system/SystemEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/system/SystemEndpoint.kt
@@ -1,8 +1,8 @@
-package de.grimsi.gameyfin.system
+package org.gameyfin.app.system
import com.vaadin.hilla.Endpoint
-import de.grimsi.gameyfin.core.Role
import jakarta.annotation.security.RolesAllowed
+import org.gameyfin.app.core.Role
@Endpoint
class SystemEndpoint(
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/system/SystemService.kt b/app/src/main/kotlin/org/gameyfin/app/system/SystemService.kt
similarity index 92%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/system/SystemService.kt
rename to app/src/main/kotlin/org/gameyfin/app/system/SystemService.kt
index e391a7e..a616e4d 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/system/SystemService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/system/SystemService.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.system
+package org.gameyfin.app.system
import org.springframework.cloud.context.restart.RestartEndpoint
import org.springframework.stereotype.Service
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/RoleService.kt b/app/src/main/kotlin/org/gameyfin/app/users/RoleService.kt
similarity index 90%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/RoleService.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/RoleService.kt
index ad3c6c5..90dedc6 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/RoleService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/RoleService.kt
@@ -1,8 +1,8 @@
-package de.grimsi.gameyfin.users
+package org.gameyfin.app.users
-import de.grimsi.gameyfin.core.Role
-import de.grimsi.gameyfin.users.entities.User
-import de.grimsi.gameyfin.users.persistence.UserRepository
+import org.gameyfin.app.users.persistence.UserRepository
+import org.gameyfin.app.core.Role
+import org.gameyfin.app.users.entities.User
import org.springframework.security.core.Authentication
import org.springframework.security.core.GrantedAuthority
import org.springframework.security.core.authority.SimpleGrantedAuthority
@@ -44,12 +44,12 @@ class RoleService(
}
fun getRolesBelowAuth(auth: Authentication): List {
- val highestUserRole = getHighestRole(auth.authorities.mapNotNull { Role.safeValueOf(it.authority) })
+ val highestUserRole = getHighestRole(auth.authorities.mapNotNull { Role.Companion.safeValueOf(it.authority) })
return Role.entries.filter { it.powerLevel < highestUserRole.powerLevel }
}
fun authoritiesToRoles(authorities: Collection): List {
- return authorities.mapNotNull { Role.safeValueOf(it.authority) }
+ return authorities.mapNotNull { Role.Companion.safeValueOf(it.authority) }
}
/**
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/SessionService.kt b/app/src/main/kotlin/org/gameyfin/app/users/SessionService.kt
similarity index 92%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/SessionService.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/SessionService.kt
index dc00883..ad5ceb1 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/SessionService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/SessionService.kt
@@ -1,6 +1,6 @@
-package de.grimsi.gameyfin.users
+package org.gameyfin.app.users
-import de.grimsi.gameyfin.users.entities.User
+import org.gameyfin.app.users.entities.User
import org.springframework.security.core.Authentication
import org.springframework.security.core.context.SecurityContextHolder
import org.springframework.security.core.session.SessionInformation
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/UserEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/users/UserEndpoint.kt
similarity index 91%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/UserEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/UserEndpoint.kt
index 5098e2c..15853c0 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/UserEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/UserEndpoint.kt
@@ -1,12 +1,12 @@
-package de.grimsi.gameyfin.users
+package org.gameyfin.app.users
import com.vaadin.hilla.Endpoint
-import de.grimsi.gameyfin.core.Role
-import de.grimsi.gameyfin.users.dto.UserInfoDto
-import de.grimsi.gameyfin.users.dto.UserUpdateDto
-import de.grimsi.gameyfin.users.enums.RoleAssignmentResult
+import org.gameyfin.app.users.dto.UserUpdateDto
+import org.gameyfin.app.users.enums.RoleAssignmentResult
import jakarta.annotation.security.PermitAll
import jakarta.annotation.security.RolesAllowed
+import org.gameyfin.app.core.Role
+import org.gameyfin.app.users.dto.UserInfoDto
import org.springframework.security.core.Authentication
import org.springframework.security.core.context.SecurityContextHolder
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/UserService.kt b/app/src/main/kotlin/org/gameyfin/app/users/UserService.kt
similarity index 77%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/UserService.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/UserService.kt
index 9a85a6d..31a76c4 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/UserService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/UserService.kt
@@ -1,25 +1,29 @@
-package de.grimsi.gameyfin.users
+package org.gameyfin.app.users
-import de.grimsi.gameyfin.config.ConfigProperties
-import de.grimsi.gameyfin.config.ConfigService
-import de.grimsi.gameyfin.core.Role
-import de.grimsi.gameyfin.core.Utils
-import de.grimsi.gameyfin.core.events.*
-import de.grimsi.gameyfin.games.entities.Image
-import de.grimsi.gameyfin.media.ImageService
-import de.grimsi.gameyfin.users.dto.UserInfoDto
-import de.grimsi.gameyfin.users.dto.UserRegistrationDto
-import de.grimsi.gameyfin.users.dto.UserUpdateDto
-import de.grimsi.gameyfin.users.emailconfirmation.EmailConfirmationService
-import de.grimsi.gameyfin.users.entities.User
-import de.grimsi.gameyfin.users.enums.RoleAssignmentResult
-import de.grimsi.gameyfin.users.persistence.UserRepository
+import org.gameyfin.app.config.ConfigService
+import org.gameyfin.app.games.entities.Image
+import org.gameyfin.app.users.dto.UserUpdateDto
+import org.gameyfin.app.users.emailconfirmation.EmailConfirmationService
+import org.gameyfin.app.users.enums.RoleAssignmentResult
+import org.gameyfin.app.users.persistence.UserRepository
import io.github.oshai.kotlinlogging.KotlinLogging
+import org.gameyfin.app.config.ConfigProperties
+import org.gameyfin.app.core.Role
+import org.gameyfin.app.core.Utils
+import org.gameyfin.app.core.events.AccountDeletedEvent
+import org.gameyfin.app.core.events.AccountStatusChangedEvent
+import org.gameyfin.app.core.events.EmailNeedsConfirmationEvent
+import org.gameyfin.app.core.events.RegistrationAttemptWithExistingEmailEvent
+import org.gameyfin.app.core.events.UserRegistrationWaitingForApprovalEvent
+import org.gameyfin.app.media.ImageService
+import org.gameyfin.app.users.dto.UserInfoDto
+import org.gameyfin.app.users.dto.UserRegistrationDto
import org.springframework.context.ApplicationEventPublisher
import org.springframework.security.core.Authentication
import org.springframework.security.core.GrantedAuthority
import org.springframework.security.core.authority.SimpleGrantedAuthority
import org.springframework.security.core.context.SecurityContextHolder
+import org.springframework.security.core.userdetails.User
import org.springframework.security.core.userdetails.UserDetails
import org.springframework.security.core.userdetails.UserDetailsService
import org.springframework.security.core.userdetails.UsernameNotFoundException
@@ -48,7 +52,7 @@ class UserService(
override fun loadUserByUsername(username: String): UserDetails {
val user = getByUsernameNonNull(username)
- return org.springframework.security.core.userdetails.User(
+ return User(
user.username,
user.password,
user.enabled,
@@ -62,21 +66,21 @@ class UserService(
fun existsByUsername(username: String): Boolean = userRepository.existsByUsername(username)
fun existsByEmail(email: String): Boolean = userRepository.existsByEmail(email)
- fun findByOidcProviderId(oidcProviderId: String): User? = userRepository.findByOidcProviderId(oidcProviderId)
+ fun findByOidcProviderId(oidcProviderId: String): org.gameyfin.app.users.entities.User? = userRepository.findByOidcProviderId(oidcProviderId)
fun getAllUsers(): List {
return userRepository.findAll().map { u -> toUserInfo(u) }
}
- fun getByEmail(email: String): User? {
+ fun getByEmail(email: String): org.gameyfin.app.users.entities.User? {
return userRepository.findByEmail(email)
}
- fun getByUsername(username: String): User? {
+ fun getByUsername(username: String): org.gameyfin.app.users.entities.User? {
return userRepository.findByUsername(username)
}
- fun getByUsernameNonNull(username: String): User {
+ fun getByUsernameNonNull(username: String): org.gameyfin.app.users.entities.User {
return userRepository.findByUsername(username) ?: throw UsernameNotFoundException("Unknown user '$username'")
}
@@ -84,10 +88,10 @@ class UserService(
val principal = auth.principal
if (principal is OidcUser) {
- val oidcUser = User(principal)
+ val oidcUser = org.gameyfin.app.users.entities.User(principal)
val userInfoDto = toUserInfo(oidcUser)
userInfoDto.roles = roleService.extractGrantedAuthorities(principal.authorities)
- .mapNotNull { Role.safeValueOf(it.authority) }
+ .mapNotNull { Role.Companion.safeValueOf(it.authority) }
return userInfoDto
}
@@ -121,7 +125,7 @@ class UserService(
return user.avatar != null && user.avatar!!.id != null
}
- fun registerOrUpdateUser(user: User): User {
+ fun registerOrUpdateUser(user: org.gameyfin.app.users.entities.User): org.gameyfin.app.users.entities.User {
user.password = passwordEncoder.encode(user.password)
return userRepository.save(user)
}
@@ -136,13 +140,19 @@ class UserService(
}
userRepository.findByEmail(registration.email)?.let {
- eventPublisher.publishEvent(RegistrationAttemptWithExistingEmailEvent(this, it, Utils.getBaseUrl()))
+ eventPublisher.publishEvent(
+ RegistrationAttemptWithExistingEmailEvent(
+ this,
+ it,
+ Utils.Companion.getBaseUrl()
+ )
+ )
return
}
val adminNeedsToApprove = config.get(ConfigProperties.Users.SignUps.ConfirmationRequired) == true
- var user = User(
+ var user = org.gameyfin.app.users.entities.User(
username = registration.username,
password = passwordEncoder.encode(registration.password),
email = registration.email,
@@ -155,17 +165,17 @@ class UserService(
if (adminNeedsToApprove) {
eventPublisher.publishEvent(UserRegistrationWaitingForApprovalEvent(this, user))
} else {
- eventPublisher.publishEvent(AccountStatusChangedEvent(this, user, Utils.getBaseUrl()))
+ eventPublisher.publishEvent(AccountStatusChangedEvent(this, user, Utils.Companion.getBaseUrl()))
}
if (!user.emailConfirmed) {
val token = emailConfirmationService.generate(user)
- eventPublisher.publishEvent(EmailNeedsConfirmationEvent(this, token, Utils.getBaseUrl()))
+ eventPublisher.publishEvent(EmailNeedsConfirmationEvent(this, token, Utils.Companion.getBaseUrl()))
}
}
- fun registerUserFromInvitation(registration: UserRegistrationDto, email: String): User {
- val user = User(
+ fun registerUserFromInvitation(registration: UserRegistrationDto, email: String): org.gameyfin.app.users.entities.User {
+ val user = org.gameyfin.app.users.entities.User(
username = registration.username,
password = passwordEncoder.encode(registration.password),
email = email,
@@ -195,13 +205,13 @@ class UserService(
user.email = it
user.emailConfirmed = false
val token = emailConfirmationService.generate(user)
- eventPublisher.publishEvent(EmailNeedsConfirmationEvent(this, token, Utils.getBaseUrl()))
+ eventPublisher.publishEvent(EmailNeedsConfirmationEvent(this, token, Utils.Companion.getBaseUrl()))
}
userRepository.save(user)
}
- fun updatePassword(user: User, newPassword: String) {
+ fun updatePassword(user: org.gameyfin.app.users.entities.User, newPassword: String) {
user.password = passwordEncoder.encode(newPassword)
userRepository.save(user)
}
@@ -219,7 +229,7 @@ class UserService(
return RoleAssignmentResult.TARGET_POWER_LEVEL_TOO_HIGH
}
- val newAssignedRoles = roleNames.mapNotNull { r -> Role.safeValueOf(r) }
+ val newAssignedRoles = roleNames.mapNotNull { r -> Role.Companion.safeValueOf(r) }
val newAssignedRolesLevel = roleService.getHighestRole(newAssignedRoles).powerLevel
val currentUserLevel = roleService.getHighestRoleFromAuthorities(currentUser.authorities).powerLevel
@@ -238,7 +248,7 @@ class UserService(
return canManage(targetUser)
}
- fun canManage(targetUser: User): Boolean {
+ fun canManage(targetUser: org.gameyfin.app.users.entities.User): Boolean {
val currentUser = SecurityContextHolder.getContext().authentication
val currentUserLevel = roleService.getHighestRoleFromAuthorities(currentUser.authorities).powerLevel
val targetUserLevel = roleService.getHighestRole(targetUser.roles).powerLevel
@@ -249,16 +259,16 @@ class UserService(
val user = getByUsernameNonNull(username)
user.enabled = enabled
userRepository.save(user)
- eventPublisher.publishEvent(AccountStatusChangedEvent(this, user, Utils.getBaseUrl()))
+ eventPublisher.publishEvent(AccountStatusChangedEvent(this, user, Utils.Companion.getBaseUrl()))
}
fun deleteUser(username: String) {
val user = getByUsernameNonNull(username)
userRepository.delete(user)
- eventPublisher.publishEvent(AccountDeletedEvent(this, user, Utils.getBaseUrl()))
+ eventPublisher.publishEvent(AccountDeletedEvent(this, user, Utils.Companion.getBaseUrl()))
}
- fun toUserInfo(user: User): UserInfoDto {
+ fun toUserInfo(user: org.gameyfin.app.users.entities.User): UserInfoDto {
return UserInfoDto(
username = user.username,
email = user.email,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/dto/UserInfoDto.kt b/app/src/main/kotlin/org/gameyfin/app/users/dto/UserInfoDto.kt
similarity index 77%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/dto/UserInfoDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/dto/UserInfoDto.kt
index f447392..33881d1 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/dto/UserInfoDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/dto/UserInfoDto.kt
@@ -1,6 +1,6 @@
-package de.grimsi.gameyfin.users.dto
+package org.gameyfin.app.users.dto
-import de.grimsi.gameyfin.core.Role
+import org.gameyfin.app.core.Role
data class UserInfoDto(
val username: String,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/dto/UserRegistrationDto.kt b/app/src/main/kotlin/org/gameyfin/app/users/dto/UserRegistrationDto.kt
similarity index 74%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/dto/UserRegistrationDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/dto/UserRegistrationDto.kt
index fcc95dc..7c59900 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/dto/UserRegistrationDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/dto/UserRegistrationDto.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.users.dto
+package org.gameyfin.app.users.dto
data class UserRegistrationDto(
val username: String,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/dto/UserUpdateDto.kt b/app/src/main/kotlin/org/gameyfin/app/users/dto/UserUpdateDto.kt
similarity index 65%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/dto/UserUpdateDto.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/dto/UserUpdateDto.kt
index 511429e..27027ca 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/dto/UserUpdateDto.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/dto/UserUpdateDto.kt
@@ -1,6 +1,6 @@
-package de.grimsi.gameyfin.users.dto
+package org.gameyfin.app.users.dto
-import de.grimsi.gameyfin.core.annotations.NullOrNotBlank
+import org.gameyfin.app.core.annotations.NullOrNotBlank
data class UserUpdateDto(
@field:NullOrNotBlank
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/emailconfirmation/EmailConfirmationEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/users/emailconfirmation/EmailConfirmationEndpoint.kt
similarity index 83%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/emailconfirmation/EmailConfirmationEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/emailconfirmation/EmailConfirmationEndpoint.kt
index 8802082..ddb1975 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/emailconfirmation/EmailConfirmationEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/emailconfirmation/EmailConfirmationEndpoint.kt
@@ -1,9 +1,9 @@
-package de.grimsi.gameyfin.users.emailconfirmation
+package org.gameyfin.app.users.emailconfirmation
import com.vaadin.hilla.Endpoint
-import de.grimsi.gameyfin.shared.token.TokenValidationResult
-import de.grimsi.gameyfin.users.UserService
+import org.gameyfin.app.users.UserService
import jakarta.annotation.security.PermitAll
+import org.gameyfin.app.shared.token.TokenValidationResult
import org.springframework.security.core.Authentication
import org.springframework.security.core.context.SecurityContextHolder
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/emailconfirmation/EmailConfirmationService.kt b/app/src/main/kotlin/org/gameyfin/app/users/emailconfirmation/EmailConfirmationService.kt
similarity index 65%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/emailconfirmation/EmailConfirmationService.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/emailconfirmation/EmailConfirmationService.kt
index a16c61b..56f4e47 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/emailconfirmation/EmailConfirmationService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/emailconfirmation/EmailConfirmationService.kt
@@ -1,15 +1,15 @@
-package de.grimsi.gameyfin.users.emailconfirmation
+package org.gameyfin.app.users.emailconfirmation
-import de.grimsi.gameyfin.core.Utils
-import de.grimsi.gameyfin.core.events.EmailNeedsConfirmationEvent
-import de.grimsi.gameyfin.shared.token.TokenRepository
-import de.grimsi.gameyfin.shared.token.TokenService
-import de.grimsi.gameyfin.shared.token.TokenType.EmailConfirmation
-import de.grimsi.gameyfin.shared.token.TokenValidationResult
-import de.grimsi.gameyfin.users.entities.User
-import de.grimsi.gameyfin.users.persistence.UserRepository
+import org.gameyfin.app.core.events.EmailNeedsConfirmationEvent
+import org.gameyfin.app.shared.token.TokenRepository
+import org.gameyfin.app.users.persistence.UserRepository
import io.github.oshai.kotlinlogging.KLogger
import io.github.oshai.kotlinlogging.KotlinLogging
+import org.gameyfin.app.core.Utils
+import org.gameyfin.app.shared.token.TokenService
+import org.gameyfin.app.shared.token.TokenType
+import org.gameyfin.app.shared.token.TokenValidationResult
+import org.gameyfin.app.users.entities.User
import org.springframework.context.ApplicationEventPublisher
import org.springframework.stereotype.Service
@@ -18,12 +18,12 @@ class EmailConfirmationService(
tokenRepository: TokenRepository,
private val userRepository: UserRepository,
private val eventPublisher: ApplicationEventPublisher
-) : TokenService(EmailConfirmation, tokenRepository) {
+) : TokenService(TokenType.EmailConfirmation, tokenRepository) {
val log: KLogger = KotlinLogging.logger {}
fun confirmEmail(secret: String): TokenValidationResult {
- val emailConfirmationToken = get(secret, EmailConfirmation)
+ val emailConfirmationToken = get(secret, TokenType.EmailConfirmation)
?: return TokenValidationResult.INVALID
if (emailConfirmationToken.expired) {
@@ -44,7 +44,7 @@ class EmailConfirmationService(
}
val token = generate(user)
- eventPublisher.publishEvent(EmailNeedsConfirmationEvent(user, token, Utils.getBaseUrl()))
+ eventPublisher.publishEvent(EmailNeedsConfirmationEvent(user, token, Utils.Companion.getBaseUrl()))
}
private fun confirmEmail(user: User) {
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/entities/User.kt b/app/src/main/kotlin/org/gameyfin/app/users/entities/User.kt
similarity index 84%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/entities/User.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/entities/User.kt
index 147d903..f170bb0 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/entities/User.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/entities/User.kt
@@ -1,9 +1,9 @@
-package de.grimsi.gameyfin.users.entities
+package org.gameyfin.app.users.entities
-import de.grimsi.gameyfin.core.Role
-import de.grimsi.gameyfin.core.security.EncryptionConverter
-import de.grimsi.gameyfin.games.entities.Image
+import org.gameyfin.app.games.entities.Image
import jakarta.persistence.*
+import org.gameyfin.app.core.Role
+import org.gameyfin.app.core.security.EncryptionConverter
import org.springframework.security.oauth2.core.oidc.user.OidcUser
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/enums/RoleAssignmentResult.kt b/app/src/main/kotlin/org/gameyfin/app/users/enums/RoleAssignmentResult.kt
similarity index 78%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/enums/RoleAssignmentResult.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/enums/RoleAssignmentResult.kt
index 517795f..a4f2805 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/enums/RoleAssignmentResult.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/enums/RoleAssignmentResult.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.users.enums
+package org.gameyfin.app.users.enums
enum class RoleAssignmentResult {
SUCCESS,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/enums/UserInvitationAcceptanceResult.kt b/app/src/main/kotlin/org/gameyfin/app/users/enums/UserInvitationAcceptanceResult.kt
similarity index 74%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/enums/UserInvitationAcceptanceResult.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/enums/UserInvitationAcceptanceResult.kt
index 298f96f..8366302 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/enums/UserInvitationAcceptanceResult.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/enums/UserInvitationAcceptanceResult.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.users.enums
+package org.gameyfin.app.users.enums
enum class UserInvitationAcceptanceResult {
SUCCESS,
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/passwordreset/PasswordResetEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/users/passwordreset/PasswordResetEndpoint.kt
similarity index 77%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/passwordreset/PasswordResetEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/passwordreset/PasswordResetEndpoint.kt
index 4ebf23f..9d1a80e 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/passwordreset/PasswordResetEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/passwordreset/PasswordResetEndpoint.kt
@@ -1,12 +1,12 @@
-package de.grimsi.gameyfin.users.passwordreset
+package org.gameyfin.app.users.passwordreset
import com.vaadin.flow.server.auth.AnonymousAllowed
import com.vaadin.hilla.Endpoint
-import de.grimsi.gameyfin.core.Role
-import de.grimsi.gameyfin.shared.token.TokenDto
-import de.grimsi.gameyfin.shared.token.TokenValidationResult
-import de.grimsi.gameyfin.users.UserService
+import org.gameyfin.app.shared.token.TokenDto
+import org.gameyfin.app.users.UserService
import jakarta.annotation.security.RolesAllowed
+import org.gameyfin.app.core.Role
+import org.gameyfin.app.shared.token.TokenValidationResult
@Endpoint
@AnonymousAllowed
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/passwordreset/PasswordResetService.kt b/app/src/main/kotlin/org/gameyfin/app/users/passwordreset/PasswordResetService.kt
similarity index 76%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/passwordreset/PasswordResetService.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/passwordreset/PasswordResetService.kt
index 6c46187..73fa75e 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/passwordreset/PasswordResetService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/passwordreset/PasswordResetService.kt
@@ -1,14 +1,18 @@
-package de.grimsi.gameyfin.users.passwordreset
+package org.gameyfin.app.users.passwordreset
-import de.grimsi.gameyfin.core.Utils
-import de.grimsi.gameyfin.core.events.PasswordResetRequestEvent
-import de.grimsi.gameyfin.messages.MessageService
-import de.grimsi.gameyfin.shared.token.*
-import de.grimsi.gameyfin.shared.token.TokenType.PasswordReset
-import de.grimsi.gameyfin.users.SessionService
-import de.grimsi.gameyfin.users.UserService
-import de.grimsi.gameyfin.users.entities.User
+import org.gameyfin.app.core.events.PasswordResetRequestEvent
+import org.gameyfin.app.messages.MessageService
+import org.gameyfin.app.users.SessionService
+import org.gameyfin.app.users.UserService
import io.github.oshai.kotlinlogging.KotlinLogging
+import org.gameyfin.app.core.Utils
+import org.gameyfin.app.shared.token.Token
+import org.gameyfin.app.shared.token.TokenDto
+import org.gameyfin.app.shared.token.TokenRepository
+import org.gameyfin.app.shared.token.TokenService
+import org.gameyfin.app.shared.token.TokenType
+import org.gameyfin.app.shared.token.TokenValidationResult
+import org.gameyfin.app.users.entities.User
import org.springframework.context.ApplicationEventPublisher
import org.springframework.stereotype.Service
import java.security.SecureRandom
@@ -20,13 +24,13 @@ class PasswordResetService(
private val messageService: MessageService,
private val sessionService: SessionService,
private val eventPublisher: ApplicationEventPublisher
-) : TokenService(PasswordReset, tokenRepository) {
+) : TokenService(TokenType.PasswordReset, tokenRepository) {
private val log = KotlinLogging.logger {}
private val secureRandom = SecureRandom()
- override fun generate(user: User): Token {
+ override fun generate(user: User): Token {
if (user.oidcProviderId != null) {
throw IllegalStateException("Cannot create password reset token for user '${user.username}' because user is managed externally")
}
@@ -60,7 +64,7 @@ class PasswordResetService(
*/
fun requestPasswordReset(email: String) {
- val maskedEmail = Utils.maskEmail(email)
+ val maskedEmail = Utils.Companion.maskEmail(email)
log.info { "Initiating password reset request for '${maskedEmail}'" }
@@ -82,14 +86,14 @@ class PasswordResetService(
}
val token = generate(user)
- eventPublisher.publishEvent(PasswordResetRequestEvent(this, token, Utils.getBaseUrl()))
+ eventPublisher.publishEvent(PasswordResetRequestEvent(this, token, Utils.Companion.getBaseUrl()))
// Simulate a delay to prevent timing attacks
Thread.sleep(secureRandom.nextLong(1024))
}
fun resetPassword(secret: String, newPassword: String): TokenValidationResult {
- val passwordResetToken = get(secret, PasswordReset)
+ val passwordResetToken = get(secret, TokenType.PasswordReset)
?: return TokenValidationResult.INVALID
if (passwordResetToken.expired) {
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/persistence/UserRepository.kt b/app/src/main/kotlin/org/gameyfin/app/users/persistence/UserRepository.kt
similarity index 76%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/persistence/UserRepository.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/persistence/UserRepository.kt
index feda205..847aa8d 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/persistence/UserRepository.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/persistence/UserRepository.kt
@@ -1,7 +1,7 @@
-package de.grimsi.gameyfin.users.persistence
+package org.gameyfin.app.users.persistence
-import de.grimsi.gameyfin.core.Role
-import de.grimsi.gameyfin.users.entities.User
+import org.gameyfin.app.core.Role
+import org.gameyfin.app.users.entities.User
import org.springframework.data.jpa.repository.JpaRepository
interface UserRepository : JpaRepository {
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/preferences/UserPreference.kt b/app/src/main/kotlin/org/gameyfin/app/users/preferences/UserPreference.kt
similarity index 79%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/preferences/UserPreference.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/preferences/UserPreference.kt
index e3daf2a..fca64b3 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/preferences/UserPreference.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/preferences/UserPreference.kt
@@ -1,7 +1,7 @@
-package de.grimsi.gameyfin.users.preferences
+package org.gameyfin.app.users.preferences
-import de.grimsi.gameyfin.core.security.EncryptionConverter
import jakarta.persistence.*
+import org.gameyfin.app.core.security.EncryptionConverter
import java.io.Serializable
@Entity
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/preferences/UserPreferenceRepository.kt b/app/src/main/kotlin/org/gameyfin/app/users/preferences/UserPreferenceRepository.kt
similarity index 76%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/preferences/UserPreferenceRepository.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/preferences/UserPreferenceRepository.kt
index 624a184..562dc33 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/preferences/UserPreferenceRepository.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/preferences/UserPreferenceRepository.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.users.preferences
+package org.gameyfin.app.users.preferences
import org.springframework.data.jpa.repository.JpaRepository
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/preferences/UserPreferences.kt b/app/src/main/kotlin/org/gameyfin/app/users/preferences/UserPreferences.kt
similarity index 89%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/preferences/UserPreferences.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/preferences/UserPreferences.kt
index 1135893..0f5a04a 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/preferences/UserPreferences.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/preferences/UserPreferences.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.users.preferences
+package org.gameyfin.app.users.preferences
import java.io.Serializable
import kotlin.reflect.KClass
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/preferences/UserPreferencesEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/users/preferences/UserPreferencesEndpoint.kt
similarity index 88%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/preferences/UserPreferencesEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/preferences/UserPreferencesEndpoint.kt
index a68927b..ff1fa87 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/preferences/UserPreferencesEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/preferences/UserPreferencesEndpoint.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.users.preferences
+package org.gameyfin.app.users.preferences
import com.vaadin.hilla.Endpoint
import jakarta.annotation.security.PermitAll
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/preferences/UserPreferencesService.kt b/app/src/main/kotlin/org/gameyfin/app/users/preferences/UserPreferencesService.kt
similarity index 98%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/preferences/UserPreferencesService.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/preferences/UserPreferencesService.kt
index 4ac18a0..963644e 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/preferences/UserPreferencesService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/preferences/UserPreferencesService.kt
@@ -1,6 +1,6 @@
-package de.grimsi.gameyfin.users.preferences
+package org.gameyfin.app.users.preferences
-import de.grimsi.gameyfin.users.UserService
+import org.gameyfin.app.users.UserService
import io.github.oshai.kotlinlogging.KotlinLogging
import org.springframework.security.core.context.SecurityContextHolder
import org.springframework.stereotype.Service
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/registration/InvitationService.kt b/app/src/main/kotlin/org/gameyfin/app/users/registration/InvitationService.kt
similarity index 67%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/registration/InvitationService.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/registration/InvitationService.kt
index 61ff3bf..b27602c 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/registration/InvitationService.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/registration/InvitationService.kt
@@ -1,15 +1,15 @@
-package de.grimsi.gameyfin.users.registration
+package org.gameyfin.app.users.registration
-import de.grimsi.gameyfin.core.Utils
-import de.grimsi.gameyfin.core.events.AccountStatusChangedEvent
-import de.grimsi.gameyfin.core.events.UserInvitationEvent
-import de.grimsi.gameyfin.shared.token.TokenDto
-import de.grimsi.gameyfin.shared.token.TokenRepository
-import de.grimsi.gameyfin.shared.token.TokenService
-import de.grimsi.gameyfin.shared.token.TokenType.Invitation
-import de.grimsi.gameyfin.users.UserService
-import de.grimsi.gameyfin.users.dto.UserRegistrationDto
-import de.grimsi.gameyfin.users.enums.UserInvitationAcceptanceResult
+import org.gameyfin.app.core.events.AccountStatusChangedEvent
+import org.gameyfin.app.core.events.UserInvitationEvent
+import org.gameyfin.app.shared.token.TokenDto
+import org.gameyfin.app.shared.token.TokenRepository
+import org.gameyfin.app.users.UserService
+import org.gameyfin.app.core.Utils
+import org.gameyfin.app.shared.token.TokenService
+import org.gameyfin.app.shared.token.TokenType
+import org.gameyfin.app.users.dto.UserRegistrationDto
+import org.gameyfin.app.users.enums.UserInvitationAcceptanceResult
import org.springframework.context.ApplicationEventPublisher
import org.springframework.security.core.Authentication
import org.springframework.security.core.context.SecurityContextHolder
@@ -20,7 +20,7 @@ class InvitationService(
tokenRepository: TokenRepository,
private val userService: UserService,
private val eventPublisher: ApplicationEventPublisher
-) : TokenService(Invitation, tokenRepository) {
+) : TokenService(TokenType.Invitation, tokenRepository) {
companion object {
private const val EMAIL_KEY = "email"
@@ -28,14 +28,14 @@ class InvitationService(
fun createInvitation(email: String): TokenDto {
if (userService.existsByEmail(email))
- throw IllegalStateException("User with email ${Utils.maskEmail(email)} is already registered")
+ throw IllegalStateException("User with email ${Utils.Companion.maskEmail(email)} is already registered")
val auth: Authentication = SecurityContextHolder.getContext().authentication
val user = userService.getByUsername(auth.name) ?: throw IllegalStateException("User not found")
val payload = mapOf(EMAIL_KEY to email)
val token = super.generateWithPayload(user, payload)
- eventPublisher.publishEvent(UserInvitationEvent(this, token, Utils.getBaseUrl(), email))
+ eventPublisher.publishEvent(UserInvitationEvent(this, token, Utils.Companion.getBaseUrl(), email))
return TokenDto(token)
}
@@ -45,14 +45,14 @@ class InvitationService(
}
fun acceptInvitation(secret: String, registration: UserRegistrationDto): UserInvitationAcceptanceResult {
- val invitationToken = super.get(secret, Invitation) ?: return UserInvitationAcceptanceResult.TOKEN_INVALID
+ val invitationToken = super.get(secret, TokenType.Invitation) ?: return UserInvitationAcceptanceResult.TOKEN_INVALID
val email = invitationToken.payload[EMAIL_KEY] ?: return UserInvitationAcceptanceResult.TOKEN_INVALID
if (invitationToken.expired) return UserInvitationAcceptanceResult.TOKEN_EXPIRED
try {
val user = userService.registerUserFromInvitation(registration, email)
super.delete(invitationToken)
- eventPublisher.publishEvent(AccountStatusChangedEvent(this, user, Utils.getBaseUrl()))
+ eventPublisher.publishEvent(AccountStatusChangedEvent(this, user, Utils.Companion.getBaseUrl()))
} catch (e: IllegalStateException) {
return UserInvitationAcceptanceResult.USERNAME_TAKEN
}
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/registration/RegistrationEndpoint.kt b/app/src/main/kotlin/org/gameyfin/app/users/registration/RegistrationEndpoint.kt
similarity index 79%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/registration/RegistrationEndpoint.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/registration/RegistrationEndpoint.kt
index 115bdb4..a528c70 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/registration/RegistrationEndpoint.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/registration/RegistrationEndpoint.kt
@@ -1,13 +1,13 @@
-package de.grimsi.gameyfin.users.registration
+package org.gameyfin.app.users.registration
import com.vaadin.flow.server.auth.AnonymousAllowed
import com.vaadin.hilla.Endpoint
-import de.grimsi.gameyfin.core.Role
-import de.grimsi.gameyfin.shared.token.TokenDto
-import de.grimsi.gameyfin.users.UserService
-import de.grimsi.gameyfin.users.dto.UserRegistrationDto
-import de.grimsi.gameyfin.users.enums.UserInvitationAcceptanceResult
+import org.gameyfin.app.shared.token.TokenDto
+import org.gameyfin.app.users.UserService
import jakarta.annotation.security.RolesAllowed
+import org.gameyfin.app.core.Role
+import org.gameyfin.app.users.dto.UserRegistrationDto
+import org.gameyfin.app.users.enums.UserInvitationAcceptanceResult
@AnonymousAllowed
@Endpoint
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/util/UserDetailsExtensions.kt b/app/src/main/kotlin/org/gameyfin/app/users/util/UserDetailsExtensions.kt
similarity index 76%
rename from gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/util/UserDetailsExtensions.kt
rename to app/src/main/kotlin/org/gameyfin/app/users/util/UserDetailsExtensions.kt
index 1f82442..6cb6ea1 100644
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/users/util/UserDetailsExtensions.kt
+++ b/app/src/main/kotlin/org/gameyfin/app/users/util/UserDetailsExtensions.kt
@@ -1,7 +1,7 @@
-package de.grimsi.gameyfin.users.util
+package org.gameyfin.app.users.util
-import de.grimsi.gameyfin.core.Role
-import de.grimsi.gameyfin.users.entities.User
+import org.gameyfin.app.core.Role
+import org.gameyfin.app.users.entities.User
import org.springframework.security.core.userdetails.UserDetails
fun User.hasRole(role: Role): Boolean {
diff --git a/gameyfin/src/main/resources/META-INF/resources/images/Logo.svg b/app/src/main/resources/META-INF/resources/images/Logo.svg
similarity index 100%
rename from gameyfin/src/main/resources/META-INF/resources/images/Logo.svg
rename to app/src/main/resources/META-INF/resources/images/Logo.svg
diff --git a/gameyfin/src/main/resources/application-dev.yml b/app/src/main/resources/application-dev.yml
similarity index 71%
rename from gameyfin/src/main/resources/application-dev.yml
rename to app/src/main/resources/application-dev.yml
index 072d8f4..d8103d5 100644
--- a/gameyfin/src/main/resources/application-dev.yml
+++ b/app/src/main/resources/application-dev.yml
@@ -1,6 +1,6 @@
logging.level:
root: info
- de.grimsi.gameyfin.GameyfinApplicationKt: info
+ org.gameyfin.GameyfinApplicationKt: info
spring:
datasource:
diff --git a/gameyfin/src/main/resources/application.yml b/app/src/main/resources/application.yml
similarity index 94%
rename from gameyfin/src/main/resources/application.yml
rename to app/src/main/resources/application.yml
index 3adbcaa..9c53454 100644
--- a/gameyfin/src/main/resources/application.yml
+++ b/app/src/main/resources/application.yml
@@ -1,8 +1,8 @@
logging.level:
root: warn
org.atmosphere: warn
- de.grimsi.gameyfin: info
- de.grimsi.gameyfin.GameyfinApplicationKt: warn
+ org.gameyfin: info
+ org.gameyfin.GameyfinApplicationKt: warn
org.springframework.security.config.annotation.authentication.configuration.InitializeUserDetailsBeanManagerConfigurer: ERROR
server:
diff --git a/gameyfin/src/main/resources/banner.txt b/app/src/main/resources/banner.txt
similarity index 100%
rename from gameyfin/src/main/resources/banner.txt
rename to app/src/main/resources/banner.txt
diff --git a/gameyfin/src/main/resources/certificates/gameyfin-plugins.pem b/app/src/main/resources/certificates/gameyfin-plugins.pem
similarity index 98%
rename from gameyfin/src/main/resources/certificates/gameyfin-plugins.pem
rename to app/src/main/resources/certificates/gameyfin-plugins.pem
index cc7018b..24760c5 100644
--- a/gameyfin/src/main/resources/certificates/gameyfin-plugins.pem
+++ b/app/src/main/resources/certificates/gameyfin-plugins.pem
@@ -1,23 +1,23 @@
------BEGIN CERTIFICATE-----
-MIID6zCCAlOgAwIBAgIIInXOudKRPwswDQYJKoZIhvcNAQEMBQAwJDERMA8GA1UE
-ChMIR2FtZXlmaW4xDzANBgNVBAMTBmdyaW1zaTAeFw0yNTA0MDEyMzI0MjdaFw0y
-NTA2MzAyMzI0MjdaMCQxETAPBgNVBAoTCEdhbWV5ZmluMQ8wDQYDVQQDEwZncmlt
-c2kwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCe3Nfyz++gEGyiPXR2
-Gi1BtJrbQyAhqkO94XrCa0MmBPlb5AxakuMh3G9A8VmKgfaGithC5uO6rNKQX9rr
-TnxUBBNjVh0bu/gFD3YfgiE+UmPrf0BM2bFFm3fc3Ag4RwkyMnORTjUiKIJIK9LG
-kXIIeDd0SO5Hs+LBvyymOLNX6nsVIFa+tywVWJwPDLwxnf66PIH8E16aGBlsfwFl
-IjiVFp+54VaaOLv5vm+PcbPg4Q2bg3kD25V5U+KNd2FqElryKflrRQekCo1T52FL
-l7HQvyYdI8+E6wKNhO3io86/i9o7rNIl7QtO4OrwuRpoNho33HzqFMMkcz2yCWjR
-ilFzw7bGvAhKeCjrNHMHHpYlbXJ28opMJAfZMr0jLl8z2UuHe2kRCtUJL8sPpqcB
-RFT83/+Zc+3b846OIHf+WXGCtXBJ3XR2m+aZh41I4L4PSDDMebjboTVDvq0pfnvY
-ZIw1FAJTP09Wxe1ZB5xKBNG+MYQm4q0zoP0Os9BhAGAurQUCAwEAAaMhMB8wHQYD
-VR0OBBYEFOfG8eAgUuk0TK2ds09pV1BjFyqZMA0GCSqGSIb3DQEBDAUAA4IBgQCV
-YpKo50L1AjkjVpNnkVGX+mzTEHWkjE5Xhjmc/xsZAMeP2Dg0wSWqU6Vc1gya3Yvc
-Lnbjj1pVh5JLNNrTmCfttqYAuPYNlxkUfbzv5+61gyI4FsCUbddLwql9WSHToyeW
-xW+SmwIkKdRLFOiO927DuHc1G2UVXRPn2YFHTUTeHxZUSvBXvRoeQ+ofgqf54jGq
-oTNTe65/NfXzhQyTycwk3Zz3bRB8La2r20PBpNM8oTGwxbyGrbNYdZb+OwGIjEkB
-KeES8mjwS2PsPy6NdtLxN68No38ilXRzCzQL06lmLYA530n/SigPWbuRRE2JlDmN
-KcU+UQgzGf5gJ8Kut/Kg0K+qI4gq761N4EPnWXE8I59OhGDRzAA6FyJf8PJ9luQc
-pz7Yoc8QxRrDm36eQBBLVmGsnXVUD6FTvuofTjFPMrTOZFCcHNmH9JDdSCQHO1sI
-UCu7bWYGkAF93hFlAfl1h60tmZAyR2gMGwfgyDbdL2XYXA7dDRQftEQvtBmp5zI=
------END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIID6zCCAlOgAwIBAgIIInXOudKRPwswDQYJKoZIhvcNAQEMBQAwJDERMA8GA1UE
+ChMIR2FtZXlmaW4xDzANBgNVBAMTBmdyaW1zaTAeFw0yNTA0MDEyMzI0MjdaFw0y
+NTA2MzAyMzI0MjdaMCQxETAPBgNVBAoTCEdhbWV5ZmluMQ8wDQYDVQQDEwZncmlt
+c2kwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCe3Nfyz++gEGyiPXR2
+Gi1BtJrbQyAhqkO94XrCa0MmBPlb5AxakuMh3G9A8VmKgfaGithC5uO6rNKQX9rr
+TnxUBBNjVh0bu/gFD3YfgiE+UmPrf0BM2bFFm3fc3Ag4RwkyMnORTjUiKIJIK9LG
+kXIIeDd0SO5Hs+LBvyymOLNX6nsVIFa+tywVWJwPDLwxnf66PIH8E16aGBlsfwFl
+IjiVFp+54VaaOLv5vm+PcbPg4Q2bg3kD25V5U+KNd2FqElryKflrRQekCo1T52FL
+l7HQvyYdI8+E6wKNhO3io86/i9o7rNIl7QtO4OrwuRpoNho33HzqFMMkcz2yCWjR
+ilFzw7bGvAhKeCjrNHMHHpYlbXJ28opMJAfZMr0jLl8z2UuHe2kRCtUJL8sPpqcB
+RFT83/+Zc+3b846OIHf+WXGCtXBJ3XR2m+aZh41I4L4PSDDMebjboTVDvq0pfnvY
+ZIw1FAJTP09Wxe1ZB5xKBNG+MYQm4q0zoP0Os9BhAGAurQUCAwEAAaMhMB8wHQYD
+VR0OBBYEFOfG8eAgUuk0TK2ds09pV1BjFyqZMA0GCSqGSIb3DQEBDAUAA4IBgQCV
+YpKo50L1AjkjVpNnkVGX+mzTEHWkjE5Xhjmc/xsZAMeP2Dg0wSWqU6Vc1gya3Yvc
+Lnbjj1pVh5JLNNrTmCfttqYAuPYNlxkUfbzv5+61gyI4FsCUbddLwql9WSHToyeW
+xW+SmwIkKdRLFOiO927DuHc1G2UVXRPn2YFHTUTeHxZUSvBXvRoeQ+ofgqf54jGq
+oTNTe65/NfXzhQyTycwk3Zz3bRB8La2r20PBpNM8oTGwxbyGrbNYdZb+OwGIjEkB
+KeES8mjwS2PsPy6NdtLxN68No38ilXRzCzQL06lmLYA530n/SigPWbuRRE2JlDmN
+KcU+UQgzGf5gJ8Kut/Kg0K+qI4gq761N4EPnWXE8I59OhGDRzAA6FyJf8PJ9luQc
+pz7Yoc8QxRrDm36eQBBLVmGsnXVUD6FTvuofTjFPMrTOZFCcHNmH9JDdSCQHO1sI
+UCu7bWYGkAF93hFlAfl1h60tmZAyR2gMGwfgyDbdL2XYXA7dDRQftEQvtBmp5zI=
+-----END CERTIFICATE-----
diff --git a/gameyfin/src/main/resources/templates/log-config-template.xml b/app/src/main/resources/templates/log-config-template.xml
similarity index 93%
rename from gameyfin/src/main/resources/templates/log-config-template.xml
rename to app/src/main/resources/templates/log-config-template.xml
index 573d52d..3de71c7 100644
--- a/gameyfin/src/main/resources/templates/log-config-template.xml
+++ b/app/src/main/resources/templates/log-config-template.xml
@@ -15,7 +15,7 @@
-
+
diff --git a/gameyfin/src/main/resources/templates/messages/account-deleted.mjml b/app/src/main/resources/templates/messages/account-deleted.mjml
similarity index 100%
rename from gameyfin/src/main/resources/templates/messages/account-deleted.mjml
rename to app/src/main/resources/templates/messages/account-deleted.mjml
diff --git a/gameyfin/src/main/resources/templates/messages/account-disabled.mjml b/app/src/main/resources/templates/messages/account-disabled.mjml
similarity index 100%
rename from gameyfin/src/main/resources/templates/messages/account-disabled.mjml
rename to app/src/main/resources/templates/messages/account-disabled.mjml
diff --git a/gameyfin/src/main/resources/templates/messages/account-enabled.mjml b/app/src/main/resources/templates/messages/account-enabled.mjml
similarity index 100%
rename from gameyfin/src/main/resources/templates/messages/account-enabled.mjml
rename to app/src/main/resources/templates/messages/account-enabled.mjml
diff --git a/gameyfin/src/main/resources/templates/messages/email-already-registered.mjml b/app/src/main/resources/templates/messages/email-already-registered.mjml
similarity index 100%
rename from gameyfin/src/main/resources/templates/messages/email-already-registered.mjml
rename to app/src/main/resources/templates/messages/email-already-registered.mjml
diff --git a/gameyfin/src/main/resources/templates/messages/email-confirmation.mjml b/app/src/main/resources/templates/messages/email-confirmation.mjml
similarity index 100%
rename from gameyfin/src/main/resources/templates/messages/email-confirmation.mjml
rename to app/src/main/resources/templates/messages/email-confirmation.mjml
diff --git a/gameyfin/src/main/resources/templates/messages/password-reset-request.mjml b/app/src/main/resources/templates/messages/password-reset-request.mjml
similarity index 100%
rename from gameyfin/src/main/resources/templates/messages/password-reset-request.mjml
rename to app/src/main/resources/templates/messages/password-reset-request.mjml
diff --git a/gameyfin/src/main/resources/templates/messages/user-invitation.mjml b/app/src/main/resources/templates/messages/user-invitation.mjml
similarity index 100%
rename from gameyfin/src/main/resources/templates/messages/user-invitation.mjml
rename to app/src/main/resources/templates/messages/user-invitation.mjml
diff --git a/gameyfin/src/main/resources/templates/messages/waiting-for-approval.mjml b/app/src/main/resources/templates/messages/waiting-for-approval.mjml
similarity index 100%
rename from gameyfin/src/main/resources/templates/messages/waiting-for-approval.mjml
rename to app/src/main/resources/templates/messages/waiting-for-approval.mjml
diff --git a/gameyfin/tailwind.config.ts b/app/tailwind.config.ts
similarity index 100%
rename from gameyfin/tailwind.config.ts
rename to app/tailwind.config.ts
diff --git a/gameyfin/tsconfig.json b/app/tsconfig.json
similarity index 100%
rename from gameyfin/tsconfig.json
rename to app/tsconfig.json
diff --git a/gameyfin/types.d.ts b/app/types.d.ts
similarity index 100%
rename from gameyfin/types.d.ts
rename to app/types.d.ts
diff --git a/gameyfin/vite.config.ts b/app/vite.config.ts
similarity index 100%
rename from gameyfin/vite.config.ts
rename to app/vite.config.ts
diff --git a/gameyfin/vite.generated.ts b/app/vite.generated.ts
similarity index 100%
rename from gameyfin/vite.generated.ts
rename to app/vite.generated.ts
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Video.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Video.kt
deleted file mode 100644
index d9d1d7d..0000000
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Video.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package de.grimsi.gameyfin.games.entities
-
-class Video {
-}
\ No newline at end of file
diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/enums/ScanType.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/enums/ScanType.kt
deleted file mode 100644
index 4e6b7da..0000000
--- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/enums/ScanType.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package de.grimsi.gameyfin.libraries.enums
-
-enum class ScanType {
- QUICK, FULL
-}
\ No newline at end of file
diff --git a/plugin-api/build.gradle.kts b/plugin-api/build.gradle.kts
index f7b212d..e34370a 100644
--- a/plugin-api/build.gradle.kts
+++ b/plugin-api/build.gradle.kts
@@ -3,7 +3,7 @@ plugins {
`maven-publish`
}
-group = "de.grimsi.gameyfin"
+group = "org.gameyfin"
repositories {
mavenCentral()
diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/ConfigMetadata.kt b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/config/ConfigMetadata.kt
similarity index 90%
rename from plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/ConfigMetadata.kt
rename to plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/config/ConfigMetadata.kt
index f92e869..33ca38f 100644
--- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/ConfigMetadata.kt
+++ b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/config/ConfigMetadata.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.pluginapi.core.config
+package org.gameyfin.pluginapi.core.config
import java.io.Serializable
diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/Configurable.kt b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/config/Configurable.kt
similarity index 89%
rename from plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/Configurable.kt
rename to plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/config/Configurable.kt
index ba173e8..204a01c 100644
--- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/Configurable.kt
+++ b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/config/Configurable.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.pluginapi.core.config
+package org.gameyfin.pluginapi.core.config
import java.io.Serializable
diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigError.kt b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/config/PluginConfigError.kt
similarity index 58%
rename from plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigError.kt
rename to plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/config/PluginConfigError.kt
index 4b8719c..0ea47b7 100644
--- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigError.kt
+++ b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/config/PluginConfigError.kt
@@ -1,3 +1,3 @@
-package de.grimsi.gameyfin.pluginapi.core.config
+package org.gameyfin.pluginapi.core.config
class PluginConfigError(message: String) : RuntimeException(message)
\ No newline at end of file
diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigValidationResult.kt b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/config/PluginConfigValidationResult.kt
similarity index 93%
rename from plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigValidationResult.kt
rename to plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/config/PluginConfigValidationResult.kt
index bc842f5..8429a3f 100644
--- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigValidationResult.kt
+++ b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/config/PluginConfigValidationResult.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.pluginapi.core.config
+package org.gameyfin.pluginapi.core.config
data class PluginConfigValidationResult(
val result: PluginConfigValidationResultType,
diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/wrapper/ConfigurableGameyfinPlugin.kt b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/wrapper/ConfigurableGameyfinPlugin.kt
similarity index 93%
rename from plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/wrapper/ConfigurableGameyfinPlugin.kt
rename to plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/wrapper/ConfigurableGameyfinPlugin.kt
index 325f973..e6be0b0 100644
--- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/wrapper/ConfigurableGameyfinPlugin.kt
+++ b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/wrapper/ConfigurableGameyfinPlugin.kt
@@ -1,9 +1,9 @@
-package de.grimsi.gameyfin.pluginapi.core.wrapper
+package org.gameyfin.pluginapi.core.wrapper
-import de.grimsi.gameyfin.pluginapi.core.config.ConfigMetadata
-import de.grimsi.gameyfin.pluginapi.core.config.Configurable
-import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigError
-import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResult
+import org.gameyfin.pluginapi.core.config.ConfigMetadata
+import org.gameyfin.pluginapi.core.config.Configurable
+import org.gameyfin.pluginapi.core.config.PluginConfigError
+import org.gameyfin.pluginapi.core.config.PluginConfigValidationResult
import org.pf4j.PluginWrapper
import java.io.Serializable
diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/wrapper/GameyfinPlugin.kt b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/wrapper/GameyfinPlugin.kt
similarity index 95%
rename from plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/wrapper/GameyfinPlugin.kt
rename to plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/wrapper/GameyfinPlugin.kt
index 46e1f49..f9b0447 100644
--- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/wrapper/GameyfinPlugin.kt
+++ b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/core/wrapper/GameyfinPlugin.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.pluginapi.core.wrapper
+package org.gameyfin.pluginapi.core.wrapper
import org.pf4j.Plugin
import org.pf4j.PluginWrapper
diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/download/Download.kt b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/download/Download.kt
similarity index 84%
rename from plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/download/Download.kt
rename to plugin-api/src/main/kotlin/org/gameyfin/pluginapi/download/Download.kt
index da41a37..e61b82e 100644
--- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/download/Download.kt
+++ b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/download/Download.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.pluginapi.download
+package org.gameyfin.pluginapi.download
import java.io.InputStream
diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/download/DownloadProvider.kt b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/download/DownloadProvider.kt
similarity index 76%
rename from plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/download/DownloadProvider.kt
rename to plugin-api/src/main/kotlin/org/gameyfin/pluginapi/download/DownloadProvider.kt
index fea638c..6354a92 100644
--- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/download/DownloadProvider.kt
+++ b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/download/DownloadProvider.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.pluginapi.download
+package org.gameyfin.pluginapi.download
import org.pf4j.ExtensionPoint
import java.nio.file.Path
diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/gamemetadata/GameMetadata.kt b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/gamemetadata/GameMetadata.kt
similarity index 97%
rename from plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/gamemetadata/GameMetadata.kt
rename to plugin-api/src/main/kotlin/org/gameyfin/pluginapi/gamemetadata/GameMetadata.kt
index c0277f4..feb516d 100644
--- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/gamemetadata/GameMetadata.kt
+++ b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/gamemetadata/GameMetadata.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.pluginapi.gamemetadata
+package org.gameyfin.pluginapi.gamemetadata
import java.net.URI
import java.time.Instant
diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/gamemetadata/GameMetadataProvider.kt b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/gamemetadata/GameMetadataProvider.kt
similarity index 80%
rename from plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/gamemetadata/GameMetadataProvider.kt
rename to plugin-api/src/main/kotlin/org/gameyfin/pluginapi/gamemetadata/GameMetadataProvider.kt
index 0e830cd..564832d 100644
--- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/gamemetadata/GameMetadataProvider.kt
+++ b/plugin-api/src/main/kotlin/org/gameyfin/pluginapi/gamemetadata/GameMetadataProvider.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfin.pluginapi.gamemetadata
+package org.gameyfin.pluginapi.gamemetadata
import org.pf4j.ExtensionPoint
diff --git a/plugins/directdownload/src/main/kotlin/de/grimsi/gameyfinplugins/directdownload/CompressionMode.kt b/plugins/directdownload/src/main/kotlin/org/gameyfin/plugins/download/direct/CompressionMode.kt
similarity index 71%
rename from plugins/directdownload/src/main/kotlin/de/grimsi/gameyfinplugins/directdownload/CompressionMode.kt
rename to plugins/directdownload/src/main/kotlin/org/gameyfin/plugins/download/direct/CompressionMode.kt
index 27e5f8a..d6df206 100644
--- a/plugins/directdownload/src/main/kotlin/de/grimsi/gameyfinplugins/directdownload/CompressionMode.kt
+++ b/plugins/directdownload/src/main/kotlin/org/gameyfin/plugins/download/direct/CompressionMode.kt
@@ -1,6 +1,6 @@
-package de.grimsi.gameyfinplugins.directdownload
+package org.gameyfin.plugins.download.direct
-import de.grimsi.gameyfinplugins.directdownload.CompressionMode.*
+import org.gameyfin.plugins.download.direct.CompressionMode.*
import java.util.zip.Deflater
enum class CompressionMode {
diff --git a/plugins/directdownload/src/main/kotlin/de/grimsi/gameyfinplugins/directdownload/DirectDownloadPlugin.kt b/plugins/directdownload/src/main/kotlin/org/gameyfin/plugins/download/direct/DirectDownloadPlugin.kt
similarity index 89%
rename from plugins/directdownload/src/main/kotlin/de/grimsi/gameyfinplugins/directdownload/DirectDownloadPlugin.kt
rename to plugins/directdownload/src/main/kotlin/org/gameyfin/plugins/download/direct/DirectDownloadPlugin.kt
index 24a82ee..d1a398a 100644
--- a/plugins/directdownload/src/main/kotlin/de/grimsi/gameyfinplugins/directdownload/DirectDownloadPlugin.kt
+++ b/plugins/directdownload/src/main/kotlin/org/gameyfin/plugins/download/direct/DirectDownloadPlugin.kt
@@ -1,11 +1,11 @@
-package de.grimsi.gameyfinplugins.directdownload
+package org.gameyfin.plugins.download.direct
-import de.grimsi.gameyfin.pluginapi.core.config.ConfigMetadata
-import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigMetadata
-import de.grimsi.gameyfin.pluginapi.core.wrapper.ConfigurableGameyfinPlugin
-import de.grimsi.gameyfin.pluginapi.download.Download
-import de.grimsi.gameyfin.pluginapi.download.DownloadProvider
-import de.grimsi.gameyfin.pluginapi.download.FileDownload
+import org.gameyfin.pluginapi.core.config.ConfigMetadata
+import org.gameyfin.pluginapi.core.config.PluginConfigMetadata
+import org.gameyfin.pluginapi.core.wrapper.ConfigurableGameyfinPlugin
+import org.gameyfin.pluginapi.download.Download
+import org.gameyfin.pluginapi.download.DownloadProvider
+import org.gameyfin.pluginapi.download.FileDownload
import org.pf4j.Extension
import org.pf4j.PluginWrapper
import java.io.IOException
diff --git a/plugins/directdownload/src/main/resources/MANIFEST.MF b/plugins/directdownload/src/main/resources/MANIFEST.MF
index 696ed49..38d93bb 100644
--- a/plugins/directdownload/src/main/resources/MANIFEST.MF
+++ b/plugins/directdownload/src/main/resources/MANIFEST.MF
@@ -1,6 +1,6 @@
-Plugin-Version: 1.0.0-alpha5
-Plugin-Class: de.grimsi.gameyfinplugins.directdownload.DirectDownloadPlugin
-Plugin-Id: de.grimsi.gameyfin.directdownload
+Plugin-Version: 1.0.0-beta1
+Plugin-Class: org.gameyfin.plugins.download.direct.DirectDownloadPlugin
+Plugin-Id: org.gameyfin.plugins.download.direct
Plugin-Name: Direct Download
Plugin-Description: Downloads games directly in the browser.
If the game is contained in a folder, it will pack the folder into a zip file on the fly.
diff --git a/plugins/igdb/src/main/kotlin/de/grimsi/gameyfinplugins/igdb/IgdbPlugin.kt b/plugins/igdb/src/main/kotlin/org/gameyfin/plugins/metadata/igdb/IgdbPlugin.kt
similarity index 94%
rename from plugins/igdb/src/main/kotlin/de/grimsi/gameyfinplugins/igdb/IgdbPlugin.kt
rename to plugins/igdb/src/main/kotlin/org/gameyfin/plugins/metadata/igdb/IgdbPlugin.kt
index c3677e5..4ae8ed0 100644
--- a/plugins/igdb/src/main/kotlin/de/grimsi/gameyfinplugins/igdb/IgdbPlugin.kt
+++ b/plugins/igdb/src/main/kotlin/org/gameyfin/plugins/metadata/igdb/IgdbPlugin.kt
@@ -1,18 +1,18 @@
-package de.grimsi.gameyfinplugins.igdb
+package org.gameyfin.plugins.metadata.igdb
import com.api.igdb.apicalypse.APICalypse
import com.api.igdb.exceptions.RequestException
import com.api.igdb.request.IGDBWrapper
import com.api.igdb.request.TwitchAuthenticator
import com.api.igdb.request.games
-import de.grimsi.gameyfin.pluginapi.core.config.ConfigMetadata
-import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigError
-import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigMetadata
-import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResult
-import de.grimsi.gameyfin.pluginapi.core.wrapper.ConfigurableGameyfinPlugin
-import de.grimsi.gameyfin.pluginapi.gamemetadata.GameMetadata
-import de.grimsi.gameyfin.pluginapi.gamemetadata.GameMetadataProvider
import me.xdrop.fuzzywuzzy.FuzzySearch
+import org.gameyfin.pluginapi.core.config.ConfigMetadata
+import org.gameyfin.pluginapi.core.config.PluginConfigError
+import org.gameyfin.pluginapi.core.config.PluginConfigMetadata
+import org.gameyfin.pluginapi.core.config.PluginConfigValidationResult
+import org.gameyfin.pluginapi.core.wrapper.ConfigurableGameyfinPlugin
+import org.gameyfin.pluginapi.gamemetadata.GameMetadata
+import org.gameyfin.pluginapi.gamemetadata.GameMetadataProvider
import org.pf4j.Extension
import org.pf4j.PluginWrapper
import org.slf4j.LoggerFactory
diff --git a/plugins/igdb/src/main/kotlin/de/grimsi/gameyfinplugins/igdb/Mapper.kt b/plugins/igdb/src/main/kotlin/org/gameyfin/plugins/metadata/igdb/Mapper.kt
similarity index 90%
rename from plugins/igdb/src/main/kotlin/de/grimsi/gameyfinplugins/igdb/Mapper.kt
rename to plugins/igdb/src/main/kotlin/org/gameyfin/plugins/metadata/igdb/Mapper.kt
index 4eff182..c50564c 100644
--- a/plugins/igdb/src/main/kotlin/de/grimsi/gameyfinplugins/igdb/Mapper.kt
+++ b/plugins/igdb/src/main/kotlin/org/gameyfin/plugins/metadata/igdb/Mapper.kt
@@ -1,13 +1,17 @@
-package de.grimsi.gameyfinplugins.igdb
+package org.gameyfin.plugins.metadata.igdb
import com.api.igdb.utils.ImageSize
import com.api.igdb.utils.ImageType
import com.api.igdb.utils.imageBuilder
-import de.grimsi.gameyfin.pluginapi.gamemetadata.GameFeature
-import de.grimsi.gameyfin.pluginapi.gamemetadata.Genre
-import de.grimsi.gameyfin.pluginapi.gamemetadata.PlayerPerspective
-import de.grimsi.gameyfin.pluginapi.gamemetadata.Theme
+import org.gameyfin.pluginapi.gamemetadata.GameFeature
+import org.gameyfin.pluginapi.gamemetadata.Genre
+import org.gameyfin.pluginapi.gamemetadata.PlayerPerspective
+import org.gameyfin.pluginapi.gamemetadata.Theme
import org.slf4j.LoggerFactory
+import proto.Cover
+import proto.Game
+import proto.GameVideo
+import proto.Screenshot
import java.net.URI
class Mapper {
@@ -95,20 +99,20 @@ class Mapper {
}
}
- fun screenshot(screenshot: proto.Screenshot): URI {
+ fun screenshot(screenshot: Screenshot): URI {
return URI(imageBuilder(screenshot.imageId, ImageSize.FHD, ImageType.PNG))
}
- fun cover(cover: proto.Cover): URI? {
+ fun cover(cover: Cover): URI? {
if (cover.imageId.isEmpty()) return null
return URI(imageBuilder(cover.imageId, ImageSize.COVER_BIG, ImageType.PNG))
}
- fun video(video: proto.GameVideo): URI {
+ fun video(video: GameVideo): URI {
return URI("https://www.youtube.com/watch?v=${video.videoId}")
}
- fun gameFeatures(game: proto.Game): Set {
+ fun gameFeatures(game: Game): Set {
val gameFeatures = mutableSetOf()
// Get LAN support from multiplayer modes
diff --git a/plugins/igdb/src/main/resources/MANIFEST.MF b/plugins/igdb/src/main/resources/MANIFEST.MF
index d2046b8..3226027 100644
--- a/plugins/igdb/src/main/resources/MANIFEST.MF
+++ b/plugins/igdb/src/main/resources/MANIFEST.MF
@@ -1,6 +1,6 @@
-Plugin-Version: 1.0.0-alpha9
-Plugin-Class: de.grimsi.gameyfinplugins.igdb.IgdbPlugin
-Plugin-Id: de.grimsi.gameyfin.igdb
+Plugin-Version: 1.0.0-beta1
+Plugin-Class: org.gameyfin.plugins.metadata.igdb.IgdbPlugin
+Plugin-Id: org.gameyfin.plugins.metadata.igdb.
Plugin-Name: IGDB Metadata
Plugin-Description: Fetches metadata from IGDB.
Requires a Twitch account and IGDB API credentials.
diff --git a/plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/SteamPlugin.kt b/plugins/steam/src/main/kotlin/org/gameyfin/plugins/metadata/steam/SteamPlugin.kt
similarity index 91%
rename from plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/SteamPlugin.kt
rename to plugins/steam/src/main/kotlin/org/gameyfin/plugins/metadata/steam/SteamPlugin.kt
index b02b7e7..6730bf7 100644
--- a/plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/SteamPlugin.kt
+++ b/plugins/steam/src/main/kotlin/org/gameyfin/plugins/metadata/steam/SteamPlugin.kt
@@ -1,12 +1,5 @@
-package de.grimsi.gameyfinplugins.steam
+package org.gameyfin.plugins.metadata.steam
-import de.grimsi.gameyfin.pluginapi.core.wrapper.GameyfinPlugin
-import de.grimsi.gameyfin.pluginapi.gamemetadata.GameMetadata
-import de.grimsi.gameyfin.pluginapi.gamemetadata.GameMetadataProvider
-import de.grimsi.gameyfinplugins.steam.dto.SteamDetailsResultWrapper
-import de.grimsi.gameyfinplugins.steam.dto.SteamGame
-import de.grimsi.gameyfinplugins.steam.dto.SteamSearchResult
-import de.grimsi.gameyfinplugins.steam.mapper.Mapper
import io.ktor.client.*
import io.ktor.client.call.*
import io.ktor.client.engine.cio.*
@@ -19,6 +12,13 @@ import io.ktor.serialization.kotlinx.json.*
import kotlinx.coroutines.runBlocking
import kotlinx.serialization.json.Json
import me.xdrop.fuzzywuzzy.FuzzySearch
+import org.gameyfin.pluginapi.core.wrapper.GameyfinPlugin
+import org.gameyfin.pluginapi.gamemetadata.GameMetadata
+import org.gameyfin.pluginapi.gamemetadata.GameMetadataProvider
+import org.gameyfin.plugins.metadata.steam.dto.SteamDetailsResultWrapper
+import org.gameyfin.plugins.metadata.steam.dto.SteamGame
+import org.gameyfin.plugins.metadata.steam.dto.SteamSearchResult
+import org.gameyfin.plugins.metadata.steam.mapper.Mapper
import org.pf4j.Extension
import org.pf4j.PluginWrapper
import org.slf4j.LoggerFactory
diff --git a/plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/dto/SteamGameDetails.kt b/plugins/steam/src/main/kotlin/org/gameyfin/plugins/metadata/steam/dto/SteamGameDetails.kt
similarity index 93%
rename from plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/dto/SteamGameDetails.kt
rename to plugins/steam/src/main/kotlin/org/gameyfin/plugins/metadata/steam/dto/SteamGameDetails.kt
index 9ade5fb..6af18c5 100644
--- a/plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/dto/SteamGameDetails.kt
+++ b/plugins/steam/src/main/kotlin/org/gameyfin/plugins/metadata/steam/dto/SteamGameDetails.kt
@@ -1,8 +1,8 @@
-package de.grimsi.gameyfinplugins.steam.dto
+package org.gameyfin.plugins.metadata.steam.dto
-import de.grimsi.gameyfinplugins.steam.util.SteamDateSerializer
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
+import org.gameyfin.plugins.metadata.steam.util.SteamDateSerializer
import java.time.Instant
@Serializable
diff --git a/plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/dto/SteamGameOverview.kt b/plugins/steam/src/main/kotlin/org/gameyfin/plugins/metadata/steam/dto/SteamGameOverview.kt
similarity index 83%
rename from plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/dto/SteamGameOverview.kt
rename to plugins/steam/src/main/kotlin/org/gameyfin/plugins/metadata/steam/dto/SteamGameOverview.kt
index 986b7f9..32f992c 100644
--- a/plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/dto/SteamGameOverview.kt
+++ b/plugins/steam/src/main/kotlin/org/gameyfin/plugins/metadata/steam/dto/SteamGameOverview.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfinplugins.steam.dto
+package org.gameyfin.plugins.metadata.steam.dto
import kotlinx.serialization.Serializable
diff --git a/plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/mapper/Mapper.kt b/plugins/steam/src/main/kotlin/org/gameyfin/plugins/metadata/steam/mapper/Mapper.kt
similarity index 93%
rename from plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/mapper/Mapper.kt
rename to plugins/steam/src/main/kotlin/org/gameyfin/plugins/metadata/steam/mapper/Mapper.kt
index 6b51aef..c866394 100644
--- a/plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/mapper/Mapper.kt
+++ b/plugins/steam/src/main/kotlin/org/gameyfin/plugins/metadata/steam/mapper/Mapper.kt
@@ -1,7 +1,7 @@
-package de.grimsi.gameyfinplugins.steam.mapper
+package org.gameyfin.plugins.metadata.steam.mapper
-import de.grimsi.gameyfin.pluginapi.gamemetadata.Genre
-import de.grimsi.gameyfinplugins.steam.dto.SteamGenre
+import org.gameyfin.pluginapi.gamemetadata.Genre
+import org.gameyfin.plugins.metadata.steam.dto.SteamGenre
class Mapper {
companion object {
diff --git a/plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/util/SteamDateSerializer.kt b/plugins/steam/src/main/kotlin/org/gameyfin/plugins/metadata/steam/util/SteamDateSerializer.kt
similarity index 98%
rename from plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/util/SteamDateSerializer.kt
rename to plugins/steam/src/main/kotlin/org/gameyfin/plugins/metadata/steam/util/SteamDateSerializer.kt
index 05b6b5e..9ca09f1 100644
--- a/plugins/steam/src/main/kotlin/de/grimsi/gameyfinplugins/steam/util/SteamDateSerializer.kt
+++ b/plugins/steam/src/main/kotlin/org/gameyfin/plugins/metadata/steam/util/SteamDateSerializer.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfinplugins.steam.util
+package org.gameyfin.plugins.metadata.steam.util
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.KSerializer
diff --git a/plugins/steam/src/main/resources/MANIFEST.MF b/plugins/steam/src/main/resources/MANIFEST.MF
index caafce5..8091366 100644
--- a/plugins/steam/src/main/resources/MANIFEST.MF
+++ b/plugins/steam/src/main/resources/MANIFEST.MF
@@ -1,6 +1,6 @@
-Plugin-Version: 1.0.0-alpha9
-Plugin-Class: de.grimsi.gameyfinplugins.steam.SteamPlugin
-Plugin-Id: de.grimsi.gameyfin.steam
+Plugin-Version: 1.0.0-beta1
+Plugin-Class: org.gameyfin.plugins.metadata.steam.SteamPlugin
+Plugin-Id: org.gameyfin.plugins.metadata.steam
Plugin-Name: Steam Metadata
Plugin-Description: Fetches metadata from Steam using undocumented public API endpoints.
This is more of a proof of concept and is prone to breaking when the Steam API changes.
diff --git a/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/SteamGridDbPlugin.kt b/plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/SteamGridDbPlugin.kt
similarity index 90%
rename from plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/SteamGridDbPlugin.kt
rename to plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/SteamGridDbPlugin.kt
index 72cacda..64f31ce 100644
--- a/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/SteamGridDbPlugin.kt
+++ b/plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/SteamGridDbPlugin.kt
@@ -1,13 +1,13 @@
-package de.grimsi.gameyfinplugins.steamgriddb
+package org.gameyfin.plugins.metadata.steamgriddb
-import de.grimsi.gameyfin.pluginapi.core.config.*
-import de.grimsi.gameyfin.pluginapi.core.wrapper.ConfigurableGameyfinPlugin
-import de.grimsi.gameyfin.pluginapi.gamemetadata.GameMetadata
-import de.grimsi.gameyfin.pluginapi.gamemetadata.GameMetadataProvider
-import de.grimsi.gameyfinplugins.steamgriddb.api.SteamGridDbApiClient
-import de.grimsi.gameyfinplugins.steamgriddb.dto.SteamGridDbGame
-import de.grimsi.gameyfinplugins.steamgriddb.dto.SteamGridDbGrid
import kotlinx.coroutines.runBlocking
+import org.gameyfin.pluginapi.core.config.*
+import org.gameyfin.pluginapi.core.wrapper.ConfigurableGameyfinPlugin
+import org.gameyfin.pluginapi.gamemetadata.GameMetadata
+import org.gameyfin.pluginapi.gamemetadata.GameMetadataProvider
+import org.gameyfin.plugins.metadata.steamgriddb.api.SteamGridDbApiClient
+import org.gameyfin.plugins.metadata.steamgriddb.dto.SteamGridDbGame
+import org.gameyfin.plugins.metadata.steamgriddb.dto.SteamGridDbGrid
import org.pf4j.Extension
import org.pf4j.PluginWrapper
import java.net.URI
diff --git a/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/api/SteamGridDbApiClient.kt b/plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/api/SteamGridDbApiClient.kt
similarity index 87%
rename from plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/api/SteamGridDbApiClient.kt
rename to plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/api/SteamGridDbApiClient.kt
index 17760d0..3ad285e 100644
--- a/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/api/SteamGridDbApiClient.kt
+++ b/plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/api/SteamGridDbApiClient.kt
@@ -1,8 +1,5 @@
-package de.grimsi.gameyfinplugins.steamgriddb.api
+package org.gameyfin.plugins.metadata.steamgriddb.api
-import de.grimsi.gameyfinplugins.steamgriddb.dto.SteamGridDbGameResult
-import de.grimsi.gameyfinplugins.steamgriddb.dto.SteamGridDbGridResult
-import de.grimsi.gameyfinplugins.steamgriddb.dto.SteamGridDbSearchResult
import io.ktor.client.*
import io.ktor.client.call.*
import io.ktor.client.engine.cio.*
@@ -12,6 +9,9 @@ import io.ktor.client.statement.*
import io.ktor.http.*
import io.ktor.serialization.kotlinx.json.*
import kotlinx.serialization.json.Json
+import org.gameyfin.plugins.metadata.steamgriddb.dto.SteamGridDbGameResult
+import org.gameyfin.plugins.metadata.steamgriddb.dto.SteamGridDbGridResult
+import org.gameyfin.plugins.metadata.steamgriddb.dto.SteamGridDbSearchResult
class SteamGridDbApiClient(private val apiKey: String) {
diff --git a/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/dto/SteamGridDbGame.kt b/plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/dto/SteamGridDbGame.kt
similarity index 70%
rename from plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/dto/SteamGridDbGame.kt
rename to plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/dto/SteamGridDbGame.kt
index 0411bf8..b9302bc 100644
--- a/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/dto/SteamGridDbGame.kt
+++ b/plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/dto/SteamGridDbGame.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfinplugins.steamgriddb.dto
+package org.gameyfin.plugins.metadata.steamgriddb.dto
import kotlinx.serialization.Serializable
diff --git a/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/dto/SteamGridDbGameResult.kt b/plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/dto/SteamGridDbGameResult.kt
similarity index 73%
rename from plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/dto/SteamGridDbGameResult.kt
rename to plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/dto/SteamGridDbGameResult.kt
index bbc4738..9164cf7 100644
--- a/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/dto/SteamGridDbGameResult.kt
+++ b/plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/dto/SteamGridDbGameResult.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfinplugins.steamgriddb.dto
+package org.gameyfin.plugins.metadata.steamgriddb.dto
import kotlinx.serialization.Serializable
diff --git a/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/dto/SteamGridDbGridsDetails.kt b/plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/dto/SteamGridDbGridsDetails.kt
similarity index 83%
rename from plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/dto/SteamGridDbGridsDetails.kt
rename to plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/dto/SteamGridDbGridsDetails.kt
index 2bddcd3..ab8442c 100644
--- a/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/dto/SteamGridDbGridsDetails.kt
+++ b/plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/dto/SteamGridDbGridsDetails.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfinplugins.steamgriddb.dto
+package org.gameyfin.plugins.metadata.steamgriddb.dto
import kotlinx.serialization.Serializable
diff --git a/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/dto/SteamGridDbSearchResult.kt b/plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/dto/SteamGridDbSearchResult.kt
similarity index 74%
rename from plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/dto/SteamGridDbSearchResult.kt
rename to plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/dto/SteamGridDbSearchResult.kt
index 63fd714..6d4053e 100644
--- a/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfinplugins/steamgriddb/dto/SteamGridDbSearchResult.kt
+++ b/plugins/steamgriddb/src/main/kotlin/org/gameyfin/plugins/metadata/steamgriddb/dto/SteamGridDbSearchResult.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfinplugins.steamgriddb.dto
+package org.gameyfin.plugins.metadata.steamgriddb.dto
import kotlinx.serialization.Serializable
diff --git a/plugins/steamgriddb/src/main/resources/MANIFEST.MF b/plugins/steamgriddb/src/main/resources/MANIFEST.MF
index 1710fb7..9e8a5f6 100644
--- a/plugins/steamgriddb/src/main/resources/MANIFEST.MF
+++ b/plugins/steamgriddb/src/main/resources/MANIFEST.MF
@@ -1,6 +1,6 @@
-Plugin-Version: 1.0.0-alpha6
-Plugin-Class: de.grimsi.gameyfinplugins.steamgriddb.SteamGridDbPlugin
-Plugin-Id: de.grimsi.gameyfin.steamgriddb
+Plugin-Version: 1.0.0-beta1
+Plugin-Class: org.gameyfin.plugins.metadata.steamgriddb.SteamGridDbPlugin
+Plugin-Id: org.gameyfin.plugins.metadata.steamgriddb
Plugin-Name: SteamGridDB Covers
Plugin-Description: Fetches covers from SteamGridDB.
Requires a SteamGridDB account and an API key.
diff --git a/plugins/torrentdownload/src/main/kotlin/de/grimsi/gameyfinplugins/torrentdownload/TorrentDownloadPlugin.kt b/plugins/torrentdownload/src/main/kotlin/org/gameyfin/plugins/download/torrent/TorrentDownloadPlugin.kt
similarity index 93%
rename from plugins/torrentdownload/src/main/kotlin/de/grimsi/gameyfinplugins/torrentdownload/TorrentDownloadPlugin.kt
rename to plugins/torrentdownload/src/main/kotlin/org/gameyfin/plugins/download/torrent/TorrentDownloadPlugin.kt
index 4c67748..6428a38 100644
--- a/plugins/torrentdownload/src/main/kotlin/de/grimsi/gameyfinplugins/torrentdownload/TorrentDownloadPlugin.kt
+++ b/plugins/torrentdownload/src/main/kotlin/org/gameyfin/plugins/download/torrent/TorrentDownloadPlugin.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfinplugins.torrentdownload
+package org.gameyfin.plugins.download.torrent
import bt.torrent.maker.TorrentBuilder
import com.turn.ttorrent.client.CommunicationManager
@@ -7,13 +7,13 @@ import com.turn.ttorrent.client.storage.FullyPieceStorageFactory
import com.turn.ttorrent.network.FirstAvailableChannel
import com.turn.ttorrent.tracker.TrackedTorrent
import com.turn.ttorrent.tracker.Tracker
-import de.grimsi.gameyfin.pluginapi.core.config.ConfigMetadata
-import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigMetadata
-import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResult
-import de.grimsi.gameyfin.pluginapi.core.wrapper.ConfigurableGameyfinPlugin
-import de.grimsi.gameyfin.pluginapi.download.Download
-import de.grimsi.gameyfin.pluginapi.download.DownloadProvider
-import de.grimsi.gameyfin.pluginapi.download.FileDownload
+import org.gameyfin.pluginapi.core.config.ConfigMetadata
+import org.gameyfin.pluginapi.core.config.PluginConfigMetadata
+import org.gameyfin.pluginapi.core.config.PluginConfigValidationResult
+import org.gameyfin.pluginapi.core.wrapper.ConfigurableGameyfinPlugin
+import org.gameyfin.pluginapi.download.Download
+import org.gameyfin.pluginapi.download.DownloadProvider
+import org.gameyfin.pluginapi.download.FileDownload
import org.pf4j.Extension
import org.pf4j.PluginWrapper
import org.slf4j.LoggerFactory
diff --git a/plugins/torrentdownload/src/main/kotlin/de/grimsi/gameyfinplugins/torrentdownload/Util.kt b/plugins/torrentdownload/src/main/kotlin/org/gameyfin/plugins/download/torrent/Util.kt
similarity index 88%
rename from plugins/torrentdownload/src/main/kotlin/de/grimsi/gameyfinplugins/torrentdownload/Util.kt
rename to plugins/torrentdownload/src/main/kotlin/org/gameyfin/plugins/download/torrent/Util.kt
index 7e2f88d..310bdd2 100644
--- a/plugins/torrentdownload/src/main/kotlin/de/grimsi/gameyfinplugins/torrentdownload/Util.kt
+++ b/plugins/torrentdownload/src/main/kotlin/org/gameyfin/plugins/download/torrent/Util.kt
@@ -1,4 +1,4 @@
-package de.grimsi.gameyfinplugins.torrentdownload
+package org.gameyfin.plugins.download.torrent
import kotlin.time.Duration
diff --git a/plugins/torrentdownload/src/main/resources/MANIFEST.MF b/plugins/torrentdownload/src/main/resources/MANIFEST.MF
index 15b0b6f..30c5c1e 100644
--- a/plugins/torrentdownload/src/main/resources/MANIFEST.MF
+++ b/plugins/torrentdownload/src/main/resources/MANIFEST.MF
@@ -1,6 +1,6 @@
-Plugin-Version: 1.0.0-alpha2
-Plugin-Class: de.grimsi.gameyfinplugins.torrentdownload.TorrentDownloadPlugin
-Plugin-Id: de.grimsi.gameyfinplugins.torrentdownload
+Plugin-Version: 1.0.0-beta1
+Plugin-Class: org.gameyfin.plugins.download.torrent.TorrentDownloadPlugin
+Plugin-Id: org.gameyfin.plugins.download.torrent
Plugin-Name: Torrent Download
Plugin-Description: Distributes games via a built-in torrent tracker.
Users need to install a torrent client to be able to download the games.
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 57bd5c6..044590f 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -19,7 +19,7 @@ pluginManagement {
include(":plugin-api")
-include(":gameyfin")
+include(":app")
include(":plugins")