Rename to SleepyOwl, add logo

This commit is contained in:
2026-10-25 00:53:19 +03:00
parent 33643707f1
commit f63b09a9d3
130 changed files with 8010 additions and 7797 deletions

View File

@@ -6,7 +6,7 @@ plugins {
}
android {
namespace = "ru.stenfredd.movies.core.data"
namespace = "ru.stenfredd.sleepyowl.core.data"
compileSdk = 37
defaultConfig { minSdk = 26 }
compileOptions {

View File

@@ -1,4 +1,4 @@
package ru.stenfredd.movies.core.data
package ru.stenfredd.sleepyowl.core.data
import android.content.Context
import android.os.SystemClock
@@ -18,11 +18,11 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json
import ru.stenfredd.movies.core.data.model.ItemQuery
import ru.stenfredd.movies.core.data.model.ItemSummary
import ru.stenfredd.movies.core.data.model.LibraryView
import ru.stenfredd.movies.core.data.model.itemKinds
import ru.stenfredd.movies.core.jellyfin.JellyfinSession
import ru.stenfredd.sleepyowl.core.data.model.ItemQuery
import ru.stenfredd.sleepyowl.core.data.model.ItemSummary
import ru.stenfredd.sleepyowl.core.data.model.LibraryView
import ru.stenfredd.sleepyowl.core.data.model.itemKinds
import ru.stenfredd.sleepyowl.core.jellyfin.JellyfinSession
import timber.log.Timber
import java.io.File
import java.util.concurrent.ConcurrentHashMap

View File

@@ -1,10 +1,10 @@
package ru.stenfredd.movies.core.data
package ru.stenfredd.sleepyowl.core.data
import org.jellyfin.sdk.api.client.extensions.imageApi
import org.jellyfin.sdk.model.api.ImageType
import ru.stenfredd.movies.core.data.model.ImageKind
import ru.stenfredd.movies.core.data.model.ImageRef
import ru.stenfredd.movies.core.jellyfin.JellyfinSession
import ru.stenfredd.sleepyowl.core.data.model.ImageKind
import ru.stenfredd.sleepyowl.core.data.model.ImageRef
import ru.stenfredd.sleepyowl.core.jellyfin.JellyfinSession
import javax.inject.Inject
import javax.inject.Singleton

View File

@@ -1,4 +1,4 @@
package ru.stenfredd.movies.core.data
package ru.stenfredd.sleepyowl.core.data
import kotlinx.coroutines.async
import kotlinx.coroutines.coroutineScope
@@ -11,19 +11,19 @@ import org.jellyfin.sdk.model.api.BaseItemKind
import org.jellyfin.sdk.model.api.ItemFilter
import org.jellyfin.sdk.model.api.ItemSortBy
import org.jellyfin.sdk.model.api.SortOrder
import ru.stenfredd.movies.core.data.SessionCache.Kind
import ru.stenfredd.movies.core.data.model.ItemDetails
import ru.stenfredd.movies.core.data.model.ItemKind
import ru.stenfredd.movies.core.data.model.ItemQuery
import ru.stenfredd.movies.core.data.model.ItemSort
import ru.stenfredd.movies.core.data.model.ItemSummary
import ru.stenfredd.movies.core.data.model.LibraryType
import ru.stenfredd.movies.core.data.model.LibraryView
import ru.stenfredd.movies.core.data.model.MediaSegment
import ru.stenfredd.movies.core.data.model.Page
import ru.stenfredd.movies.core.data.model.Person
import ru.stenfredd.movies.core.data.model.itemKinds
import ru.stenfredd.movies.core.jellyfin.JellyfinSession
import ru.stenfredd.sleepyowl.core.data.SessionCache.Kind
import ru.stenfredd.sleepyowl.core.data.model.ItemDetails
import ru.stenfredd.sleepyowl.core.data.model.ItemKind
import ru.stenfredd.sleepyowl.core.data.model.ItemQuery
import ru.stenfredd.sleepyowl.core.data.model.ItemSort
import ru.stenfredd.sleepyowl.core.data.model.ItemSummary
import ru.stenfredd.sleepyowl.core.data.model.LibraryType
import ru.stenfredd.sleepyowl.core.data.model.LibraryView
import ru.stenfredd.sleepyowl.core.data.model.MediaSegment
import ru.stenfredd.sleepyowl.core.data.model.Page
import ru.stenfredd.sleepyowl.core.data.model.Person
import ru.stenfredd.sleepyowl.core.data.model.itemKinds
import ru.stenfredd.sleepyowl.core.jellyfin.JellyfinSession
import java.util.UUID
import javax.inject.Inject
import javax.inject.Singleton

View File

@@ -1,4 +1,4 @@
package ru.stenfredd.movies.core.data
package ru.stenfredd.sleepyowl.core.data
import org.jellyfin.sdk.model.api.AudioSpatialFormat
import org.jellyfin.sdk.model.api.BaseItemDto
@@ -13,24 +13,24 @@ import org.jellyfin.sdk.model.api.MediaSourceInfo
import org.jellyfin.sdk.model.api.MediaStream
import org.jellyfin.sdk.model.api.MediaStreamType
import org.jellyfin.sdk.model.api.VideoRangeType
import ru.stenfredd.movies.core.data.model.AudioTrack
import ru.stenfredd.movies.core.data.model.Chapter
import ru.stenfredd.movies.core.data.model.ImageKind
import ru.stenfredd.movies.core.data.model.ImageRef
import ru.stenfredd.movies.core.data.model.ItemDetails
import ru.stenfredd.movies.core.data.model.ItemKind
import ru.stenfredd.movies.core.data.model.ItemSummary
import ru.stenfredd.movies.core.data.model.LibraryType
import ru.stenfredd.movies.core.data.model.LibraryView
import ru.stenfredd.movies.core.data.model.MediaInfo
import ru.stenfredd.movies.core.data.model.MediaSegment
import ru.stenfredd.movies.core.data.model.Person
import ru.stenfredd.movies.core.data.model.PersonKind
import ru.stenfredd.movies.core.data.model.SegmentKind
import ru.stenfredd.movies.core.data.model.SubtitleTrack
import ru.stenfredd.movies.core.data.model.UserState
import ru.stenfredd.movies.core.data.model.VideoRange
import ru.stenfredd.movies.core.data.model.VideoTrack
import ru.stenfredd.sleepyowl.core.data.model.AudioTrack
import ru.stenfredd.sleepyowl.core.data.model.Chapter
import ru.stenfredd.sleepyowl.core.data.model.ImageKind
import ru.stenfredd.sleepyowl.core.data.model.ImageRef
import ru.stenfredd.sleepyowl.core.data.model.ItemDetails
import ru.stenfredd.sleepyowl.core.data.model.ItemKind
import ru.stenfredd.sleepyowl.core.data.model.ItemSummary
import ru.stenfredd.sleepyowl.core.data.model.LibraryType
import ru.stenfredd.sleepyowl.core.data.model.LibraryView
import ru.stenfredd.sleepyowl.core.data.model.MediaInfo
import ru.stenfredd.sleepyowl.core.data.model.MediaSegment
import ru.stenfredd.sleepyowl.core.data.model.Person
import ru.stenfredd.sleepyowl.core.data.model.PersonKind
import ru.stenfredd.sleepyowl.core.data.model.SegmentKind
import ru.stenfredd.sleepyowl.core.data.model.SubtitleTrack
import ru.stenfredd.sleepyowl.core.data.model.UserState
import ru.stenfredd.sleepyowl.core.data.model.VideoRange
import ru.stenfredd.sleepyowl.core.data.model.VideoTrack
import java.time.LocalDateTime
import java.time.ZoneId
import java.util.UUID

View File

@@ -1,4 +1,4 @@
package ru.stenfredd.movies.core.data
package ru.stenfredd.sleepyowl.core.data
import android.content.Context
import androidx.datastore.preferences.core.edit
@@ -8,7 +8,7 @@ import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import org.json.JSONArray
import ru.stenfredd.movies.core.jellyfin.JellyfinSession
import ru.stenfredd.sleepyowl.core.jellyfin.JellyfinSession
import javax.inject.Inject
import javax.inject.Singleton

View File

@@ -1,4 +1,4 @@
package ru.stenfredd.movies.core.data
package ru.stenfredd.sleepyowl.core.data
import android.os.SystemClock
import kotlinx.coroutines.CancellationException
@@ -15,7 +15,7 @@ import kotlinx.coroutines.flow.distinctUntilChangedBy
import kotlinx.coroutines.flow.drop
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import ru.stenfredd.movies.core.jellyfin.JellyfinSession
import ru.stenfredd.sleepyowl.core.jellyfin.JellyfinSession
import timber.log.Timber
import java.util.concurrent.ConcurrentHashMap
import javax.inject.Inject

View File

@@ -1,10 +1,10 @@
package ru.stenfredd.movies.core.data
package ru.stenfredd.sleepyowl.core.data
import org.jellyfin.sdk.api.client.extensions.systemApi
import org.jellyfin.sdk.api.client.extensions.userApi
import org.jellyfin.sdk.model.api.SubtitlePlaybackMode
import org.jellyfin.sdk.model.api.UserConfiguration
import ru.stenfredd.movies.core.jellyfin.JellyfinSession
import ru.stenfredd.sleepyowl.core.jellyfin.JellyfinSession
import javax.inject.Inject
import javax.inject.Singleton

View File

@@ -1,4 +1,4 @@
package ru.stenfredd.movies.core.data
package ru.stenfredd.sleepyowl.core.data
import kotlinx.coroutines.async
import kotlinx.coroutines.coroutineScope
@@ -6,15 +6,15 @@ import org.jellyfin.sdk.api.client.extensions.libraryApi
import org.jellyfin.sdk.api.client.extensions.showApi
import org.jellyfin.sdk.api.client.extensions.userDataApi
import org.jellyfin.sdk.model.api.MediaType
import ru.stenfredd.movies.core.data.SessionCache.Kind
import ru.stenfredd.movies.core.data.model.ItemKind
import ru.stenfredd.movies.core.data.model.ItemQuery
import ru.stenfredd.movies.core.data.model.ItemSort
import ru.stenfredd.movies.core.data.model.ItemSummary
import ru.stenfredd.movies.core.data.model.LibraryView
import ru.stenfredd.movies.core.data.model.Page
import ru.stenfredd.movies.core.data.model.itemKinds
import ru.stenfredd.movies.core.jellyfin.JellyfinSession
import ru.stenfredd.sleepyowl.core.data.SessionCache.Kind
import ru.stenfredd.sleepyowl.core.data.model.ItemKind
import ru.stenfredd.sleepyowl.core.data.model.ItemQuery
import ru.stenfredd.sleepyowl.core.data.model.ItemSort
import ru.stenfredd.sleepyowl.core.data.model.ItemSummary
import ru.stenfredd.sleepyowl.core.data.model.LibraryView
import ru.stenfredd.sleepyowl.core.data.model.Page
import ru.stenfredd.sleepyowl.core.data.model.itemKinds
import ru.stenfredd.sleepyowl.core.jellyfin.JellyfinSession
import java.util.UUID
import javax.inject.Inject
import javax.inject.Singleton

View File

@@ -1,6 +1,6 @@
@file:UseSerializers(UUIDSerializer::class)
package ru.stenfredd.movies.core.data.model
package ru.stenfredd.sleepyowl.core.data.model
import kotlinx.serialization.Serializable
import kotlinx.serialization.UseSerializers

View File

@@ -5,7 +5,7 @@ plugins {
}
android {
namespace = "ru.stenfredd.movies.core.jellyfin"
namespace = "ru.stenfredd.sleepyowl.core.jellyfin"
compileSdk = 37
defaultConfig { minSdk = 26 }
compileOptions {

View File

@@ -1,4 +1,4 @@
package ru.stenfredd.movies.core.jellyfin
package ru.stenfredd.sleepyowl.core.jellyfin
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@@ -1,4 +1,4 @@
package ru.stenfredd.movies.core.jellyfin
package ru.stenfredd.sleepyowl.core.jellyfin
import dagger.Module
import dagger.Provides

View File

@@ -1,4 +1,4 @@
package ru.stenfredd.movies.core.jellyfin
package ru.stenfredd.sleepyowl.core.jellyfin
import android.content.Context
import android.os.Build
@@ -253,7 +253,7 @@ class JellyfinSession @Inject constructor(
private fun deviceInfo(id: String) = DeviceInfo(id = id, name = "${Build.MANUFACTURER} ${Build.MODEL}")
private companion object {
const val CLIENT_NAME = "Movies"
const val CLIENT_NAME = "SleepyOwl"
const val CLIENT_VERSION = "0.1.0"
const val LOCAL_RECHECK_MS = 10 * 60_000L
const val REVOKE_TIMEOUT_MS = 3_000L

View File

@@ -1,4 +1,4 @@
package ru.stenfredd.movies.core.jellyfin
package ru.stenfredd.sleepyowl.core.jellyfin
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext

View File

@@ -1,4 +1,4 @@
package ru.stenfredd.movies.core.jellyfin
package ru.stenfredd.sleepyowl.core.jellyfin
import android.os.SystemClock
import kotlinx.coroutines.Dispatchers

View File

@@ -1,4 +1,4 @@
package ru.stenfredd.movies.core.jellyfin
package ru.stenfredd.sleepyowl.core.jellyfin
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull