Flutter档案管理插件annas_archive_api的使用

Flutter档案管理插件annas_archive_api的使用

特性

  • 根据搜索请求返回书籍列表。
  • 返回GoodReads收藏中的书籍列表。
  • 返回书籍的下载链接列表。

开始使用

使用方法

final annaApi = AnnaApi();
const searchRequest = SearchRequest(
    query: 'harry potter',
    categories: [Category.fiction],
    formats: [Format.epub, Format.pdf],
    skip:1,
    limit: 10,
    language: Language.french,
    sort: SortOption.smallest,
);

final books = await annaApi.find(searchRequest);
final downloadLinks = await annaApi.getDownloadLinks(books.first.md5);

const collectionRequest = CollectionRequest(
    type: Collection.goodReads,
    url: 'https://www.goodreads.com/list/show/200013._Reece_Reese_',
);
final goodReadsCollection = await annaApi.fetchCollection(collectionRequest);

示例代码

以下是一个完整的示例代码,展示了如何使用annas_archive_api插件来查找和处理书籍信息。

import 'package:annas_archive_api/annas_archive_api.dart';

Future<void> main() async {
  // 从Anna's Archive中查找书籍。
  await AnnaApi()
      .find(const SearchRequest(
    query: 'harry potter',
    author: 'rowling',
    categories: [Category.fiction],
    sources: [AnnaSource.zLibrary, AnnaSource.internetArchive],
    formats: [Format.epub, Format.pdf],
    skip: 1,
    limit: 10,
    language: Language.french,
    sort: SortOption.smallest,
  ))
      .then((response) async {
    for (final Book book in response.books) {
      print(book.title); // 打印每本书的标题
    }

    // 获取书籍的下载链接。
    await AnnaApi()
        .getDownloadLinks(response.books.first.md5)
        .then((downloadLinks) {
      for (final String link in downloadLinks) {
        print(link); // 打印每个下载链接
      }
    });
  });

  // 从Anna's Archive中查找期刊。
  await AnnaApi()
      .findJournal(const SearchJournalRequest(
    query: '',
    skip: 1,
    limit: 10,
    language: Language.french,
    sources: [AnnaSource.libgenLi],
    sort: SortOption.newest,
  ))
      .then((response) {
    for (final Book book in response.books) {
      print(book.title); // 打印每本期刊的标题
    }
  });
}

更多关于Flutter档案管理插件annas_archive_api的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter档案管理插件annas_archive_api的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


annas_archive_api 是一个用于在 Flutter 应用中与 Anna’s Archive 进行交互的插件。Anna’s Archive 是一个开放的图书和文献资源平台,提供了大量的公共领域和受版权保护的资源。通过 annas_archive_api 插件,你可以在 Flutter 应用中搜索、下载和管理这些资源。

1. 安装插件

首先,你需要在 pubspec.yaml 文件中添加 annas_archive_api 依赖:

dependencies:
  flutter:
    sdk: flutter
  annas_archive_api: ^1.0.0  # 请检查最新版本

然后,运行 flutter pub get 来安装依赖。

2. 基本用法

初始化

在使用插件之前,通常需要初始化它。你可以在 main.dart 中初始化:

import 'package:annas_archive_api/annas_archive_api.dart';

void main() {
  AnnasArchiveApi.initialize();
  runApp(MyApp());
}

搜索资源

你可以使用 search 方法来搜索资源。例如,搜索与 “Flutter” 相关的资源:

import 'package:annas_archive_api/annas_archive_api.dart';

Future<void> searchResources() async {
  try {
    List<SearchResult> results = await AnnasArchiveApi.search('Flutter');
    for (var result in results) {
      print('Title: ${result.title}');
      print('Author: ${result.author}');
      print('Year: ${result.year}');
      print('URL: ${result.url}');
      print('-----------------------');
    }
  } catch (e) {
    print('Error: $e');
  }
}

下载资源

你可以使用 download 方法来下载资源。例如,下载一个 PDF 文件:

import 'package:annas_archive_api/annas_archive_api.dart';

Future<void> downloadResource(String url, String savePath) async {
  try {
    await AnnasArchiveApi.download(url, savePath);
    print('Download completed: $savePath');
  } catch (e) {
    print('Error: $e');
  }
}
回到顶部