Faster comic book parsing, probably fixes #77

This commit is contained in:
simon987 2020-07-17 19:10:18 -04:00
parent 22f7073b39
commit e629b4d7d3
8 changed files with 17 additions and 16 deletions

View File

@ -18,7 +18,6 @@ major_mime = {
pdf = ( pdf = (
"application/pdf", "application/pdf",
"application/x-cbz",
"application/epub+zip", "application/epub+zip",
"application/vnd.ms-xpsdocument", "application/vnd.ms-xpsdocument",
) )

View File

@ -5,7 +5,7 @@
#include "tpool.h" #include "tpool.h"
#include "libscan/scan.h" #include "libscan/scan.h"
#include "libscan/arc/arc.h" #include "libscan/arc/arc.h"
#include "libscan/cbr/cbr.h" #include "libscan/comic/comic.h"
#include "libscan/ebook/ebook.h" #include "libscan/ebook/ebook.h"
#include "libscan/font/font.h" #include "libscan/font/font.h"
#include "libscan/media/media.h" #include "libscan/media/media.h"
@ -40,7 +40,7 @@ typedef struct {
int fast; int fast;
scan_arc_ctx_t arc_ctx; scan_arc_ctx_t arc_ctx;
scan_cbr_ctx_t cbr_ctx; scan_comic_ctx_t comic_ctx;
scan_ebook_ctx_t ebook_ctx; scan_ebook_ctx_t ebook_ctx;
scan_font_ctx_t font_ctx; scan_font_ctx_t font_ctx;
scan_media_ctx_t media_ctx; scan_media_ctx_t media_ctx;

View File

@ -21,7 +21,7 @@
#define EPILOG "Made by simon987 <me@simon987.net>. Released under GPL-3.0" #define EPILOG "Made by simon987 <me@simon987.net>. Released under GPL-3.0"
static const char *const Version = "2.6.1"; static const char *const Version = "2.7.0";
static const char *const usage[] = { static const char *const usage[] = {
"sist2 scan [OPTION]... PATH", "sist2 scan [OPTION]... PATH",
"sist2 index [OPTION]... INDEX", "sist2 index [OPTION]... INDEX",
@ -99,11 +99,14 @@ void initialize_scan_context(scan_args_t *args) {
ScanCtx.arc_ctx.logf = _logf; ScanCtx.arc_ctx.logf = _logf;
ScanCtx.arc_ctx.parse = (parse_callback_t) parse; ScanCtx.arc_ctx.parse = (parse_callback_t) parse;
// Cbr // Comic
ScanCtx.cbr_ctx.log = _log; ScanCtx.comic_ctx.log = _log;
ScanCtx.cbr_ctx.logf = _logf; ScanCtx.comic_ctx.logf = _logf;
ScanCtx.cbr_ctx.store = _store; ScanCtx.comic_ctx.store = _store;
ScanCtx.cbr_ctx.cbr_mime = mime_get_mime_by_string(ScanCtx.mime_table, "application/x-cbr"); ScanCtx.comic_ctx.tn_size = args->size;
ScanCtx.comic_ctx.tn_qscale = args->quality;
ScanCtx.comic_ctx.cbr_mime = mime_get_mime_by_string(ScanCtx.mime_table, "application/x-cbr");
ScanCtx.comic_ctx.cbz_mime = mime_get_mime_by_string(ScanCtx.mime_table, "application/x-cbz");
// Ebook // Ebook
pthread_mutex_init(&ScanCtx.ebook_ctx.mupdf_mutex, NULL); pthread_mutex_init(&ScanCtx.ebook_ctx.mupdf_mutex, NULL);

View File

@ -108,7 +108,7 @@ enum mime {
application_x_bzip=655460, application_x_bzip=655460,
application_x_bzip2=655461 | 0x08000000, application_x_bzip2=655461 | 0x08000000,
application_x_cbr=655462, application_x_cbr=655462,
application_x_cbz=655463 | 0x40000000, application_x_cbz=655463,
application_x_cdlink=655464, application_x_cdlink=655464,
application_x_chat=655465, application_x_chat=655465,
application_x_chrome_extension=655466, application_x_chrome_extension=655466,

View File

@ -147,9 +147,8 @@ void parse(void *arg) {
parse_archive(&ScanCtx.arc_ctx, &job->vfile, &doc); parse_archive(&ScanCtx.arc_ctx, &job->vfile, &doc);
} else if (ScanCtx.ooxml_ctx.content_size > 0 && IS_DOC(doc.mime)) { } else if (ScanCtx.ooxml_ctx.content_size > 0 && IS_DOC(doc.mime)) {
parse_ooxml(&ScanCtx.ooxml_ctx, &job->vfile, &doc); parse_ooxml(&ScanCtx.ooxml_ctx, &job->vfile, &doc);
} else if (is_cbr(&ScanCtx.comic_ctx, doc.mime) || is_cbz(&ScanCtx.comic_ctx, doc.mime)) {
} else if (is_cbr(&ScanCtx.cbr_ctx, doc.mime)) { parse_comic(&ScanCtx.comic_ctx, &job->vfile, &doc);
parse_cbr(&ScanCtx.cbr_ctx, &job->vfile, &doc);
} else if (IS_MOBI(doc.mime)) { } else if (IS_MOBI(doc.mime)) {
parse_mobi(&ScanCtx.mobi_ctx, &job->vfile, &doc); parse_mobi(&ScanCtx.mobi_ctx, &job->vfile, &doc);
} }

View File

@ -11,7 +11,7 @@
<nav class="navbar navbar-expand-lg"> <nav class="navbar navbar-expand-lg">
<a class="navbar-brand" href="/">sist2</a> <a class="navbar-brand" href="/">sist2</a>
<span class="badge badge-pill version">2.6.1</span> <span class="badge badge-pill version">2.7.0</span>
<span class="tagline">Lightning-fast file system indexer and search tool </span> <span class="tagline">Lightning-fast file system indexer and search tool </span>
<a class="btn ml-auto" href="/stats">Stats</a> <a class="btn ml-auto" href="/stats">Stats</a>
<button class="btn" type="button" data-toggle="modal" data-target="#settings" onclick="loadSettings()">Settings <button class="btn" type="button" data-toggle="modal" data-target="#settings" onclick="loadSettings()">Settings

View File

@ -10,7 +10,7 @@
<nav class="navbar navbar-expand-lg"> <nav class="navbar navbar-expand-lg">
<a class="navbar-brand" href="/">sist2</a> <a class="navbar-brand" href="/">sist2</a>
<span class="badge badge-pill version">2.6.1</span> <span class="badge badge-pill version">2.7.0</span>
<span class="tagline">Lightning-fast file system indexer and search tool </span> <span class="tagline">Lightning-fast file system indexer and search tool </span>
<a style="margin-left: auto" class="btn" href="/">Back</a> <a style="margin-left: auto" class="btn" href="/">Back</a>
<button class="btn" type="button" data-toggle="modal" data-target="#settings" <button class="btn" type="button" data-toggle="modal" data-target="#settings"

2
third-party/libscan vendored

@ -1 +1 @@
Subproject commit 7c1a8323602703f549c4f1183dd3f8486a083c2f Subproject commit 982a2d3f868ab1ac37277ff4251e7703755ee56e