1 Commits

Author SHA1 Message Date
ccd260d451 Fixed download failing due to change in Anna's archive website 2023-09-10 22:50:57 -07:00
5 changed files with 27 additions and 7 deletions

View File

@ -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'>Annas Archive</a>). The App Has Built In Reader to Read Books.</p><p>As <i>Annas Archive</i> doesn't have an API, the app works by sending requests to <i>Annas 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'>Annas Archive</a>). The App Has Built In Reader to Read Books.
</p>
<p>
As <i>Annas Archive</i> doesn't have an API, the app works by sending requests to <i>Annas 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>

View File

@ -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']!);

View File

@ -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);
} }
} }

View File

@ -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,

View File

@ -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'