Skip to content

Commit 21bfbfb

Browse files
committed
Initial commit
0 parents  commit 21bfbfb

File tree

520 files changed

+47819
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

520 files changed

+47819
-0
lines changed

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Auto detect text files and perform LF normalization
2+
* text=auto

.gitignore

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Gradle files
2+
.gradle/
3+
build/
4+
5+
# Local configuration file (sdk path, etc)
6+
local.properties
7+
8+
# Log/OS Files
9+
*.log
10+
11+
# Android Studio generated files and folders
12+
captures/
13+
.externalNativeBuild/
14+
.cxx/
15+
*.apk
16+
output.json
17+
18+
# IntelliJ
19+
*.iml
20+
.idea/
21+
22+
# Keystore files
23+
*.jks
24+
*.keystore
25+
26+
# Google Services (e.g. APIs or Firebase)
27+
google-services.json
28+
29+
# Android Profiling
30+
*.hprof

LICENSE.md

Lines changed: 674 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
# **Dantotsu**
2+
<p align="center">
3+
<a href="https://discord.gg/4HPZ5nAWwM"><img src="https://img.shields.io/badge/Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white"></a>
4+
<a href="https://github.com/saikou-app/saikou/releases"><img src="https://img.shields.io/github/downloads/saikou-app/saikou/total?color=%233DDC84&logo=android&logoColor=%23fff&style=for-the-badge"></a>
5+
</p>
6+
Dantotsu is crafted from the ashes of Saikou and based on simplistic yet state-of-the-art elegance. It is an [Anilist](https://anilist.co/) only client, which also lets you stream-download Anime & Manga through extensions.
7+
<br><br>
8+
<i>Dantotsu (断トツ; Dan-totsu) literally means the best of the best in Japanese. Well, we would like to say this is the best open source app for anime and manga on Android, but hey, try it out yourself & judge!
9+
</i>
10+
<br>
11+
<br>
12+
<a href="https://www.buymeacoffee.com/rebelonion"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=&slug=rebelonion&button_colour=FFDD00&font_colour=000000&font_family=Poppins&outline_colour=000000&coffee_colour=ffffff" /></a>
13+
<br>
14+
### 🌟STAR THIS REPOSITORY TO SUPPORT THE DEVELOPER AND ENCOURAGE THE DEVELOPMENT OF THE APPLICATION!
15+
16+
> **Warning**
17+
>
18+
> Please do not attempt to upload Dantotsu or any of it's forks on Playstore or any other Android appstores on the internet. Doing so, may infringe their terms and conditions. This may result to legal action or immediate take-down of the app.
19+
20+
<!--<img src="https://github.com/saikou-app/saikou-app.github.io/blob/main/assets/Screenshot_20220330-175525.png?raw=true" style="width: 23%;margin:16px;" />&nbsp;&nbsp;<img src="https://github.com/saikou-app/saikou-app.github.io/blob/main/assets/Screenshot_20220330-175542.png?raw=true" style="width: 23%;margin:16px;" />&nbsp;&nbsp;<img src="https://github.com/saikou-app/saikou-app.github.io/blob/main/assets/Screenshot_20220330-175551.png?raw=true" style="width: 23%;margin:16px;" />&nbsp;&nbsp;<img src="https://github.com/saikou-app/saikou-app.github.io/blob/main/assets/Screenshot_20220330-175600.png?raw=true" style="width: 23%;margin:16px;" />&nbsp;&nbsp;<img src="https://github.com/saikou-app/saikou-app.github.io/blob/main/assets/Screenshot_20220330-183102.png?raw=true" style="width: 23%;margin:16px;" />&nbsp;&nbsp;<img src="https://github.com/saikou-app/saikou-app.github.io/blob/main/assets/Screenshot_20220330-183112.png?raw=true" style="width: 23%;margin:16px;" />&nbsp;&nbsp;<img src="https://github.com/saikou-app/saikou-app.github.io/blob/main/assets/Screenshot_20220330-183120.png?raw=true" style="width: 23%;margin:16px;" />&nbsp;&nbsp;<img src="https://github.com/saikou-app/saikou-app.github.io/blob/main/assets/Screenshot_20220330-182352.png?raw=true" style="width: 23%;margin:16px;" />&nbsp;&nbsp;<img src="https://github.com/saikou-app/saikou-app.github.io/blob/main/assets/Screenshot_20220330-182421.png?raw=true" style="width: 23%;margin:16px;" />-->
21+
22+
23+
## APP FEATURES
24+
25+
- Easy and functional way to both, watch anime and read manga, ad-free.
26+
27+
- A completely open source app with a nice UI & Animations :)
28+
29+
- Aniyomi extension support built right into the app.
30+
31+
- Synchronize anime and manga real-time with AniList and MyAnimeList. Easily categorise anime and manga based on your current status. (Powered by AniList)
32+
33+
- Find all shows using thoroughly and frequently updated list of all trending, popular and ongoing anime based on scores.
34+
35+
- View extensive details about anime shows, movies and manga titles. It also features ability to countdown to the next episode of airing anime. (Powered by AniList & MyAnimeList)
36+
37+
- Get notified when new episodes/chapters are released!
38+
39+
40+
* **Available Anime sources:-**
41+
NONE BUILT IN!
42+
add your own extensions in the settings menu (Dantotsu has affiliation with any of the extensions)
43+
44+
45+
* **Available Manga sources:-**
46+
NONE BUILT IN!
47+
add your own extensions in the settings menu (Dantotsu has affiliation with any of the extensions)
48+
49+
## Planned Stuff
50+
51+
- get app out of alpha
52+
53+
- Accent Color Change (RIP Hot Pink Supremacy.)
54+
55+
56+
## Rejected Stuff (still rejected)
57+
58+
- Sources of any language except English
59+
60+
- News Section in the App
61+
62+
- Comment Section
63+
64+
65+
## WANT TO CONTRIBUTE?
66+
67+
- All contributions are welcome, from code to documentation to graphics to design suggestions to bug reports. Please use GitHub to its fullest; contribute Pull Requests, contribute tutorials or other content- whatever you have to offer, we can use it!
68+
69+
- You can come hang out with our awesome community and request new features and report any bugs or issue at our discord server too.
70+
71+
### Official Discord Server
72+
73+
<p align="center">
74+
<a href="https://discord.gg/4HPZ5nAWwM">
75+
<img src="https://invidget.switchblade.xyz/2T7TunuwFZ">
76+
</a>
77+
</p>
78+
79+
80+
### VISIT FOR MORE INFORMATION:-
81+
82+
https://saikou.me/
83+
84+
## DISCLAIMER
85+
86+
* Dantotsu by itself only provides an anime and manga tracker and does not provide any anime or manga streaming or downloading capabilities.
87+
88+
* Dantotsu or any of its developer/staff don't host any of the content found inside Dantotsu. Any and all images and anime/manga information found in the app are taken from various public APIs (AniList, MyAnimeList, Kitsu).
89+
90+
* Furthermore, all of the anime/manga links found in Dantotsu are taken from various 3rd party plugins and have no affiliation with Dantotsu or its staff.
91+
92+
* Dantotsu or it's owners aren't liable for any misuse of any of the contents found inside or outside of the app and cannot be held accountable for the distribution of any of the contents found inside the app.
93+
94+
* By using Dantotsu, you comply to the fact that the developer of the app is not responsible for any of the contents found in the app. You also agree to the fact that you may not use Dantotsu to download or stream any copyrighted content.
95+
96+
* If the internet infringement issues are involved, please contact the source website. The developer does not assume any legal responsibility.
97+
98+
## License
99+
100+
Dantotsu is licensed under the [GNU General Public License v3.0](LICENSE.md)

app/.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/build
2+
/debug
3+
/debug/output-metadata.json
4+
/release

app/build.gradle

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
plugins {
2+
id 'com.android.application'
3+
id 'com.google.gms.google-services'
4+
id 'com.google.firebase.crashlytics'
5+
id 'kotlin-android'
6+
id 'kotlinx-serialization'
7+
id 'org.jetbrains.kotlin.android'
8+
id 'com.google.devtools.ksp'
9+
10+
}
11+
12+
def gitCommitHash = providers.exec {
13+
commandLine("git", "rev-parse", "--verify", "--short", "HEAD")
14+
}.standardOutput.asText.get().trim()
15+
16+
android {
17+
compileSdk 34
18+
19+
defaultConfig {
20+
applicationId "ani.dantotsu"
21+
minSdk 23
22+
targetSdk 34
23+
versionCode ((System.currentTimeMillis() / 60000).toInteger())
24+
versionName "0.0.1"
25+
signingConfig signingConfigs.debug
26+
}
27+
28+
buildTypes {
29+
debug {
30+
//applicationIdSuffix ".beta"
31+
debuggable true
32+
versionNameSuffix "." + gitCommitHash
33+
}
34+
release {
35+
debuggable false
36+
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
37+
}
38+
}
39+
buildFeatures {
40+
viewBinding true
41+
}
42+
compileOptions {
43+
sourceCompatibility JavaVersion.VERSION_17
44+
targetCompatibility JavaVersion.VERSION_17
45+
}
46+
kotlinOptions {
47+
jvmTarget = '17'
48+
freeCompilerArgs = ["-Xcontext-receivers", "-Xmulti-platform"]
49+
}
50+
namespace 'ani.dantotsu'
51+
}
52+
53+
dependencies {
54+
// Core
55+
implementation 'androidx.appcompat:appcompat:1.6.1'
56+
implementation 'androidx.browser:browser:1.6.0'
57+
implementation 'androidx.core:core-ktx:1.12.0'
58+
implementation 'androidx.fragment:fragment-ktx:1.6.1'
59+
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
60+
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
61+
implementation 'androidx.multidex:multidex:2.0.1'
62+
implementation "androidx.work:work-runtime-ktx:2.8.1"
63+
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
64+
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
65+
66+
implementation 'com.github.Blatzar:NiceHttp:0.4.3'
67+
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0'
68+
69+
// Glide
70+
ext.glide_version = '4.16.0'
71+
api "com.github.bumptech.glide:glide:$glide_version"
72+
implementation "com.github.bumptech.glide:glide:$glide_version"
73+
ksp "com.github.bumptech.glide:ksp:$glide_version"
74+
implementation "com.github.bumptech.glide:okhttp3-integration:$glide_version"
75+
implementation 'jp.wasabeef:glide-transformations:4.3.0'
76+
77+
// FireBase
78+
implementation platform('com.google.firebase:firebase-bom:32.2.3')
79+
implementation 'com.google.firebase:firebase-analytics-ktx:21.3.0'
80+
implementation 'com.google.firebase:firebase-crashlytics-ktx:18.4.3'
81+
82+
// Exoplayer
83+
ext.exo_version = '1.1.1'
84+
implementation "androidx.media3:media3-exoplayer:$exo_version"
85+
implementation "androidx.media3:media3-ui:$exo_version"
86+
implementation "androidx.media3:media3-exoplayer-hls:$exo_version"
87+
implementation "androidx.media3:media3-exoplayer-dash:$exo_version"
88+
implementation "androidx.media3:media3-datasource-okhttp:$exo_version"
89+
implementation "androidx.media3:media3-session:$exo_version"
90+
91+
// UI
92+
implementation 'com.google.android.material:material:1.10.0'
93+
implementation 'nl.joery.animatedbottombar:library:1.1.0'
94+
implementation 'io.noties.markwon:core:4.6.2'
95+
implementation 'com.flaviofaria:kenburnsview:1.0.7'
96+
implementation 'com.davemorrissey.labs:subsampling-scale-image-view-androidx:3.10.0'
97+
implementation 'com.alexvasilkov:gesture-views:2.8.3'
98+
implementation 'com.github.VipulOG:ebook-reader:0.1.6'
99+
100+
// Aniyomi
101+
implementation 'io.reactivex:rxjava:1.3.8'
102+
implementation 'io.reactivex:rxandroid:1.2.1'
103+
implementation 'ru.beryukhov:flowreactivenetwork:1.0.4'
104+
implementation 'ca.gosyer:voyager-navigator:1.0.0-rc07'
105+
implementation 'com.squareup.logcat:logcat:0.1'
106+
implementation 'com.github.inorichi.injekt:injekt-core:65b0440'
107+
implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.11'
108+
implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.11'
109+
implementation 'com.squareup.okhttp3:okhttp-dnsoverhttps'
110+
implementation 'com.squareup.okio:okio:3.3.0'
111+
implementation 'ch.acra:acra-http:5.9.7'
112+
implementation 'org.jsoup:jsoup:1.15.4'
113+
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json-okio:1.5.0'
114+
implementation 'com.jakewharton.rxrelay:rxrelay:1.2.0'
115+
implementation 'com.github.tachiyomiorg:unifile:17bec43'
116+
implementation 'com.github.gpanther:java-nat-sort:natural-comparator-1.1'
117+
implementation 'androidx.preference:preference-ktx:1.2.0'
118+
119+
}

app/proguard-rules.pro

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Add project specific ProGuard rules here.
2+
# You can control the set of applied configuration files using the
3+
# proguardFiles setting in build.gradle.kts.
4+
#
5+
# For more details, see
6+
# http://developer.android.com/guide/developing/tools/proguard.html
7+
8+
# If your project uses WebView with JS, uncomment the following
9+
# and specify the fully qualified class name to the JavaScript interface
10+
# class:
11+
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12+
# public *;
13+
#}
14+
15+
# Uncomment this to preserve the line number information for
16+
# debugging stack traces.
17+
#-keepattributes SourceFile,LineNumberTable
18+
19+
# If you keep the line number information, uncomment this to
20+
# hide the original source file name.
21+
#-renamesourcefileattribute SourceFile
22+
23+
# Keep `Companion` object fields of serializable classes.
24+
# This avoids serializer lookup through `getDeclaredClasses` as done for named companion objects.
25+
-if @kotlinx.serialization.Serializable class **
26+
-keepclassmembers class <1> {
27+
static <1>$Companion Companion;
28+
}
29+
30+
# Keep `serializer()` on companion objects (both default and named) of serializable classes.
31+
-if @kotlinx.serialization.Serializable class ** {
32+
static **$* *;
33+
}
34+
-keepclassmembers class <2>$<3> {
35+
kotlinx.serialization.KSerializer serializer(...);
36+
}
37+
38+
# Keep `INSTANCE.serializer()` of serializable objects.
39+
-if @kotlinx.serialization.Serializable class ** {
40+
public static ** INSTANCE;
41+
}
42+
-keepclassmembers class <1> {
43+
public static <1> INSTANCE;
44+
kotlinx.serialization.KSerializer serializer(...);
45+
}
46+
47+
# @Serializable and @Polymorphic are used at runtime for polymorphic serialization.
48+
-keepattributes RuntimeVisibleAnnotations,AnnotationDefault
49+
50+
# Serializer for classes with named companion objects are retrieved using `getDeclaredClasses`.
51+
# If you have any, uncomment and replace classes with those containing named companion objects.
52+
#-keepattributes InnerClasses # Needed for `getDeclaredClasses`.
53+
#-if @kotlinx.serialization.Serializable class
54+
#com.example.myapplication.HasNamedCompanion, # <-- List serializable classes with named companions.
55+
#com.example.myapplication.HasNamedCompanion2
56+
#{
57+
# static **$* *;
58+
#}
59+
#-keepnames class <1>$$serializer { # -keepnames suffices; class is kept when serializer() is kept.
60+
# static <1>$$serializer INSTANCE;
61+
#}

app/src/debug/res/values/strings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<string name="app_name">Dantotsu α</string>
4+
</resources>

0 commit comments

Comments
 (0)