mirror of
https://github.com/mihonapp/mihon.git
synced 2025-11-12 20:19:05 +01:00
Support for sources from different languages
This commit is contained in:
@@ -379,11 +379,11 @@ public class DownloadManager {
|
||||
}
|
||||
|
||||
public File getAbsoluteMangaDirectory(Source source, Manga manga) {
|
||||
String chapterRelativePath = source.getName() +
|
||||
String mangaRelativePath = source.getVisibleName() +
|
||||
File.separator +
|
||||
manga.title.replaceAll("[^\\sa-zA-Z0-9.-]", "_");
|
||||
|
||||
return new File(preferences.getDownloadsDirectory(), chapterRelativePath);
|
||||
return new File(preferences.getDownloadsDirectory(), mangaRelativePath);
|
||||
}
|
||||
|
||||
// Get the absolute path to the chapter directory
|
||||
|
||||
@@ -11,9 +11,7 @@ import eu.kanade.tachiyomi.data.source.base.Source
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
|
||||
fun <T> Preference<T>.getOrDefault(): T {
|
||||
return get() ?: defaultValue()!!
|
||||
}
|
||||
fun <T> Preference<T>.getOrDefault(): T = get() ?: defaultValue()!!
|
||||
|
||||
class PreferencesHelper(private val context: Context) {
|
||||
|
||||
@@ -140,6 +138,10 @@ class PreferencesHelper(private val context: Context) {
|
||||
return rxPrefs.getBoolean(getKey(R.string.pref_display_catalogue_as_list), false)
|
||||
}
|
||||
|
||||
fun enabledLanguages(): Preference<MutableSet<String>> {
|
||||
return rxPrefs.getStringSet(getKey(R.string.pref_source_languages), setOf("EN"))
|
||||
}
|
||||
|
||||
fun getSourceUsername(source: Source): String {
|
||||
return prefs.getString(SOURCE_ACCOUNT_USERNAME + source.id, "")
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
package eu.kanade.tachiyomi.data.source
|
||||
|
||||
class Language(val lang: String, val code: String)
|
||||
|
||||
val EN = Language("English", "EN")
|
||||
val RU = Language("Russian", "RU")
|
||||
|
||||
fun getLanguages(): List<Language> = listOf(EN, RU)
|
||||
@@ -11,7 +11,6 @@ import java.util.*
|
||||
open class SourceManager(private val context: Context) {
|
||||
|
||||
val sourcesMap: HashMap<Int, Source>
|
||||
val sources: List<Source>
|
||||
|
||||
val BATOTO = 1
|
||||
val MANGAHERE = 2
|
||||
@@ -22,7 +21,6 @@ open class SourceManager(private val context: Context) {
|
||||
|
||||
init {
|
||||
sourcesMap = createSourcesMap()
|
||||
sources = ArrayList(sourcesMap.values).sortedBy { it.name }
|
||||
}
|
||||
|
||||
open fun get(sourceKey: Int): Source? {
|
||||
@@ -49,4 +47,6 @@ open class SourceManager(private val context: Context) {
|
||||
return map
|
||||
}
|
||||
|
||||
fun getSources(): List<Source> = ArrayList(sourcesMap.values)
|
||||
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import java.util.List;
|
||||
|
||||
import eu.kanade.tachiyomi.data.database.models.Chapter;
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga;
|
||||
import eu.kanade.tachiyomi.data.source.Language;
|
||||
import eu.kanade.tachiyomi.data.source.model.MangasPage;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.Response;
|
||||
@@ -24,9 +25,16 @@ public abstract class BaseSource {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public abstract Language getLang();
|
||||
|
||||
// Name of the source to display
|
||||
public abstract String getName();
|
||||
|
||||
// Name of the source to display with the language
|
||||
public String getVisibleName() {
|
||||
return getName() + " (" + getLang().getCode() + ")";
|
||||
}
|
||||
|
||||
// Base url of the source, like: http://example.com
|
||||
public abstract String getBaseUrl();
|
||||
|
||||
@@ -86,6 +94,6 @@ public abstract class BaseSource {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getName();
|
||||
return getVisibleName();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,6 +28,8 @@ import java.util.regex.Pattern;
|
||||
import eu.kanade.tachiyomi.data.database.models.Chapter;
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga;
|
||||
import eu.kanade.tachiyomi.data.network.ReqKt;
|
||||
import eu.kanade.tachiyomi.data.source.Language;
|
||||
import eu.kanade.tachiyomi.data.source.LanguageKt;
|
||||
import eu.kanade.tachiyomi.data.source.base.LoginSource;
|
||||
import eu.kanade.tachiyomi.data.source.model.MangasPage;
|
||||
import eu.kanade.tachiyomi.data.source.model.Page;
|
||||
@@ -40,7 +42,7 @@ import rx.Observable;
|
||||
|
||||
public class Batoto extends LoginSource {
|
||||
|
||||
public static final String NAME = "Batoto (EN)";
|
||||
public static final String NAME = "Batoto";
|
||||
public static final String BASE_URL = "http://bato.to";
|
||||
public static final String POPULAR_MANGAS_URL = BASE_URL + "/search_ajax?order_cond=views&order=desc&p=%s";
|
||||
public static final String SEARCH_URL = BASE_URL + "/search_ajax?name=%s&p=%s";
|
||||
@@ -79,6 +81,10 @@ public class Batoto extends LoginSource {
|
||||
return BASE_URL;
|
||||
}
|
||||
|
||||
public Language getLang() {
|
||||
return LanguageKt.getEN();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Headers.Builder headersBuilder() {
|
||||
Headers.Builder builder = super.headersBuilder();
|
||||
|
||||
@@ -18,6 +18,8 @@ import java.util.regex.Pattern;
|
||||
import eu.kanade.tachiyomi.data.database.models.Chapter;
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga;
|
||||
import eu.kanade.tachiyomi.data.network.ReqKt;
|
||||
import eu.kanade.tachiyomi.data.source.Language;
|
||||
import eu.kanade.tachiyomi.data.source.LanguageKt;
|
||||
import eu.kanade.tachiyomi.data.source.base.Source;
|
||||
import eu.kanade.tachiyomi.data.source.model.MangasPage;
|
||||
import eu.kanade.tachiyomi.data.source.model.Page;
|
||||
@@ -28,7 +30,7 @@ import okhttp3.Request;
|
||||
|
||||
public class Kissmanga extends Source {
|
||||
|
||||
public static final String NAME = "Kissmanga (EN)";
|
||||
public static final String NAME = "Kissmanga";
|
||||
public static final String HOST = "kissmanga.com";
|
||||
public static final String IP = "93.174.95.110";
|
||||
public static final String BASE_URL = "http://" + IP;
|
||||
@@ -56,6 +58,10 @@ public class Kissmanga extends Source {
|
||||
return BASE_URL;
|
||||
}
|
||||
|
||||
public Language getLang() {
|
||||
return LanguageKt.getEN();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getInitialPopularMangasUrl() {
|
||||
return String.format(POPULAR_MANGAS_URL, 1);
|
||||
|
||||
@@ -18,13 +18,15 @@ import java.util.Locale;
|
||||
|
||||
import eu.kanade.tachiyomi.data.database.models.Chapter;
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga;
|
||||
import eu.kanade.tachiyomi.data.source.Language;
|
||||
import eu.kanade.tachiyomi.data.source.LanguageKt;
|
||||
import eu.kanade.tachiyomi.data.source.base.Source;
|
||||
import eu.kanade.tachiyomi.data.source.model.MangasPage;
|
||||
import eu.kanade.tachiyomi.util.Parser;
|
||||
|
||||
public class Mangafox extends Source {
|
||||
|
||||
public static final String NAME = "Mangafox (EN)";
|
||||
public static final String NAME = "Mangafox";
|
||||
public static final String BASE_URL = "http://mangafox.me";
|
||||
public static final String POPULAR_MANGAS_URL = BASE_URL + "/directory/%s";
|
||||
public static final String SEARCH_URL =
|
||||
@@ -44,6 +46,10 @@ public class Mangafox extends Source {
|
||||
return BASE_URL;
|
||||
}
|
||||
|
||||
public Language getLang() {
|
||||
return LanguageKt.getEN();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getInitialPopularMangasUrl() {
|
||||
return String.format(POPULAR_MANGAS_URL, "");
|
||||
|
||||
@@ -18,13 +18,15 @@ import java.util.Locale;
|
||||
|
||||
import eu.kanade.tachiyomi.data.database.models.Chapter;
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga;
|
||||
import eu.kanade.tachiyomi.data.source.Language;
|
||||
import eu.kanade.tachiyomi.data.source.LanguageKt;
|
||||
import eu.kanade.tachiyomi.data.source.base.Source;
|
||||
import eu.kanade.tachiyomi.data.source.model.MangasPage;
|
||||
import eu.kanade.tachiyomi.util.Parser;
|
||||
|
||||
public class Mangahere extends Source {
|
||||
|
||||
public static final String NAME = "Mangahere (EN)";
|
||||
public static final String NAME = "Mangahere";
|
||||
public static final String BASE_URL = "http://www.mangahere.co";
|
||||
public static final String POPULAR_MANGAS_URL = BASE_URL + "/directory/%s";
|
||||
public static final String SEARCH_URL = BASE_URL + "/search.php?name=%s&page=%s&sort=views&order=za";
|
||||
@@ -43,6 +45,10 @@ public class Mangahere extends Source {
|
||||
return BASE_URL;
|
||||
}
|
||||
|
||||
public Language getLang() {
|
||||
return LanguageKt.getEN();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getInitialPopularMangasUrl() {
|
||||
return String.format(POPULAR_MANGAS_URL, "");
|
||||
|
||||
Reference in New Issue
Block a user