diff --git a/back/Dockerfile b/back/Dockerfile
index c4c5935a..2c0a12d5 100644
--- a/back/Dockerfile
+++ b/back/Dockerfile
@@ -1,10 +1,11 @@
-FROM mcr.microsoft.com/dotnet/sdk:6.0 as transcoder
+FROM mcr.microsoft.com/dotnet/sdk:7.0 as transcoder
RUN apt-get update && apt-get install -y cmake make libavutil-dev libavcodec-dev libavformat-dev
WORKDIR /transcoder
COPY src/Kyoo.Transcoder .
RUN cmake . && make -j
-FROM mcr.microsoft.com/dotnet/sdk:6.0 as builder
+FROM mcr.microsoft.com/dotnet/sdk:7.0 as builder
+WORKDIR /kyoo
COPY Kyoo.sln ./Kyoo.sln
COPY nuget.config ./nuget.config
@@ -22,7 +23,7 @@ COPY . .
ARG VERSION
RUN dotnet publish --no-restore -c Release -o /app "-p:Version=${VERSION:-"0.0.0-dev"};SkipTranscoder=true" src/Kyoo.Host
-FROM mcr.microsoft.com/dotnet/aspnet:6.0
+FROM mcr.microsoft.com/dotnet/aspnet:7.0
RUN apt-get update && apt-get install -y libavutil-dev libavcodec-dev libavformat-dev curl
COPY --from=builder /app /app
COPY --from=transcoder /transcoder/libtranscoder.so /app
@@ -31,4 +32,3 @@ WORKDIR /kyoo
EXPOSE 5000
HEALTHCHECK --interval=5s CMD curl --fail http://localhost:5000/health || exit
CMD /app/Kyoo.Host
-
diff --git a/back/Dockerfile.dev b/back/Dockerfile.dev
index 34882c9f..b2d05a93 100644
--- a/back/Dockerfile.dev
+++ b/back/Dockerfile.dev
@@ -1,11 +1,11 @@
-FROM mcr.microsoft.com/dotnet/sdk:6.0 as transcoder
+FROM mcr.microsoft.com/dotnet/sdk:7.0 as transcoder
# Using the dotnet sdk as a base image to have the same versions of glibc/ffmpeg
RUN apt-get update && apt-get install -y gcc cmake make libavutil-dev libavcodec-dev libavformat-dev
WORKDIR /transcoder
COPY src/Kyoo.Transcoder .
RUN cmake . && make -j
-FROM mcr.microsoft.com/dotnet/sdk:6.0
+FROM mcr.microsoft.com/dotnet/sdk:7.0
RUN apt-get update && apt-get install -y libavutil-dev libavcodec-dev libavformat-dev curl
WORKDIR /app
diff --git a/back/src/Directory.Build.props b/back/src/Directory.Build.props
index ce7ad5eb..396e44e6 100644
--- a/back/src/Directory.Build.props
+++ b/back/src/Directory.Build.props
@@ -1,6 +1,6 @@
- net6.0
+ net7.0
default
Kyoo
Kyoo
diff --git a/back/src/Kyoo.Abstractions/Kyoo.Abstractions.csproj b/back/src/Kyoo.Abstractions/Kyoo.Abstractions.csproj
index 828bff86..1179aad2 100644
--- a/back/src/Kyoo.Abstractions/Kyoo.Abstractions.csproj
+++ b/back/src/Kyoo.Abstractions/Kyoo.Abstractions.csproj
@@ -6,11 +6,11 @@
-
-
+
+
-
-
-
+
+
+
diff --git a/back/src/Kyoo.Authentication/AuthenticationModule.cs b/back/src/Kyoo.Authentication/AuthenticationModule.cs
index 5c20521a..cd6f154f 100644
--- a/back/src/Kyoo.Authentication/AuthenticationModule.cs
+++ b/back/src/Kyoo.Authentication/AuthenticationModule.cs
@@ -64,12 +64,12 @@ namespace Kyoo.Authentication
string secret = _configuration.GetValue("AUTHENTICATION_SECRET", AuthenticationOption.DefaultSecret);
PermissionOption permissions = new()
{
- Default = _configuration.GetValue("UNLOGGED_PERMISSIONS", "overall.read").Split(','),
- NewUser = _configuration.GetValue("DEFAULT_PERMISSIONS", "overall.read").Split(','),
+ Default = _configuration.GetValue("UNLOGGED_PERMISSIONS", "overall.read").Split(','),
+ NewUser = _configuration.GetValue("DEFAULT_PERMISSIONS", "overall.read").Split(','),
ApiKeys = _configuration.GetValue("KYOO_APIKEYS", string.Empty).Split(','),
};
- services.AddSingleton(permissions);
- services.AddSingleton(new AuthenticationOption()
+ services.AddSingleton(permissions);
+ services.AddSingleton(new AuthenticationOption()
{
Secret = secret,
Permissions = permissions,
diff --git a/back/src/Kyoo.Authentication/Kyoo.Authentication.csproj b/back/src/Kyoo.Authentication/Kyoo.Authentication.csproj
index e17c9615..75623da2 100644
--- a/back/src/Kyoo.Authentication/Kyoo.Authentication.csproj
+++ b/back/src/Kyoo.Authentication/Kyoo.Authentication.csproj
@@ -6,9 +6,9 @@
-
+
-
+
diff --git a/back/src/Kyoo.Core/Kyoo.Core.csproj b/back/src/Kyoo.Core/Kyoo.Core.csproj
index 7342f457..aeb6531e 100644
--- a/back/src/Kyoo.Core/Kyoo.Core.csproj
+++ b/back/src/Kyoo.Core/Kyoo.Core.csproj
@@ -13,14 +13,14 @@
-
-
-
+
+
+
-
+
diff --git a/back/src/Kyoo.Host/Kyoo.Host.csproj b/back/src/Kyoo.Host/Kyoo.Host.csproj
index 913cfb69..1f9a8bf7 100644
--- a/back/src/Kyoo.Host/Kyoo.Host.csproj
+++ b/back/src/Kyoo.Host/Kyoo.Host.csproj
@@ -7,14 +7,14 @@
-
-
+
+
-
-
-
-
-
+
+
+
+
+
diff --git a/back/src/Kyoo.Postgresql/Kyoo.Postgresql.csproj b/back/src/Kyoo.Postgresql/Kyoo.Postgresql.csproj
index 4c785d6b..1b8e5ad1 100644
--- a/back/src/Kyoo.Postgresql/Kyoo.Postgresql.csproj
+++ b/back/src/Kyoo.Postgresql/Kyoo.Postgresql.csproj
@@ -5,14 +5,13 @@
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
diff --git a/back/src/Kyoo.Postgresql/PostgresContext.cs b/back/src/Kyoo.Postgresql/PostgresContext.cs
index 49ecf3ce..7c3bc8f2 100644
--- a/back/src/Kyoo.Postgresql/PostgresContext.cs
+++ b/back/src/Kyoo.Postgresql/PostgresContext.cs
@@ -48,6 +48,8 @@ namespace Kyoo.Postgresql
///
private readonly bool _skipConfigure;
+ // TOOD: This needs ot be updated but ef-core still does not offer a way to use this.
+ [Obsolete]
static PostgresContext()
{
NpgsqlConnection.GlobalTypeMapper.MapEnum();
@@ -89,10 +91,7 @@ namespace Kyoo.Postgresql
{
if (!_skipConfigure)
{
- if (_connection != null)
- optionsBuilder.UseNpgsql(_connection);
- else
- optionsBuilder.UseNpgsql();
+ optionsBuilder.UseNpgsql();
if (_debugMode)
optionsBuilder.EnableDetailedErrors().EnableSensitiveDataLogging();
}
diff --git a/back/src/Kyoo.Swagger/Kyoo.Swagger.csproj b/back/src/Kyoo.Swagger/Kyoo.Swagger.csproj
index e4f5eba4..3d9672a3 100644
--- a/back/src/Kyoo.Swagger/Kyoo.Swagger.csproj
+++ b/back/src/Kyoo.Swagger/Kyoo.Swagger.csproj
@@ -5,7 +5,7 @@
-
+
diff --git a/back/src/Kyoo.Swagger/ThumbnailProcessor.cs b/back/src/Kyoo.Swagger/ThumbnailProcessor.cs
index dba8d682..591c8cd7 100644
--- a/back/src/Kyoo.Swagger/ThumbnailProcessor.cs
+++ b/back/src/Kyoo.Swagger/ThumbnailProcessor.cs
@@ -30,7 +30,7 @@ namespace Kyoo.Swagger
///
public void Process(SchemaProcessorContext context)
{
- if (!context.Type.IsAssignableTo(typeof(IThumbnails)))
+ if (!context.ContextualType.OriginalType.IsAssignableTo(typeof(IThumbnails)))
return;
foreach ((int _, string imageP) in Images.ImageName)
{
diff --git a/back/tests/Kyoo.Tests/Kyoo.Tests.csproj b/back/tests/Kyoo.Tests/Kyoo.Tests.csproj
index ccef30f7..21c33099 100644
--- a/back/tests/Kyoo.Tests/Kyoo.Tests.csproj
+++ b/back/tests/Kyoo.Tests/Kyoo.Tests.csproj
@@ -1,28 +1,28 @@
- net6.0
+ net7.0
default
false
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
-
-
-
-
+
+
+
+
+
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
@@ -30,6 +30,6 @@
-
+
diff --git a/front/apps/web/src/pages/_app.tsx b/front/apps/web/src/pages/_app.tsx
index aba8e287..22d1a9b6 100755
--- a/front/apps/web/src/pages/_app.tsx
+++ b/front/apps/web/src/pages/_app.tsx
@@ -124,9 +124,13 @@ const App = ({ Component, pageProps }: AppProps) => {
App.getInitialProps = async (ctx: AppContext) => {
const appProps = await NextApp.getInitialProps(ctx);
+ const Component = ctx.Component as QueryPage;
- const getUrl = (ctx.Component as QueryPage).getFetchUrls;
- const getLayoutUrl = ((ctx.Component as QueryPage).getLayout as QueryPage)?.getFetchUrls;
+ const getUrl = Component.getFetchUrls;
+ const getLayoutUrl =
+ Component.getLayout && "Layout" in Component.getLayout
+ ? Component.getLayout.Layout.getFetchUrls
+ : Component.getLayout?.getFetchUrls;
const urls: QueryIdentifier[] = [
...(getUrl ? getUrl(ctx.router.query as any) : []),
diff --git a/front/packages/models/src/query.tsx b/front/packages/models/src/query.tsx
index 0f0eeb38..4f5fe001 100644
--- a/front/packages/models/src/query.tsx
+++ b/front/packages/models/src/query.tsx
@@ -155,8 +155,8 @@ export type QueryIdentifier = {
export type QueryPage = ComponentType & {
getFetchUrls?: (route: { [key: string]: string }) => QueryIdentifier[];
getLayout?:
- | ComponentType<{ page: ReactElement }>
- | { Layout: ComponentType<{ page: ReactElement }>; props: object };
+ | QueryPage<{ page: ReactElement }>
+ | { Layout: QueryPage<{ page: ReactElement }>; props: object };
};
const toQueryKey = (query: QueryIdentifier) => {