nanihadesuka / noveldokusha Goto Github PK
View Code? Open in Web Editor NEWAndroid web novel reader
License: GNU General Public License v3.0
Android web novel reader
License: GNU General Public License v3.0
Hy,
I am trying to add this source https://webnovellight.com/
how can i do that,
its showing error on chapter list part.
Favorite your source and it appears in the bottom menu between library and finder
with the exception
You can favorite only one source
Firstly I'd like to thank your effort on this app, it's very well done for what seems to be a two person effort.
I understand this is a large request that will probably need a lot of refinement, but in future I'd like a feature where you could have a text to speech reader read out the novel while highlighting what line it is currently on, I am new to reading novels on a phone so this could be of use. Some other features that could accompany this could be the ability to change the tone voice if the novel has dialogue (indicated by a set of "") and the ability to change the reading pace or set it to change lines as one scrolls (instead of scrolling on its own).
If needed I could expand on this, but I just wanted to make this "issue" as more of a feature suggestion for when the app is more mature.
https://reaperscans.com.br / https://saikaiscan.com.br / https://neoxscans.net / https://arthurscan.xyz / https://silencescan.com.br
Some Brazilian sources that I can remember
I think it will be interesting if it is added with the download all chapters feature. so it can be read offline at leisure, without requiring an internet connection.
Can you add where user can login to read locked chapter.
like webnovellight i locked a chapter and user A has access to that chapter, when he signin we store that cookie and when he visit that chapter because we have the cookie he can read the chapter.
when i am trying to add source https://www.mtlnovel.com/ , it's showing 404 or something. need vpn or something.
like this https://github.com/kazemcodes/tachiyomi-extensions-1.x/blob/master/sources/en/mtlnovelcom/main/src/MtlNovel.kt
Okay so I don't which is last read sign ⬇️ or
I can show you videoshot if you want
If possible, please add this source to the app. Thank You!
Description: Korean Novels and Webnovels Machine Translation.
Language: English
Link: https://www.koreanmtl.online/?m=1
It's been quite for month or so.
The APK at release 1.2.0 identifies with versionName: "1.0"
(which should be "1.2.0") and versionCode: 1
(which, as this is the 3rd release, should be 3 or higher). Can you please fix that? versionCode
is used by Android to tell versions apart, so 1.2.0 would not be considered an update to any of the previous versions. And versionName
certainly helps when users report issues 😉
While on it: Maybe you could include some screenshots with the Readme?
I think it will be really nice to have this app on Weblate. It can able the community to translate the app and help it to be bigger and better.
I think this Weblate Documentation can help you to implemwnt this on the project.
Thank you very much for this amazing project!
I was wondering if it would be possible to decide between endless scroll and a page setup for reading.
I've gotten far too use to reading and clicking on volume buttons at this point
so I am getting this error after changing the package name.
e: C:\Users\adnan\AndroidStudioProjects\webnovels\app\src\main\java\my\webnovel\uiViews\ErrorView.kt: (47, 49): Unresolved reference: string
e: C:\Users\adnan\AndroidStudioProjects\webnovels\app\src\main\java\my\webnovel\uiViews\ErrorView.kt: (62, 49): Unresolved reference: string
e: C:\Users\adnan\AndroidStudioProjects\webnovels\app\src\main\java\my\webnovel\ui\chaptersList\ChaptersViewModel.kt: (156, 37): Unresolved reference: R
e: C:\Users\adnan\AndroidStudioProjects\webnovels\app\src\main\java\my\webnovel\ui\chaptersList\ChaptersViewModel.kt: (174, 49): Unresolved reference: R
e: C:\Users\adnan\AndroidStudioProjects\webnovels\app\src\main\java\my\webnovel\ui\databaseSearch\DatabaseSearchActivity.kt: (42, 53): Unresolved reference: colorAttrRes
e: C:\Users\adnan\AndroidStudioProjects\webnovels\app\src\main\java\my\webnovel\ui\main\LibraryPageFragment.kt: (67, 27): Unresolved reference: updatePadding
e: C:\Users\adnan\AndroidStudioProjects\webnovels\app\src\main\java\my\webnovel\ui\main\MainActivity.kt: (24, 33): Unresolved reference: setupWithNavController
e: C:\Users\adnan\AndroidStudioProjects\webnovels\app\src\main\java\my\webnovel\ui\reader\ReaderActivity.kt: (53, 31): Unresolved reference: fadeIn
e: C:\Users\adnan\AndroidStudioProjects\webnovels\app\src\main\java\my\webnovel\ui\reader\ReaderActivity.kt: (181, 35): Unresolved reference: attr
e: C:\Users\adnan\AndroidStudioProjects\webnovels\app\src\main\java\my\webnovel\ui\reader\ReaderActivity.kt: (217, 42): Unresolved reference: string
e: C:\Users\adnan\AndroidStudioProjects\webnovels\app\src\main\java\my\webnovel\ui\reader\ReaderActivity.kt: (249, 27): Unresolved reference: doOnNextLayout
e: C:\Users\adnan\AndroidStudioProjects\webnovels\app\src\main\java\my\webnovel\ui\reader\ReaderItemAdapter.kt: (84, 20): Unresolved reference: updateLayoutParams
e: C:\Users\adnan\AndroidStudioProjects\webnovels\app\src\main\java\my\webnovel\ui\reader\ReaderItemAdapter.kt: (85, 13): Unresolved reference: dimensionRatio
e: C:\Users\adnan\AndroidStudioProjects\webnovels\app\src\main\java\my\webnovel\ui\reader\ReaderItemAdapter.kt: (93, 29): Unresolved reference: doOnNextLayout
> Task :app:compileDebugKotlin FAILED
How can I change the package name because sometimes I test this on my mobile and it destroy my old data.
So I wanna change the package name so it can't conflict with my main app which I use for personal reading.
Add tags system when can be shown below description and using the same code can be added author alt title and more.
No idea if this was intentional, but the APK size jumped from about 4M to over 50M with v1.7.0. Further, the app is no longer FOSS as a couple of non-free components have been added:
Offending libs:
---------------
* Firebase Data Transport (/com/google/android/datatransport): NonFreeNet
* Google Mobile Services (/com/google/android/gms): NonFreeDep
* Firebase (/com/google/firebase): NonFreeNet,NonFreeDep
* ML Kit (/com/google/mlkit): NonFreeDep,Tracking
4 offenders.
My guess is you added Google's ML Kit, which dragged in the other dependencies.
If this was intentional: Will you offer a FOSS flavor (and APK) without those? If it was not intended: Will you revert that? Thanks in advance!
Preload the next chapter when reading current.
Do you have discord server?
Source: https://1stkissnovel.love/novel/
This source has many translated novel
So I left the chapters (in middle) and left app when I reopen it's in top/start of app, it doesn't remember where I left the app.
can you add mtlnovels, mtlnovel.com its the only mtl site with large amount of mtl novels.
I tired but got error , you have been blocked You are unable to access mtlnovel.com
Edited:- lol 😂
Edited 2:- WebView cookie bypass doesn't work.
Request source https://toc.qidianunderground.org
Reasons:- it doesn't have copyright text from pirate sites like read at wuxiaworld etc and is updated chapters.
Can you make Translation work for whole source sources instead of chapters.
Is it possible to change the font settings to a double tap instead of hold to permit for selectable text?
A lot of webnovels have links to images for explanations, and selecting text allows users to use Android's build-in Google Assistant search for words we aren't sure of. (I'll be damned if I ever remember all the names of the Chinese beasts and weapons)
Expected Behaviour 1:
Holding onto a word with finger in the reader selects text.
Current Behaviour 1:
Holding onto a word with finger in the reader shows font settings
Expected Behaviour 2:
Double-tapping screen shows font settings
Current Behaviour 2:
Double-tapping screen does not do anything.
Thank you very much for all you do.
There is extension Leaks how to disable it?
Here is code for fasting the process
`package grabber.sources;
import grabber.Chapter;
import grabber.GrabberUtils;
import grabber.Novel;
import grabber.NovelMetadata;
import org.jsoup.HttpStatusException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class readwn_com implements Source {
private final String name = "Readwn.com";
private final String url = "https://www.readwn.com/";
private final boolean canHeadless = false;
private Novel novel;
private Document toc;
public readwn_com() {
}
public readwn_com(Novel novel) {
this.novel = novel;
}
public String getName() {
return name;
}
public boolean canHeadless() {
return canHeadless;
}
public String toString() {
return name;
}
public String getUrl() {
return url;
}
public List<Chapter> getChapterList() {
List<Chapter> chapterList = new ArrayList();
try {
toc = Jsoup.connect(novel.novelLink)
.cookies(novel.cookies)
.userAgent("Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0")
.get();
// Travers pagination
Document chapterListPage = toc;
while (true) {
// Add chapters from current page
Elements chapterLinks = chapterListPage.select(".chapter-list a");
for (Element chapterLink : chapterLinks) {
chapterList.add(new Chapter(chapterLink.selectFirst("strong").text(), chapterLink.attr("abs:href")));
}
// Go to next page
Element nextPageLink = chapterListPage.selectFirst(".pagination li:contains(>) a");
// Is last page
if (nextPageLink == null) break;
chapterListPage = Jsoup.connect(nextPageLink.attr("abs:href"))
.cookies(novel.cookies)
.userAgent("Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0")
.get();
}
} catch (HttpStatusException httpEr) {
GrabberUtils.err(novel.window, GrabberUtils.getHTMLErrMsg(httpEr));
} catch (IOException e) {
GrabberUtils.err(novel.window, "Could not connect to webpage!", e);
} catch (NullPointerException e) {
GrabberUtils.err(novel.window, "Could not find expected selectors. Correct novel link?", e);
}
return chapterList;
}
public Element getChapterContent(Chapter chapter) {
Element chapterBody = null;
try {
Document doc = Jsoup.connect(chapter.chapterURL)
.cookies(novel.cookies)
.userAgent("Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0")
.get();
chapterBody = doc.selectFirst(".chapter-content");
} catch (HttpStatusException httpEr) {
GrabberUtils.err(novel.window, GrabberUtils.getHTMLErrMsg(httpEr));
} catch (IOException e) {
GrabberUtils.err(novel.window, "Could not connect to webpage!", e);
}
return chapterBody;
}
public NovelMetadata getMetadata() {
NovelMetadata metadata = new NovelMetadata();
if (toc != null) {
Element title = toc.selectFirst(".novel-title");
Element author = toc.selectFirst(".author span[itemprop=author]");
Element desc = toc.selectFirst(".summary div");
Element cover = toc.selectFirst(".lazy");
metadata.setTitle(title != null ? title.text() : "");
metadata.setAuthor(author != null ? author.text() : "");
metadata.setDescription(desc != null ? desc.text() : "");
metadata.setBufferedCover(cover != null ? cover.attr("abs:data-src") : "");
Elements tags = toc.select(".categories a");
List<String> subjects = new ArrayList<>();
for (Element tag : tags) {
subjects.add(tag.text());
}
metadata.setSubjects(subjects);
}
return metadata;
}
public List<String> getBlacklistedTags() {
List blacklistedTags = new ArrayList();
return blacklistedTags;
}
}`
Can you add something to bypass the cloudflare?
lightnovelworld.com is most comprehensive and fastest updating website. It would be nice to have it as source.
Scrolling through chapter is laging
https://user-images.githubusercontent.com/96086329/168474302-54df4758-b863-4a72-bab8-fef54b02978a.mp4
getting error when trying to run the app in android studio emulator .
Full error
https://pastebin.com/haKkXJjJ
Please Add feature reading mode html
Some novel including embed image
Btw i love your app
Thx for made this app
You are amazing
Can you make a paragraph comment system and store data in firebase.
Like when person hold the paragraph a comment system shows up and a person can comment and reads other people comments!
And all the data can be store in firebase.
PS:- If you decide to make it make it easily so when I run this on Android studio, I can also test it.
Thanks.
Requesting source Mtlnovels the only source with mtlnovels
I believe adding a feature to use custom font files ( say ttf ) instead of using only the default ones available would be a great addition to the app.
A few simple ideas include:
Manually place required ttf in a specific folder , for example say
/storage/emulated/0/fonts
and read from there
Automatically by using a web view to open Google and then detect ttf downloads and use the downloaded ttf ( like in Moon reader )
P.S. : Absolutely love the app ❤️
It would be awesome if you added an option to translate the novels using a service like google translate or something similar.
so I am getting a weird error same novel name:- 'back when I was....' is looping I thought it was because of cache so I deleted the app and clear the cache but getting the same error. I even try to change the catalog URL but still the same issue and same name
package my.noveldokusha.scraper.sources
import my.noveldokusha.data.BookMetadata
import my.noveldokusha.data.ChapterMetadata
import my.noveldokusha.scraper.*
import org.jsoup.nodes.Document
class NovelHall : SourceInterface.catalog
{
override val name = "NovelHall"
override val baseUrl = "https://www.novelhall.com"
override val catalogUrl = "https://www.novelhall.com/all-1.html"
override val language = "English"
override suspend fun getChapterTitle(doc: Document): String? = null
override suspend fun getChapterText(doc: Document): String
{
return doc.selectFirst("div#htmlContent")!!.let { textExtractor.get(it) }
}
override suspend fun getBookCoverImageUrl(doc: Document): String?
{
return doc.selectFirst(".book-img.hidden-xs")
?.selectFirst("img[src]")
?.attr("src")
}
override suspend fun getBookDescripton(doc: Document): String?
{
return doc.selectFirst("span.js-close-wrap")
?.let {
textExtractor.get(it)
}
}
override suspend fun getChapterList(doc: Document): List<ChapterMetadata>
{
return doc.select("#morelist a").select("a[href]").map {
ChapterMetadata(title = it.text(), url = it.attr("href"))
}
}
override suspend fun getCatalogList(index: Int): Response<List<BookMetadata>>
{
val page = index + 1
if (page > 1)
return Response.Success(listOf())
return tryConnect {
fetchDoc(catalogUrl)
.select("tbody tr td ul > .btm a[href]")
.map { BookMetadata(title = it.text(), url = baseUrl + it.attr("href")) }
.let { Response.Success(it) }
}
}
override suspend fun getCatalogSearch(index: Int, input: String): Response<List<BookMetadata>>
{
if (input.isBlank() || index > 0)
return Response.Success(listOf())
val url = baseUrl.toUrlBuilderSafe().apply {
add("search", input)
}
return tryConnect {
fetchDoc(url)
.selectFirst("#table")!!
.children()
.first()!!
.children()
.mapNotNull {
val link = it.selectFirst(".xxxx > a[href]") ?: return@mapNotNull null
val bookCover = it.selectFirst("img[src]")?.attr("src") ?: ""
BookMetadata(
title = link.text(),
url = link.attr("href"),
coverImageUrl = bookCover
)
}
.let { Response.Success(it) }
}
}
}
Make image smaller in library.
Or how to control image size.
Show Content (chapter list) page on chapters page..
Show images when we click any source, as images/novel are shown in library.
App crashing in global search.
Books in library (4)
Searching for book(this game)
I would like to ask for media controls with which you can play and pause the tts when the screen is off with head and earphones and if possible also skip and previous functions.
I can't seem to find the label button, sorry for that.
But I would say this would fit in the [Enhacement] / [Feauture Request] label
Sería genial si tuvieran mas repositorios para buscar novelas, como los que estan en lnreader o tener la opcion desde la app de agregar repositorios nuevos.
App always crash when using global search or search for sources
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.