mirror of
https://github.com/mihonapp/mihon.git
synced 2024-11-15 15:02:49 +01:00
Merge branch 'main' of https://github.com/mihonapp/mihon into feat/add-cross-device-sync
This commit is contained in:
commit
7d97e9c9d4
4
.github/ISSUE_TEMPLATE/report_issue.yml
vendored
4
.github/ISSUE_TEMPLATE/report_issue.yml
vendored
@ -53,7 +53,7 @@ body:
|
||||
label: Mihon version
|
||||
description: You can find your Mihon version in **More → About**.
|
||||
placeholder: |
|
||||
Example: "0.15.3"
|
||||
Example: "0.16.1"
|
||||
validations:
|
||||
required: true
|
||||
|
||||
@ -98,7 +98,7 @@ body:
|
||||
required: true
|
||||
- label: I have gone through the [FAQ](https://mihon.app/docs/faq/general) and [troubleshooting guide](https://mihon.app/docs/guides/troubleshooting/).
|
||||
required: true
|
||||
- label: I have updated the app to version **[0.15.3](https://github.com/mihonapp/mihon/releases/latest)**.
|
||||
- label: I have updated the app to version **[0.16.1](https://github.com/mihonapp/mihon/releases/latest)**.
|
||||
required: true
|
||||
- label: I have updated all installed extensions.
|
||||
required: true
|
||||
|
2
.github/ISSUE_TEMPLATE/request_feature.yml
vendored
2
.github/ISSUE_TEMPLATE/request_feature.yml
vendored
@ -33,7 +33,7 @@ body:
|
||||
required: true
|
||||
- label: If this is an issue with an official extension, I should be opening an issue in the [extensions repository](https://github.com/tachiyomiorg/extensions/issues/new/choose).
|
||||
required: true
|
||||
- label: I have updated the app to version **[0.15.3](https://github.com/mihonapp/mihon/releases/latest)**.
|
||||
- label: I have updated the app to version **[0.16.1](https://github.com/mihonapp/mihon/releases/latest)**.
|
||||
required: true
|
||||
- label: I will fill out all of the requested information in this form.
|
||||
required: true
|
||||
|
BIN
.idea/icon.png
BIN
.idea/icon.png
Binary file not shown.
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 26 KiB |
10
README.md
10
README.md
@ -1,6 +1,6 @@
|
||||
| Build | Stable | Weekly Preview | Support Server |
|
||||
|-------|----------|---------|---------|
|
||||
| [![CI](https://github.com/mihonapp/mihon/actions/workflows/build_push.yml/badge.svg)](https://github.com/mihonapp/mihon/actions/workflows/build_push.yml) | [![stable release](https://img.shields.io/github/release/mihonapp/mihon.svg?maxAge=3600&label=download)](https://github.com/mihonapp/mihon/releases) | [![latest preview build](https://img.shields.io/github/v/release/mihonapp/mihon-preview.svg?maxAge=3600&label=download)](https://github.com/mihonapp/mihon-preview/releases) | [![Discord](https://img.shields.io/discord/1195734228319617024.svg?label=discord&labelColor=7289da&color=2c2f33&style=flat)](https://discord.gg/mihon) |
|
||||
| Build | Stable | Weekly Beta | Support Server |
|
||||
|-------|--------|-------------|----------------|
|
||||
| [![CI](https://github.com/mihonapp/mihon/actions/workflows/build_push.yml/badge.svg)](https://github.com/mihonapp/mihon/actions/workflows/build_push.yml) | [![stable release](https://img.shields.io/github/release/mihonapp/mihon.svg?maxAge=3600&label=download)](https://github.com/mihonapp/mihon/releases) | [![latest beta build](https://img.shields.io/github/v/release/mihonapp/mihon-preview.svg?maxAge=3600&label=download)](https://github.com/mihonapp/mihon-preview/releases) | [![Discord](https://img.shields.io/discord/1195734228319617024.svg?label=discord&labelColor=7289da&color=2c2f33&style=flat)](https://discord.gg/mihon) |
|
||||
|
||||
# ![app icon](./.github/readme-images/app-icon.png)Mihon
|
||||
Mihon is a free and open source manga reader for Android 8.0 and above.
|
||||
@ -20,7 +20,7 @@ Features include:
|
||||
## Download
|
||||
Get the app from our [releases page](https://github.com/mihonapp/mihon/releases).
|
||||
|
||||
If you want to try new features before they get to the stable release, you can download the preview version [here](https://github.com/mihonapp/mihon-preview/releases).
|
||||
If you want to try new features before they get to the stable release, you can download the beta version [here](https://github.com/mihonapp/mihon-preview/releases).
|
||||
|
||||
## Issues, Feature Requests and Contributing
|
||||
|
||||
@ -37,7 +37,7 @@ Please make sure to read the full guidelines. Your issue may be closed without w
|
||||
|
||||
* Include version (More → About → Version)
|
||||
* If not latest, try updating, it may have already been solved
|
||||
* Preview version is equal to the number of commits as seen on the main page
|
||||
* Beta version is equal to the number of commits as seen on the main page
|
||||
* Include steps to reproduce (if not obvious from description)
|
||||
* Include screenshot (if needed)
|
||||
* If it could be device-dependent, try reproducing on another device (if possible)
|
||||
|
@ -22,8 +22,8 @@ android {
|
||||
defaultConfig {
|
||||
applicationId = "app.mihon"
|
||||
|
||||
versionCode = 1
|
||||
versionName = "0.16.0"
|
||||
versionCode = 2
|
||||
versionName = "0.16.1"
|
||||
|
||||
buildConfigField("String", "COMMIT_COUNT", "\"${getCommitCount()}\"")
|
||||
buildConfigField("String", "COMMIT_SHA", "\"${getGitSha()}\"")
|
||||
|
@ -3,19 +3,14 @@
|
||||
android:height="108dp"
|
||||
android:viewportWidth="432"
|
||||
android:viewportHeight="432">
|
||||
<group android:scaleX="0.67"
|
||||
android:scaleY="0.67"
|
||||
android:translateX="71.28"
|
||||
android:translateY="71.28">
|
||||
<group>
|
||||
<clip-path
|
||||
android:pathData="M0,0h432v432h-432z"/>
|
||||
<path
|
||||
android:pathData="M0,0h432v432h-432z"
|
||||
android:fillColor="#FAFAFA"/>
|
||||
<path
|
||||
android:pathData="M0,0h432v432h-432z"
|
||||
android:fillColor="#2E3943"/>
|
||||
<path
|
||||
android:pathData="M377,216C377,302.16 304.92,372 216,372C127.08,372 55,302.16 55,216C55,129.84 127.08,60 216,60C304.92,60 377,129.84 377,216Z"
|
||||
android:fillColor="#F2FAFF"/>
|
||||
<path
|
||||
android:pathData="M216,342.75C288.25,342.75 346.81,286 346.81,216C346.81,146 288.25,89.25 216,89.25C143.75,89.25 85.19,146 85.19,216C85.19,286 143.75,342.75 216,342.75ZM216,372C304.92,372 377,302.16 377,216C377,129.84 304.92,60 216,60C127.08,60 55,129.84 55,216C55,302.16 127.08,372 216,372Z"
|
||||
android:fillColor="#7EBBED"
|
||||
android:fillType="evenOdd"/>
|
||||
</group>
|
||||
</vector>
|
||||
|
@ -3,12 +3,14 @@
|
||||
android:height="108dp"
|
||||
android:viewportWidth="432"
|
||||
android:viewportHeight="432">
|
||||
<group android:scaleX="0.67"
|
||||
android:scaleY="0.67"
|
||||
android:translateX="71.28"
|
||||
android:translateY="71.28">
|
||||
<path
|
||||
android:pathData="M162.3,173.59L161.22,148.63C164.47,149.25 168.35,149.41 177.18,149.41C187.87,149.41 201.98,148.79 209.26,147.86C212.36,147.55 213.6,147.09 215.61,146L232.35,160.26C230.8,162.43 230.34,163.36 228.63,167.7C227.24,171.11 220.88,190.79 218.4,199.16C229.87,201.48 236.22,203.18 244.9,206.75C245.99,199.16 246.14,195.13 246.14,181.33C246.14,177.77 245.99,175.76 245.52,172.5L272.49,173.43C271.71,177.15 271.56,178.7 271.4,184.74C270.78,199.31 270.16,206.29 268.61,216.82C279.31,222.25 279.31,222.25 284.73,225.19C287.52,226.74 288.14,227.05 290,227.67L281.01,256.65C276.67,252.78 270.63,248.59 261.8,243.63C254.05,262.08 241.18,275.56 221.66,286.25C215.15,277.57 210.19,272.3 202.29,266.11C213.75,260.68 219.02,257.27 225.07,251.54C230.96,245.8 234.83,240.22 238.55,231.85C228.63,227.36 222.28,225.35 211.27,223.02C204.92,241.93 199.8,254.02 195.31,261.3C189.27,271.06 181.05,276.18 171.6,276.18C164.32,276.18 156.88,272.92 151.45,267.35C145.25,260.99 142,252.16 142,241.93C142,226.74 149.28,213.57 161.99,205.35C170.21,200.09 178.88,197.76 192.68,196.99C195.47,187.84 197.79,179.94 199.96,171.11C193.14,171.73 184.62,172.19 174.24,172.65C168.66,172.81 166.8,172.96 162.3,173.59ZM185.86,220.7C178.57,221.94 174.24,224.26 170.36,229.22C167.42,232.63 166.02,236.66 166.02,241C166.02,245.8 168.35,249.37 171.29,249.37C174.85,249.37 178.88,241.31 185.86,220.7Z"
|
||||
android:pathData="M337,216C337,282.83 282.83,337 216,337C149.17,337 95,282.83 95,216C95,149.17 149.17,95 216,95C282.83,95 337,149.17 337,216Z"
|
||||
android:fillColor="#F2FAFF"/>
|
||||
<path
|
||||
android:pathData="M216,314.31C270.3,314.31 314.31,270.3 314.31,216C314.31,161.7 270.3,117.69 216,117.69C161.7,117.69 117.69,161.7 117.69,216C117.69,270.3 161.7,314.31 216,314.31ZM216,337C282.83,337 337,282.83 337,216C337,149.17 282.83,95 216,95C149.17,95 95,149.17 95,216C95,282.83 149.17,337 216,337Z"
|
||||
android:fillColor="#7EBBED"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M163.71,174.79L162.66,150.56C165.82,151.16 169.58,151.31 178.16,151.31C188.55,151.31 202.24,150.71 209.32,149.81C212.32,149.51 213.53,149.05 215.49,148L231.74,161.85C230.23,163.95 229.78,164.86 228.13,169.07C226.77,172.38 220.6,191.49 218.2,199.62C229.33,201.88 235.5,203.53 243.93,206.99C244.98,199.62 245.13,195.71 245.13,182.31C245.13,178.85 244.98,176.9 244.53,173.74L270.72,174.64C269.96,178.25 269.82,179.76 269.66,185.62C269.06,199.77 268.46,206.54 266.95,216.78C277.34,222.04 277.34,222.04 282.61,224.9C285.32,226.41 285.92,226.71 287.72,227.31L278.99,255.45C274.78,251.69 268.91,247.63 260.33,242.81C252.81,260.72 240.32,273.82 221.35,284.2C215.03,275.77 210.22,270.65 202.54,264.63C213.68,259.37 218.8,256.06 224.67,250.49C230.38,244.92 234.15,239.5 237.76,231.38C228.13,227.01 221.96,225.05 211.27,222.8C205.1,241.16 200.13,252.9 195.77,259.97C189.9,269.45 181.93,274.42 172.74,274.42C165.67,274.42 158.45,271.26 153.18,265.84C147.16,259.67 144,251.09 144,241.16C144,226.41 151.07,213.62 163.41,205.64C171.39,200.52 179.82,198.27 193.21,197.51C195.92,188.63 198.18,180.96 200.29,172.38C193.66,172.98 185.39,173.43 175.3,173.88C169.88,174.04 168.08,174.19 163.71,174.79ZM186.59,220.54C179.52,221.74 175.3,224 171.54,228.82C168.68,232.13 167.33,236.04 167.33,240.25C167.33,244.92 169.58,248.38 172.44,248.38C175.9,248.38 179.82,240.55 186.59,220.54Z"
|
||||
android:fillColor="#031019"/>
|
||||
</group>
|
||||
</vector>
|
||||
|
@ -247,7 +247,7 @@ object AboutScreen : Screen() {
|
||||
}
|
||||
}
|
||||
BuildConfig.PREVIEW -> {
|
||||
"Preview r${BuildConfig.COMMIT_COUNT}".let {
|
||||
"Beta r${BuildConfig.COMMIT_COUNT}".let {
|
||||
if (withBuildDate) {
|
||||
"$it (${BuildConfig.COMMIT_SHA}, ${getFormattedBuildTime()})"
|
||||
} else {
|
||||
|
@ -6,6 +6,8 @@ import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.database.models.Track
|
||||
import eu.kanade.tachiyomi.data.track.BaseTracker
|
||||
import eu.kanade.tachiyomi.data.track.DeletableTracker
|
||||
import eu.kanade.tachiyomi.data.track.mangaupdates.dto.ListItem
|
||||
import eu.kanade.tachiyomi.data.track.mangaupdates.dto.Rating
|
||||
import eu.kanade.tachiyomi.data.track.mangaupdates.dto.copyTo
|
||||
import eu.kanade.tachiyomi.data.track.mangaupdates.dto.toTrackSearch
|
||||
import eu.kanade.tachiyomi.data.track.model.TrackSearch
|
||||
@ -23,10 +25,16 @@ class MangaUpdates(id: Long) : BaseTracker(id, "MangaUpdates"), DeletableTracker
|
||||
const val UNFINISHED_LIST = 3
|
||||
const val ON_HOLD_LIST = 4
|
||||
|
||||
private val SCORE_LIST = (
|
||||
(0..9)
|
||||
.flatMap { i -> (0..9).map { j -> "$i.$j" } } + listOf("10.0")
|
||||
)
|
||||
private val SCORE_LIST = (0..10)
|
||||
.flatMap { decimal ->
|
||||
when (decimal) {
|
||||
0 -> listOf("-")
|
||||
10 -> listOf("10.0")
|
||||
else -> (0..9).map { fraction ->
|
||||
"$decimal.$fraction"
|
||||
}
|
||||
}
|
||||
}
|
||||
.toImmutableList()
|
||||
}
|
||||
|
||||
@ -59,7 +67,7 @@ class MangaUpdates(id: Long) : BaseTracker(id, "MangaUpdates"), DeletableTracker
|
||||
|
||||
override fun getScoreList(): ImmutableList<String> = SCORE_LIST
|
||||
|
||||
override fun indexToScore(index: Int): Float = SCORE_LIST[index].toFloat()
|
||||
override fun indexToScore(index: Int): Float = if (index == 0) 0f else SCORE_LIST[index].toFloat()
|
||||
|
||||
override fun displayScore(track: DomainTrack): String = track.score.toString()
|
||||
|
||||
@ -78,9 +86,9 @@ class MangaUpdates(id: Long) : BaseTracker(id, "MangaUpdates"), DeletableTracker
|
||||
override suspend fun bind(track: Track, hasReadChapters: Boolean): Track {
|
||||
return try {
|
||||
val (series, rating) = api.getSeriesListItem(track)
|
||||
series.copyTo(track)
|
||||
rating?.copyTo(track) ?: track
|
||||
track.copyFrom(series, rating)
|
||||
} catch (e: Exception) {
|
||||
track.score = 0f
|
||||
api.addSeriesToList(track, hasReadChapters)
|
||||
track
|
||||
}
|
||||
@ -95,8 +103,12 @@ class MangaUpdates(id: Long) : BaseTracker(id, "MangaUpdates"), DeletableTracker
|
||||
|
||||
override suspend fun refresh(track: Track): Track {
|
||||
val (series, rating) = api.getSeriesListItem(track)
|
||||
series.copyTo(track)
|
||||
return rating?.copyTo(track) ?: track
|
||||
return track.copyFrom(series, rating)
|
||||
}
|
||||
|
||||
private fun Track.copyFrom(item: ListItem, rating: Rating?): Track = apply {
|
||||
item.copyTo(this)
|
||||
score = rating?.rating ?: 0f
|
||||
}
|
||||
|
||||
override suspend fun login(username: String, password: String) {
|
||||
@ -106,6 +118,6 @@ class MangaUpdates(id: Long) : BaseTracker(id, "MangaUpdates"), DeletableTracker
|
||||
}
|
||||
|
||||
fun restoreSession(): String? {
|
||||
return trackPreferences.trackPassword(this).get()
|
||||
return trackPreferences.trackPassword(this).get().ifBlank { null }
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package eu.kanade.tachiyomi.data.track.mangaupdates
|
||||
|
||||
import eu.kanade.tachiyomi.BuildConfig
|
||||
import okhttp3.Interceptor
|
||||
import okhttp3.Response
|
||||
import java.io.IOException
|
||||
@ -18,6 +19,7 @@ class MangaUpdatesInterceptor(
|
||||
// Add the authorization header to the original request.
|
||||
val authRequest = originalRequest.newBuilder()
|
||||
.addHeader("Authorization", "Bearer $token")
|
||||
.header("User-Agent", "Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})")
|
||||
.build()
|
||||
|
||||
return chain.proceed(authRequest)
|
||||
|
@ -3,23 +3,11 @@
|
||||
android:height="108dp"
|
||||
android:viewportWidth="432"
|
||||
android:viewportHeight="432">
|
||||
<group android:scaleX="0.67"
|
||||
android:scaleY="0.67"
|
||||
android:translateX="71.28"
|
||||
android:translateY="71.28">
|
||||
<group>
|
||||
<clip-path
|
||||
android:pathData="M0,0h432v432h-432z"/>
|
||||
<path
|
||||
android:pathData="M0,0h432v432h-432z"
|
||||
android:fillColor="#FAFAFA"/>
|
||||
<path
|
||||
android:pathData="M377,216C377,302.16 304.92,372 216,372C127.08,372 55,302.16 55,216C55,129.84 127.08,60 216,60C304.92,60 377,129.84 377,216Z"
|
||||
android:fillColor="#F2FAFF"/>
|
||||
<path
|
||||
android:pathData="M216,342.75C288.25,342.75 346.81,286 346.81,216C346.81,146 288.25,89.25 216,89.25C143.75,89.25 85.19,146 85.19,216C85.19,286 143.75,342.75 216,342.75ZM216,372C304.92,372 377,302.16 377,216C377,129.84 304.92,60 216,60C127.08,60 55,129.84 55,216C55,302.16 127.08,372 216,372Z"
|
||||
android:fillColor="#0058A0"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M216,342.75C288.25,342.75 346.81,286 346.81,216C346.81,146 288.25,89.25 216,89.25C143.75,89.25 85.19,146 85.19,216C85.19,286 143.75,342.75 216,342.75ZM216,372C304.92,372 377,302.16 377,216C377,129.84 304.92,60 216,60C127.08,60 55,129.84 55,216C55,302.16 127.08,372 216,372Z"
|
||||
android:fillColor="#0058A0"
|
||||
android:fillType="evenOdd"/>
|
||||
</group>
|
||||
</vector>
|
||||
|
@ -3,12 +3,14 @@
|
||||
android:height="108dp"
|
||||
android:viewportWidth="432"
|
||||
android:viewportHeight="432">
|
||||
<group android:scaleX="0.67"
|
||||
android:scaleY="0.67"
|
||||
android:translateX="71.28"
|
||||
android:translateY="71.28">
|
||||
<path
|
||||
android:pathData="M162.3,173.59L161.22,148.63C164.47,149.25 168.35,149.41 177.18,149.41C187.87,149.41 201.98,148.79 209.26,147.86C212.36,147.55 213.6,147.09 215.61,146L232.35,160.26C230.8,162.43 230.34,163.36 228.63,167.7C227.24,171.11 220.88,190.79 218.4,199.16C229.87,201.48 236.22,203.18 244.9,206.75C245.99,199.16 246.14,195.13 246.14,181.33C246.14,177.77 245.99,175.76 245.52,172.5L272.49,173.43C271.71,177.15 271.56,178.7 271.4,184.74C270.78,199.31 270.16,206.29 268.61,216.82C279.31,222.25 279.31,222.25 284.73,225.19C287.52,226.74 288.14,227.05 290,227.67L281.01,256.65C276.67,252.78 270.63,248.59 261.8,243.63C254.05,262.08 241.18,275.56 221.66,286.25C215.15,277.57 210.19,272.3 202.29,266.11C213.75,260.68 219.02,257.27 225.07,251.54C230.96,245.8 234.83,240.22 238.55,231.85C228.63,227.36 222.28,225.35 211.27,223.02C204.92,241.93 199.8,254.02 195.31,261.3C189.27,271.06 181.05,276.18 171.6,276.18C164.32,276.18 156.88,272.92 151.45,267.35C145.25,260.99 142,252.16 142,241.93C142,226.74 149.28,213.57 161.99,205.35C170.21,200.09 178.88,197.76 192.68,196.99C195.47,187.84 197.79,179.94 199.96,171.11C193.14,171.73 184.62,172.19 174.24,172.65C168.66,172.81 166.8,172.96 162.3,173.59ZM185.86,220.7C178.57,221.94 174.24,224.26 170.36,229.22C167.42,232.63 166.02,236.66 166.02,241C166.02,245.8 168.35,249.37 171.29,249.37C174.85,249.37 178.88,241.31 185.86,220.7Z"
|
||||
android:pathData="M337,216C337,282.83 282.83,337 216,337C149.17,337 95,282.83 95,216C95,149.17 149.17,95 216,95C282.83,95 337,149.17 337,216Z"
|
||||
android:fillColor="#F2FAFF"/>
|
||||
<path
|
||||
android:pathData="M216,314.31C270.3,314.31 314.31,270.3 314.31,216C314.31,161.7 270.3,117.69 216,117.69C161.7,117.69 117.69,161.7 117.69,216C117.69,270.3 161.7,314.31 216,314.31ZM216,337C282.83,337 337,282.83 337,216C337,149.17 282.83,95 216,95C149.17,95 95,149.17 95,216C95,282.83 149.17,337 216,337Z"
|
||||
android:fillColor="#0058A0"
|
||||
android:fillType="evenOdd"/>
|
||||
<path
|
||||
android:pathData="M163.71,174.79L162.66,150.56C165.82,151.16 169.58,151.31 178.16,151.31C188.55,151.31 202.24,150.71 209.32,149.81C212.32,149.51 213.53,149.05 215.49,148L231.74,161.85C230.23,163.95 229.78,164.86 228.13,169.07C226.77,172.38 220.6,191.49 218.2,199.62C229.33,201.88 235.5,203.53 243.93,206.99C244.98,199.62 245.13,195.71 245.13,182.31C245.13,178.85 244.98,176.9 244.53,173.74L270.72,174.64C269.96,178.25 269.82,179.76 269.66,185.62C269.06,199.77 268.46,206.54 266.95,216.78C277.34,222.04 277.34,222.04 282.61,224.9C285.32,226.41 285.92,226.71 287.72,227.31L278.99,255.45C274.78,251.69 268.91,247.63 260.33,242.81C252.81,260.72 240.32,273.82 221.35,284.2C215.03,275.77 210.22,270.65 202.54,264.63C213.68,259.37 218.8,256.06 224.67,250.49C230.38,244.92 234.15,239.5 237.76,231.38C228.13,227.01 221.96,225.05 211.27,222.8C205.1,241.16 200.13,252.9 195.77,259.97C189.9,269.45 181.93,274.42 172.74,274.42C165.67,274.42 158.45,271.26 153.18,265.84C147.16,259.67 144,251.09 144,241.16C144,226.41 151.07,213.62 163.41,205.64C171.39,200.52 179.82,198.27 193.21,197.51C195.92,188.63 198.18,180.96 200.29,172.38C193.66,172.98 185.39,173.43 175.3,173.88C169.88,174.04 168.08,174.19 163.71,174.79ZM186.59,220.54C179.52,221.74 175.3,224 171.54,228.82C168.68,232.13 167.33,236.04 167.33,240.25C167.33,244.92 169.58,248.38 172.44,248.38C175.9,248.38 179.82,240.55 186.59,220.54Z"
|
||||
android:fillColor="#031019"/>
|
||||
</group>
|
||||
</vector>
|
||||
|
@ -20,7 +20,7 @@ END;
|
||||
|
||||
insert:
|
||||
INSERT INTO mangas_categories(manga_id, category_id, last_modified_at)
|
||||
VALUES (:mangaId, :categoryId, strftime('%s', 'now'));
|
||||
VALUES (:mangaId, :categoryId, 0);
|
||||
|
||||
deleteMangaCategoryByMangaId:
|
||||
DELETE FROM mangas_categories
|
||||
|
@ -143,7 +143,7 @@
|
||||
<string name="untrusted_extension">Luottamattomat laajennokset</string>
|
||||
<string name="untrusted_extension_message">Tämä laajennus on allekirjoitettu luottamattomalla sertifikaatilla ja sitä ei ole aktivoitu.
|
||||
\n
|
||||
\nHaitallinen laajennus voisi lukea mahdolliset kirjautumistiedot Mihonsta tai suorittaa luvatonta koodia.
|
||||
\nHaitallinen laajennus voisi lukea mahdolliset kirjautumistiedot Mihonista tai suorittaa luvatonta koodia.
|
||||
\n
|
||||
\nLuottamalla tähän sertifikaattiin hyväksyt nämä riskit.</string>
|
||||
<string name="pref_fullscreen">Koko näyttö</string>
|
||||
@ -348,7 +348,7 @@
|
||||
<string name="action_pin">Kiinnitä</string>
|
||||
<string name="action_select_inverse">Valitse käänteinen</string>
|
||||
<string name="vertical_plus_viewer">Jatkuva pystysuora</string>
|
||||
<string name="information_webview_required">WebView on pakollinen Mihonssa</string>
|
||||
<string name="information_webview_required">WebView on pakollinen Mihonissa</string>
|
||||
<string name="restore_in_progress">Palautus on jo käynnissä</string>
|
||||
<string name="backup_in_progress">Varmuuskopiointi on jo käynnissä</string>
|
||||
<string name="pref_webtoon_side_padding">Sivuntäyttö</string>
|
||||
@ -495,7 +495,7 @@
|
||||
<string name="off">Pois päältä</string>
|
||||
<string name="on">Päällä</string>
|
||||
<string name="getting_started_guide">Aloitusopas</string>
|
||||
<string name="download_queue_size_warning">Varoitus: massalataukset voivat johtaa siihen, että lähteet muuttuvat hitaammiksi käyttää ja/tai ne estävät Mihonn käytön. Napauta saadaksesi lisätietoja.</string>
|
||||
<string name="download_queue_size_warning">Varoitus: massalataukset voivat johtaa siihen, että lähteet muuttuvat hitaammiksi käyttää ja/tai ne estävät Mihonin käytön. Napauta saadaksesi lisätietoja.</string>
|
||||
<string name="action_show_manga">Näytä manga</string>
|
||||
<string name="action_display_cover_only_grid">Kansikuva ruudukko</string>
|
||||
<string name="theme_monet">Dynaaminen</string>
|
||||
|
@ -192,7 +192,7 @@
|
||||
<string name="snack_add_to_library">Tambahkan ke pustaka\?</string>
|
||||
<string name="picture_saved">Gambar disimpan</string>
|
||||
<string name="custom_filter">Filter khusus</string>
|
||||
<string name="set_as_cover">Tetapkan sebagai sampul</string>
|
||||
<string name="set_as_cover">Terapkan sebagai sampul</string>
|
||||
<string name="cover_updated">Sampul telah diperbarui</string>
|
||||
<string name="chapter_progress">Halaman: %1$d</string>
|
||||
<string name="no_next_chapter">Bab berikutnya tak ditemukan</string>
|
||||
@ -406,15 +406,15 @@
|
||||
<string name="channel_progress">Kemajuan</string>
|
||||
<string name="channel_errors">Masalah</string>
|
||||
<string name="backup_restore_missing_trackers">Pelacakan tidak tersinkronisasi di:</string>
|
||||
<string name="ext_nsfw_warning">Sumber dari ekstensi ini mungkin berisi konten DEWASA (18+)</string>
|
||||
<string name="ext_nsfw_warning">Sumber dari ekstensi ini mungkin berisi konten DEWASA (NSFW 18+)</string>
|
||||
<string name="ext_nsfw_short">18+</string>
|
||||
<string name="pref_remove_bookmarked_chapters">Hapus bab yang ditandai</string>
|
||||
<string name="pref_category_delete_chapters">Hapus chapter</string>
|
||||
<string name="parental_controls_info">Hal ini tidak mencegah ekstensi yang tidak resmi atau berpotensi salah ditandai untuk menampilkan konten NSFW (18+) di dalam aplikasi.</string>
|
||||
<string name="parental_controls_info">Hal ini tidak mencegah ekstensi non-resmi atau konten DEWASA (NSFW 18+) yang tidak ditandai dengan benar muncul di dalam aplikasi.</string>
|
||||
<string name="no_chapters_error">Tidak ada bab yang ditemukan</string>
|
||||
<string name="chapter_settings_updated">Pengaturan bab bawaan diperbarui</string>
|
||||
<string name="set_chapter_settings_as_default">Tetapkan sebagai bawaan</string>
|
||||
<string name="also_set_chapter_settings_for_library">Juga terapkan untuk semua entri di pustaka saya</string>
|
||||
<string name="set_chapter_settings_as_default">Terapkan sebagai bawaan</string>
|
||||
<string name="also_set_chapter_settings_for_library">Terapkan pula untuk semua entri di pustaka saya</string>
|
||||
<string name="confirm_set_chapter_settings">Apakah anda yakin ingin menyimpan pengaturan ini sebagai bawaan\?</string>
|
||||
<string name="chapter_settings">Pengaturan bab</string>
|
||||
<string name="share_page_info">%1$s: %2$s, halaman %3$d</string>
|
||||
@ -573,7 +573,7 @@
|
||||
<string name="action_move_to_top_all_for_series">Pindahkan seri ke atas</string>
|
||||
<string name="update_check_fdroid_migration_info">Versi baru tersedia dari perilisan resmi. Ketuk untuk mempelajari migrasi dari perilisan non-resmi dari F-Droid.</string>
|
||||
<string name="disabled_nav">Dinonaktifkan</string>
|
||||
<string name="error_saving_picture">Error menyimpan gambar</string>
|
||||
<string name="error_saving_picture">Gagal menyimpan gambar</string>
|
||||
<string name="empty_backup_error">Tidak ada entri perpustakaan untuk dicadangkan</string>
|
||||
<string name="update_check_open">Buka di Github</string>
|
||||
<string name="pref_clear_webview_data">Membersihkan data WebView</string>
|
||||
@ -700,7 +700,7 @@
|
||||
<string name="pref_chapter_swipe_start">Geser kekiri</string>
|
||||
<string name="pref_double_tap_zoom">Ketuk dua kali untuk memperbesar</string>
|
||||
<string name="pref_library_columns_per_row">%d per baris</string>
|
||||
<string name="action_set_interval">Tetapkan jeda waktu</string>
|
||||
<string name="action_set_interval">Terapkan jeda waktu</string>
|
||||
<string name="action_filter_interval_custom">Frekuensi pembaruan yang disesuaikan</string>
|
||||
<string name="skipped_reason_not_in_release_period">Dilewati karena tidak ada rilis yang diharapkan hari ini</string>
|
||||
<string name="action_sort_next_updated">Pembaruan yang diharapkan berikutnya</string>
|
||||
@ -783,7 +783,7 @@
|
||||
<string name="action_add_repo_message">Tambahkan repo lain ke Mihon. Seharusnya URL yang memiliki akhiran \"index.min.json\".</string>
|
||||
<string name="label_extension_repos">Repositori ekstensi</string>
|
||||
<string name="information_empty_repos">Anda tidak memiliki repositori yang ditetapkan.</string>
|
||||
<string name="invalid_backup_file_error">Keseluruhan eror:</string>
|
||||
<string name="invalid_backup_file_error">Kesalahan penuh:</string>
|
||||
<string name="error_repo_exists">Repositori ini sudah ada!</string>
|
||||
<string name="label_add_repo_input">URL Repo</string>
|
||||
<string name="invalid_repo_name">URL repo tidak valid</string>
|
||||
@ -793,9 +793,9 @@
|
||||
<string name="delete_repo_confirmation">Apa Anda yakin ingin menghapus repo \"%s\"?</string>
|
||||
<string name="manga_interval_expected_update">Bab baru diperkirakan akan dirils sekitar %1$s, diperiksa setiap sekitar %2$s.</string>
|
||||
<string name="available_disk_space_info">Tersedia:%1$s/Total:%2$s</string>
|
||||
<string name="manga_interval_custom_amount">Keseringan pembaruan yang di kostumisasi:</string>
|
||||
<string name="manga_interval_custom_amount">Frekuensi pembaruan khusus:</string>
|
||||
<string name="theme_nord">Nord</string>
|
||||
<string name="manga_interval_expected_update_soon">Segera</string>
|
||||
<string name="ext_revoke_trust">Mencabut ekstensi tidak dikenal yang tepercaya</string>
|
||||
<string name="ext_revoke_trust">Cabut izin ekstensi tidak dikenal yang tepercaya</string>
|
||||
<string name="action_open_repo">Repo sumber terbuka</string>
|
||||
</resources>
|
@ -26,9 +26,9 @@
|
||||
<item quantity="other">%d категорија</item>
|
||||
</plurals>
|
||||
<plurals name="relative_time">
|
||||
<item quantity="one">Pre %1$d dan</item>
|
||||
<item quantity="few">Pre %1$d dana</item>
|
||||
<item quantity="other">Pre %1$d dana</item>
|
||||
<item quantity="one">Пре %1$d дан</item>
|
||||
<item quantity="few">Пре %1$d дана</item>
|
||||
<item quantity="other">Пре %1$d дана</item>
|
||||
</plurals>
|
||||
<plurals name="missing_chapters_warning">
|
||||
<item quantity="one">Прескаче се %d поглавље, или не постоји у извору или је филтером издвојено</item>
|
||||
@ -80,4 +80,9 @@
|
||||
<item quantity="few">%d дана</item>
|
||||
<item quantity="other">%d дана</item>
|
||||
</plurals>
|
||||
<plurals name="num_repos">
|
||||
<item quantity="one">%d репозиторија</item>
|
||||
<item quantity="few">%d репозиторија</item>
|
||||
<item quantity="other">%d репозиторија</item>
|
||||
</plurals>
|
||||
</resources>
|
@ -15,6 +15,7 @@
|
||||
<string name="label_migration">Миграција</string>
|
||||
<string name="label_extensions">Додаци</string>
|
||||
<string name="label_extension_info">Информације о додатку</string>
|
||||
<string name="label_data_storage">Складиштење и подаци</string>
|
||||
<string name="action_settings">Подешавања</string>
|
||||
<string name="action_filter">Филтер</string>
|
||||
<string name="action_filter_bookmarked">Забележено</string>
|
||||
@ -83,7 +84,7 @@
|
||||
<string name="all">Све</string>
|
||||
<string name="pref_library_update_restriction">Ограничења уређаја за аутоматска ажурирања</string>
|
||||
<string name="charging">Пуњење</string>
|
||||
<string name="pref_update_only_non_completed">Са статусом \"Завршено\"</string>
|
||||
<string name="pref_update_only_non_completed">Прескочи уносе са статусом \"Завршено\"</string>
|
||||
<string name="pref_auto_update_manga_sync">Ажурирај пратиоца након читања</string>
|
||||
<string name="default_category">Подразумевана категорија</string>
|
||||
<string name="default_category_summary">Увек питај</string>
|
||||
@ -428,7 +429,7 @@
|
||||
<string name="label_network">Мрежа</string>
|
||||
<string name="backup_restore_content_full">Подаци из датотеке резервне копије ће бити враћени.
|
||||
\n
|
||||
\nМораћете да инсталирате све додатке које недостају и да се после тога пријавите на трекере да бисте их користили.</string>
|
||||
\nМораћете да инсталирате све додатке које недостају и да се после тога пријавите на пратиоце да бисте их користили.</string>
|
||||
<string name="enhanced_tracking_info">Сервиси који пружају побољшане услуге за одређене изворе. Наслов се аутоматски прати када га додате у колекцију.</string>
|
||||
<string name="help_translate">Помозите у превођењу</string>
|
||||
<string name="pref_dump_crash_logs">Дели извештаје о паду</string>
|
||||
@ -535,7 +536,7 @@
|
||||
<string name="pref_remove_bookmarked_chapters">Дозволи брисање забележених поглавља</string>
|
||||
<string name="pref_remove_exclude_categories">Искључене категорије</string>
|
||||
<string name="pref_download_new_categories_details">Наслови у искљученим категоријама неће се преузимати иако су такође у укљученим категоријама.</string>
|
||||
<string name="tracking_info">Једносмерна синхронизација за ажурирање броја прочитаних поглавља у трекерима. За појединачно праћење наслова додирни дугме за њихово праћење.</string>
|
||||
<string name="tracking_info">Једносмерна синхронизација за ажурирање броја прочитаних поглавља у пратиоцима. За појединачно праћење наслова додирни дугме за њихово праћење.</string>
|
||||
<string name="label_data">Подаци</string>
|
||||
<string name="pref_incognito_mode">Инкогнито мод</string>
|
||||
<string name="cover_updated">Омот је ажуриран</string>
|
||||
@ -556,11 +557,11 @@
|
||||
<string name="extension_api_error">Преузимање листе додатака није успело</string>
|
||||
<string name="pref_auto_clear_chapter_cache">Испразни кеш меморију поглавља током покретања апликације</string>
|
||||
<string name="database_clean">Нема ништа за чишћење</string>
|
||||
<string name="pref_update_only_completely_read">Sa neporcitanim poglavljem(ima)</string>
|
||||
<string name="pref_update_only_completely_read">Прескочи уносе са непрочитаним поглављима</string>
|
||||
<string name="privacy_policy">Политика приватности</string>
|
||||
<string name="cancelled">Отказано</string>
|
||||
<string name="on_hiatus">На паузи</string>
|
||||
<string name="pref_update_only_started">То није започето</string>
|
||||
<string name="pref_update_only_started">Прескочи уносе који нису започети</string>
|
||||
<string name="action_show_manga">Прикажи наслов</string>
|
||||
<string name="action_move_to_top_all_for_series">Помакни наслов на врх</string>
|
||||
<string name="notification_update_error">%1$d ажурирање није успело</string>
|
||||
@ -681,7 +682,7 @@
|
||||
<string name="error_user_agent_string_blank">Низ корисничког агента не може бити празан</string>
|
||||
<string name="pref_reset_user_agent_string">Ресетуј подразумевани низ корисничког агента</string>
|
||||
<string name="label_tracked_titles">Праћени наслови</string>
|
||||
<string name="label_tracker_section">Трекери</string>
|
||||
<string name="label_tracker_section">Пратиоци</string>
|
||||
<string name="ext_info_age_rating">Рангирање по узрасту</string>
|
||||
<string name="custom_cover">Персонализовани омот</string>
|
||||
<string name="pref_reset_viewer_flags">Ресетуј подешавања читача по наслову</string>
|
||||
@ -708,7 +709,7 @@
|
||||
<string name="licensed_manga_chapters_error">Лиценцирано - Нема поглавља за приказ</string>
|
||||
<string name="has_results">Има резултата</string>
|
||||
<string name="skipped_reason_not_in_release_period">Прескочено јер данас није очекивано издање</string>
|
||||
<string name="pref_update_only_in_release_period">Изван очекиваног периода изласка</string>
|
||||
<string name="pref_update_only_in_release_period">Предвиди очекивано време изласка</string>
|
||||
<string name="action_set_interval">Постави интервалу</string>
|
||||
<string name="intervals_header">Интервали</string>
|
||||
<string name="track_delete_remote_text">Такође уклони из %s</string>
|
||||
@ -729,4 +730,59 @@
|
||||
<string name="exception_offline">Нема везе са интернетом</string>
|
||||
<string name="exception_http">HTTP %d, погледај веб сајт у WebView</string>
|
||||
<string name="exception_unknown_host">%s је недоступан</string>
|
||||
<string name="pref_relative_format">Релативне временске ознаке</string>
|
||||
<string name="pref_relative_format_summary">„%1$s” уместо „%2$s”</string>
|
||||
<string name="pref_library_update_smart_update">Паметно ажурирање</string>
|
||||
<string name="pref_flash_page">Забљесни приликом листања</string>
|
||||
<string name="pref_flash_page_summ">Смањује артефакте на е-инк екранима</string>
|
||||
<string name="label_extension_repos">Репозиторије екстензија</string>
|
||||
<string name="pref_storage_location">Место складиштења</string>
|
||||
<string name="pref_storage_location_info">Користи се за аутоматске резервне копије, преузимаље поглавља и локални извор.</string>
|
||||
<string name="ext_revoke_trust">Опозови поверење непознатим екстензијама</string>
|
||||
<string name="action_sort_tracker_score">Оцена на пратиоцу</string>
|
||||
<string name="scanlator">Аматерски преводилац</string>
|
||||
<string name="no_scanlators_found">Ниједан аматерски преводилац није пронађен</string>
|
||||
<string name="exclude_scanlators">Не укључуј аматерске преводиоце</string>
|
||||
<string name="manga_interval_expected_update">Предвиђа се да ће нова поглавља изаћи за %1$s, проверава се сваких %2$s.</string>
|
||||
<string name="manga_interval_expected_update_soon">Ускоро</string>
|
||||
<string name="available_disk_space_info">Доступно: %1$s / Укупно: %2$s</string>
|
||||
<string name="information_empty_repos">Немате додатих репозиторија.</string>
|
||||
<string name="action_add_repo">Додај репозиторију</string>
|
||||
<string name="action_delete_repo">Избриши репозиторију</string>
|
||||
<string name="label_add_repo_input">URL репозиторије</string>
|
||||
<string name="action_add_repo_message">Додај додатне репозиторије у Михон. Треба да буде URL који се завршава са „index.min.json”.</string>
|
||||
<string name="invalid_repo_name">Неисправан URL репозиторије</string>
|
||||
<string name="delete_repo_confirmation">Да ли желиш да избришеш репозиторију „%s”?</string>
|
||||
<string name="private_settings">Укључи и осетљива подешавања (нпр. токени за пријаву у пратиоце)</string>
|
||||
<string name="onboarding_storage_action_select">Изабери путању</string>
|
||||
<string name="onboarding_action_finish">Започни</string>
|
||||
<string name="onboarding_storage_selection_required">Мораш да изабереш једну путању</string>
|
||||
<string name="onboarding_permission_notifications">Дозвола за обавештења</string>
|
||||
<string name="onboarding_permission_install_apps">Дозвола за инсталацију апликација</string>
|
||||
<string name="onboarding_action_skip">Пресокочи</string>
|
||||
<string name="onboarding_action_next">Следеће</string>
|
||||
<string name="onboarding_permission_install_apps_description">За инсталирање екстензија.</string>
|
||||
<string name="onboarding_permission_notifications_description">За примање обавештења о ажурурању библиотеке и др.</string>
|
||||
<string name="onboarding_permission_action_grant">Одобри</string>
|
||||
<string name="onboarding_heading">Добро дошли!</string>
|
||||
<string name="pref_onboarding_guide">Водич за прво покретање</string>
|
||||
<string name="onboarding_guides_new_user">Користш %s први пут? Препоручујемо да погледаш водич за покретање</string>
|
||||
<string name="onboarding_guides_returning_user">Поново инсталираш %s?</string>
|
||||
<string name="onboarding_permission_ignore_battery_opts_description">Избегни прекиде при дуготрајном ажурирању колекције, преузимању и обнављању резервне копије</string>
|
||||
<string name="onboarding_permission_ignore_battery_opts">Коришћење батерије у позадини</string>
|
||||
<string name="onboarding_description">Хајде да обавимо нека подешавања. Ако желиш можеш их касније променити у подешавањима.</string>
|
||||
<string name="no_location_set">Није постављена локација за складиштење</string>
|
||||
<string name="onboarding_storage_info">Одабери путању у коју ће %1$s чувати преузимања поглавља, резервне копије и друго.
|
||||
\n
|
||||
\nПрепоручујемо коришћење засебне путање
|
||||
\n
|
||||
\nОдабрана путања: %2$s</string>
|
||||
<string name="theme_nord">Норд</string>
|
||||
<string name="onboarding_storage_help_info">Ажурураш са старије верзије и не знаш шта да изабереш? Потражи информације у водичу складиштења.</string>
|
||||
<string name="onboarding_storage_help_action">Водич складиштења</string>
|
||||
<string name="ext_permission_install_apps_warning">За инсталацију екстензија потребне су дозволе. Додирни овде за одобрење</string>
|
||||
<string name="invalid_backup_file_error">Грешка:</string>
|
||||
<string name="error_repo_exists">Ова репозиторија већ постоји</string>
|
||||
<string name="manga_interval_custom_amount">Прилагођена учесталост ажурирања:</string>
|
||||
<string name="action_open_repo">Отвори репозиторију</string>
|
||||
</resources>
|
Loading…
Reference in New Issue
Block a user