mirror of
https://github.com/dstark5/Openlib.git
synced 2025-09-19 13:33:35 +08:00
Compare commits
1 Commits
v1.0.1-bet
...
v1.0.2-bet
Author | SHA1 | Date | |
---|---|---|---|
ccd260d451 |
@ -1 +1,15 @@
|
|||||||
<p><i>Openlib</i> is an open source app to download and read books from shadow library (<a href='https://annas-archive.org/' target='_blank' rel='nofollow noopener'>Anna’s Archive</a>). The App Has Built In Reader to Read Books.</p><p>As <i>Anna’s Archive</i> doesn't have an API, the app works by sending requests to <i>Anna’s Archive</i> and parses the response to objects. The app extracts the mirrors from the responses, downloads the book and stores it in the application's document directory.</p><p>Features include a.o.:</p><ul><li>Trending Books</li><li>Download And Read Books With In-Built Viewer</li><li>Supports Epub And Pdf Formats</li><li>Filter Books</li><li>Sort Books</li></ul>
|
<p>
|
||||||
|
<i>Openlib</i> is an open source app to download and read books from shadow library (<a href='https://annas-archive.org/' target='_blank' rel='nofollow noopener'>Anna’s Archive</a>). The App Has Built In Reader to Read Books.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
As <i>Anna’s Archive</i> doesn't have an API, the app works by sending requests to <i>Anna’s Archive</i> and parses the response to objects. The app extracts the mirrors from the responses, downloads the book and stores it in the application's document directory.
|
||||||
|
</p>
|
||||||
|
<p>Main Features:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Trending Books</li>
|
||||||
|
<li>Download And Read Books With In-Built Viewer</li>
|
||||||
|
<li>Supports Epub And Pdf Formats</li>
|
||||||
|
<li>Open Books With Your Favourite Ebooks Reader</li>
|
||||||
|
<li>Filter Books</li>
|
||||||
|
<li>Sort Books</li>
|
||||||
|
</ul>
|
@ -135,14 +135,19 @@ class AnnasArchieve {
|
|||||||
Future<BookInfoData?> _bookInfoParser(resData, url) async {
|
Future<BookInfoData?> _bookInfoParser(resData, url) async {
|
||||||
var document = parse(resData.toString());
|
var document = parse(resData.toString());
|
||||||
var main = document.querySelector('main[class="main"]');
|
var main = document.querySelector('main[class="main"]');
|
||||||
var ul = main?.querySelector('ul[class="mb-4"]');
|
var ul = main?.querySelectorAll('ul[class="mb-4"]');
|
||||||
|
|
||||||
List<String> mirrors = [];
|
List<String> mirrors = [];
|
||||||
|
|
||||||
if (ul != null) {
|
if (ul != null) {
|
||||||
var a = ul.querySelectorAll('a');
|
var anchorTags = [];
|
||||||
|
if (ul.length == 2) {
|
||||||
|
anchorTags = ul[1].querySelectorAll('a');
|
||||||
|
} else {
|
||||||
|
anchorTags = ul[0].querySelectorAll('a');
|
||||||
|
}
|
||||||
|
|
||||||
for (var element in a) {
|
for (var element in anchorTags) {
|
||||||
if (element.attributes['href']!.startsWith('https://')) {
|
if (element.attributes['href']!.startsWith('https://')) {
|
||||||
if (element.attributes['href'] != null) {
|
if (element.attributes['href'] != null) {
|
||||||
mirrors.add(element.attributes['href']!);
|
mirrors.add(element.attributes['href']!);
|
||||||
|
@ -14,7 +14,8 @@ List<String> _reorderMirrors(List<String> mirrors) {
|
|||||||
if (element.contains('ipfs') == true) {
|
if (element.contains('ipfs') == true) {
|
||||||
ipfsMirrors.add(element);
|
ipfsMirrors.add(element);
|
||||||
} else {
|
} else {
|
||||||
if (element.startsWith('https://annas-archive.gs') != true) {
|
if (element.startsWith('https://annas-archive.gs') != true &&
|
||||||
|
element.startsWith('https://1lib.sk') != true) {
|
||||||
httpsMirrors.add(element);
|
httpsMirrors.add(element);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ class AboutPage extends StatelessWidget {
|
|||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(left: 7, right: 7, top: 5),
|
padding: EdgeInsets.only(left: 7, right: 7, top: 5),
|
||||||
child: Text(
|
child: Text(
|
||||||
"1.0.1",
|
"1.0.2",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 15,
|
fontSize: 15,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
|
@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||||
# In Windows, build-name is used as the major, minor, and patch parts
|
# In Windows, build-name is used as the major, minor, and patch parts
|
||||||
# of the product and file versions while build-number is used as the build suffix.
|
# of the product and file versions while build-number is used as the build suffix.
|
||||||
version: 1.0.1+1
|
version: 1.0.2+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=3.0.5 <4.0.0'
|
sdk: '>=3.0.5 <4.0.0'
|
||||||
|
Reference in New Issue
Block a user