fix #90: export comic as epub

This commit is contained in:
2024-12-07 20:04:22 +08:00
parent 488299bcfb
commit 617c452e07
5 changed files with 263 additions and 20 deletions

View File

@@ -1,5 +1,3 @@
import 'package:venera/foundation/appdata.dart';
part of 'favorites_page.dart';
/// Open a dialog to create a new favorite folder.

View File

@@ -7,6 +7,7 @@ import 'package:venera/foundation/local.dart';
import 'package:venera/foundation/log.dart';
import 'package:venera/pages/downloading_page.dart';
import 'package:venera/utils/cbz.dart';
import 'package:venera/utils/epub.dart';
import 'package:venera/utils/io.dart';
import 'package:venera/utils/pdf.dart';
import 'package:venera/utils/translations.dart';
@@ -389,6 +390,33 @@ class _LocalComicsPageState extends State<LocalComicsPage> {
File(cache).deleteIgnoreError();
}
},
),
if (!multiSelectMode)
MenuEntry(
icon: Icons.import_contacts_outlined,
text: "Export as epub".tl,
onClick: () async {
var controller = showLoadingDialog(
context,
allowCancel: false,
);
File? file;
try {
file = await createEpubWithLocalComic(
c as LocalComic,
);
await saveFile(
file: file,
filename: "${c.title}.epub",
);
} catch (e, s) {
Log.error("EPUB Export", e, s);
context.showMessage(message: e.toString());
} finally {
controller.close();
file?.deleteIgnoreError();
}
},
)
];
},