mobi support #41, fix logs

This commit is contained in:
simon987 2020-04-20 19:59:10 -04:00
parent d1e088e662
commit ea50b13b02
9 changed files with 458 additions and 404 deletions

View File

@ -175,6 +175,7 @@ application/x-mif, mif
application/x-mix-transfer, nix application/x-mix-transfer, nix
application/xml, opf application/xml, opf
application/x-mobipocket-ebook, mobi application/x-mobipocket-ebook, mobi
application/vnd.amazon.mobi8-ebook, azw|azw3
application/x-msaccess, accdb application/x-msaccess, accdb
application/x-ms-compress-szdd, fon application/x-ms-compress-szdd, fon
application/x-ms-pdb, pdb application/x-ms-pdb, pdb

1 application/arj arj
175 application/x-mix-transfer nix
176 application/xml opf
177 application/x-mobipocket-ebook mobi
178 application/vnd.amazon.mobi8-ebook azw|azw3
179 application/x-msaccess accdb
180 application/x-ms-compress-szdd fon
181 application/x-ms-pdb pdb

View File

@ -62,6 +62,11 @@ doc = (
"application/vnd.openxmlformats-officedocument.presentationml.presentation" "application/vnd.openxmlformats-officedocument.presentationml.presentation"
) )
mobi = (
"application/x-mobipocket-ebook",
"application/vnd.amazon.mobi8-ebook"
)
cnt = 1 cnt = 1
@ -82,6 +87,8 @@ def mime_id(mime):
mime_id += " | 0x08000000" mime_id += " | 0x08000000"
elif mime in doc: elif mime in doc:
mime_id += " | 0x04000000" mime_id += " | 0x04000000"
elif mime in mobi:
mime_id += " | 0x02000000"
elif mime == "application/x-empty": elif mime == "application/x-empty":
return "1" return "1"
return mime_id return mime_id

View File

@ -11,6 +11,7 @@
#include "libscan/media/media.h" #include "libscan/media/media.h"
#include "libscan/ooxml/ooxml.h" #include "libscan/ooxml/ooxml.h"
#include "libscan/text/text.h" #include "libscan/text/text.h"
#include "libscan/mobi/scan_mobi.h"
#include <glib.h> #include <glib.h>
#include <pcre.h> #include <pcre.h>
@ -46,6 +47,7 @@ struct {
scan_media_ctx_t media_ctx; scan_media_ctx_t media_ctx;
scan_ooxml_ctx_t ooxml_ctx; scan_ooxml_ctx_t ooxml_ctx;
scan_text_ctx_t text_ctx; scan_text_ctx_t text_ctx;
scan_mobi_ctx_t mobi_ctx;
} ScanCtx; } ScanCtx;
struct { struct {

View File

@ -49,17 +49,56 @@ void _store(char *key, size_t key_len, char *buf, size_t buf_len) {
store_write(ScanCtx.index.store, key, key_len, buf, buf_len); store_write(ScanCtx.index.store, key, key_len, buf, buf_len);
} }
void _log(const char *filepath, int level, char *str) {
if (level == LEVEL_FATAL) {
sist_log(filepath, level, str);
exit(-1);
}
if (ScanCtx.verbose) {
if (level == LEVEL_DEBUG) {
if (ScanCtx.very_verbose) {
sist_log(filepath, level, str);
}
} else {
sist_log(filepath, level, str);
}
}
}
void _logf(const char *filepath, int level, char *format, ...) {
va_list args;
va_start(args, format);
if (level == LEVEL_FATAL) {
sist_logf(filepath, level, format, args);
exit(-1);
}
if (ScanCtx.verbose) {
if (level == LEVEL_DEBUG) {
if (ScanCtx.very_verbose) {
sist_logf(filepath, level, format, args);
}
} else {
sist_logf(filepath, level, format, args);
}
}
va_end(args);
}
void initialize_scan_context(scan_args_t *args) { void initialize_scan_context(scan_args_t *args) {
// Arc // Arc
ScanCtx.arc_ctx.mode = args->archive_mode; ScanCtx.arc_ctx.mode = args->archive_mode;
ScanCtx.arc_ctx.log = sist_log; ScanCtx.arc_ctx.log = _log;
ScanCtx.arc_ctx.logf = sist_logf; ScanCtx.arc_ctx.logf = _logf;
ScanCtx.arc_ctx.parse = (parse_callback_t) parse; ScanCtx.arc_ctx.parse = (parse_callback_t) parse;
// Cbr // Cbr
ScanCtx.cbr_ctx.log = sist_log; ScanCtx.cbr_ctx.log = _log;
ScanCtx.cbr_ctx.logf = sist_logf; ScanCtx.cbr_ctx.logf = _logf;
ScanCtx.cbr_ctx.store = _store; ScanCtx.cbr_ctx.store = _store;
ScanCtx.cbr_ctx.cbr_mime = mime_get_mime_by_string(ScanCtx.mime_table, "application/x-cbr"); ScanCtx.cbr_ctx.cbr_mime = mime_get_mime_by_string(ScanCtx.mime_table, "application/x-cbr");
@ -69,28 +108,33 @@ void initialize_scan_context(scan_args_t *args) {
ScanCtx.ebook_ctx.tn_size = args->size; ScanCtx.ebook_ctx.tn_size = args->size;
ScanCtx.ebook_ctx.tesseract_lang = args->tesseract_lang; ScanCtx.ebook_ctx.tesseract_lang = args->tesseract_lang;
ScanCtx.ebook_ctx.tesseract_path = args->tesseract_path; ScanCtx.ebook_ctx.tesseract_path = args->tesseract_path;
ScanCtx.ebook_ctx.log = sist_log; ScanCtx.ebook_ctx.log = _log;
ScanCtx.ebook_ctx.logf = sist_logf; ScanCtx.ebook_ctx.logf = _logf;
ScanCtx.ebook_ctx.store = _store; ScanCtx.ebook_ctx.store = _store;
// Font // Font
ScanCtx.font_ctx.enable_tn = args->size > 0; ScanCtx.font_ctx.enable_tn = args->size > 0;
ScanCtx.font_ctx.log = sist_log; ScanCtx.font_ctx.log = _log;
ScanCtx.font_ctx.logf = sist_logf; ScanCtx.font_ctx.logf = _logf;
ScanCtx.font_ctx.store = _store; ScanCtx.font_ctx.store = _store;
// Media // Media
ScanCtx.media_ctx.tn_qscale = args->quality; ScanCtx.media_ctx.tn_qscale = args->quality;
ScanCtx.media_ctx.tn_size = args->size; ScanCtx.media_ctx.tn_size = args->size;
ScanCtx.media_ctx.log = sist_log; ScanCtx.media_ctx.log = _log;
ScanCtx.media_ctx.logf = sist_logf; ScanCtx.media_ctx.logf = _logf;
ScanCtx.media_ctx.store = _store; ScanCtx.media_ctx.store = _store;
init_media(); init_media();
// OOXML // OOXML
ScanCtx.ooxml_ctx.content_size = args->content_size; ScanCtx.ooxml_ctx.content_size = args->content_size;
ScanCtx.ooxml_ctx.log = sist_log; ScanCtx.ooxml_ctx.log = _log;
ScanCtx.ooxml_ctx.logf = sist_logf; ScanCtx.ooxml_ctx.logf = _logf;
// MOBI
ScanCtx.mobi_ctx.content_size = args->content_size;
ScanCtx.mobi_ctx.log = _log;
ScanCtx.mobi_ctx.logf = _logf;
ScanCtx.threads = args->threads; ScanCtx.threads = args->threads;
ScanCtx.depth = args->depth; ScanCtx.depth = args->depth;

View File

@ -25,6 +25,9 @@
#define DOC_MASK 0x04000000 #define DOC_MASK 0x04000000
#define IS_DOC(mime_id) (mime_id & DOC_MASK) == DOC_MASK #define IS_DOC(mime_id) (mime_id & DOC_MASK) == DOC_MASK
#define MOBI_MASK 0x02000000
#define IS_MOBI(mime_id) (mime_id & MOBI_MASK) == MOBI_MASK
enum major_mime { enum major_mime {
MimeInvalid = 0, MimeInvalid = 0,
MimeModel = 1, MimeModel = 1,

View File

@ -53,386 +53,387 @@ enum mime {
application_step=655405, application_step=655405,
application_streamingmedia=655406, application_streamingmedia=655406,
application_vda=655407, application_vda=655407,
application_vnd_fdf=655408, application_vnd_amazon_mobi8_ebook=655408 | 0x02000000,
application_vnd_font_fontforge_sfd=655409, application_vnd_fdf=655409,
application_vnd_hp_hpgl=655410, application_vnd_font_fontforge_sfd=655410,
application_vnd_iccprofile=655411, application_vnd_hp_hpgl=655411,
application_vnd_lotus_1_2_3=655412, application_vnd_iccprofile=655412,
application_vnd_ms_cab_compressed=655413, application_vnd_lotus_1_2_3=655413,
application_vnd_ms_excel=655414, application_vnd_ms_cab_compressed=655414,
application_vnd_ms_fontobject=655415, application_vnd_ms_excel=655415,
application_vnd_ms_opentype=655416 | 0x20000000, application_vnd_ms_fontobject=655416,
application_vnd_ms_pki_certstore=655417, application_vnd_ms_opentype=655417 | 0x20000000,
application_vnd_ms_pki_pko=655418, application_vnd_ms_pki_certstore=655418,
application_vnd_ms_pki_seccat=655419, application_vnd_ms_pki_pko=655419,
application_vnd_ms_powerpoint=655420, application_vnd_ms_pki_seccat=655420,
application_vnd_ms_project=655421, application_vnd_ms_powerpoint=655421,
application_vnd_oasis_opendocument_base=655422, application_vnd_ms_project=655422,
application_vnd_oasis_opendocument_formula=655423, application_vnd_oasis_opendocument_base=655423,
application_vnd_oasis_opendocument_graphics=655424, application_vnd_oasis_opendocument_formula=655424,
application_vnd_oasis_opendocument_presentation=655425, application_vnd_oasis_opendocument_graphics=655425,
application_vnd_oasis_opendocument_spreadsheet=655426, application_vnd_oasis_opendocument_presentation=655426,
application_vnd_oasis_opendocument_text=655427, application_vnd_oasis_opendocument_spreadsheet=655427,
application_vnd_openxmlformats_officedocument_presentationml_presentation=655428 | 0x04000000, application_vnd_oasis_opendocument_text=655428,
application_vnd_openxmlformats_officedocument_spreadsheetml_sheet=655429 | 0x04000000, application_vnd_openxmlformats_officedocument_presentationml_presentation=655429 | 0x04000000,
application_vnd_openxmlformats_officedocument_wordprocessingml_document=655430 | 0x04000000, application_vnd_openxmlformats_officedocument_spreadsheetml_sheet=655430 | 0x04000000,
application_vnd_symbian_install=655431, application_vnd_openxmlformats_officedocument_wordprocessingml_document=655431 | 0x04000000,
application_vnd_tcpdump_pcap=655432, application_vnd_symbian_install=655432,
application_vnd_wap_wmlc=655433, application_vnd_tcpdump_pcap=655433,
application_vnd_wap_wmlscriptc=655434, application_vnd_wap_wmlc=655434,
application_vnd_xara=655435, application_vnd_wap_wmlscriptc=655435,
application_vocaltec_media_desc=655436, application_vnd_xara=655436,
application_vocaltec_media_file=655437, application_vocaltec_media_desc=655437,
application_warc=655438, application_vocaltec_media_file=655438,
application_winhelp=655439, application_warc=655439,
application_wordperfect=655440, application_winhelp=655440,
application_wordperfect6_0=655441, application_wordperfect=655441,
application_wordperfect6_1=655442, application_wordperfect6_0=655442,
application_x_123=655443, application_wordperfect6_1=655443,
application_x_7z_compressed=655444 | 0x10000000, application_x_123=655444,
application_x_aim=655445, application_x_7z_compressed=655445 | 0x10000000,
application_x_apple_diskimage=655446, application_x_aim=655446,
application_x_arc=655447 | 0x10000000, application_x_apple_diskimage=655447,
application_x_archive=655448, application_x_arc=655448 | 0x10000000,
application_x_atari_7800_rom=655449, application_x_archive=655449,
application_x_authorware_bin=655450, application_x_atari_7800_rom=655450,
application_x_authorware_map=655451, application_x_authorware_bin=655451,
application_x_authorware_seg=655452, application_x_authorware_map=655452,
application_x_avira_qua=655453, application_x_authorware_seg=655453,
application_x_bcpio=655454, application_x_avira_qua=655454,
application_x_bittorrent=655455, application_x_bcpio=655455,
application_x_bsh=655456, application_x_bittorrent=655456,
application_x_bytecode_python=655457, application_x_bsh=655457,
application_x_bzip=655458, application_x_bytecode_python=655458,
application_x_bzip2=655459 | 0x08000000, application_x_bzip=655459,
application_x_cbr=655460, application_x_bzip2=655460 | 0x08000000,
application_x_cbz=655461 | 0x40000000, application_x_cbr=655461,
application_x_cdlink=655462, application_x_cbz=655462 | 0x40000000,
application_x_chat=655463, application_x_cdlink=655463,
application_x_chrome_extension=655464, application_x_chat=655464,
application_x_cocoa=655465, application_x_chrome_extension=655465,
application_x_conference=655466, application_x_cocoa=655466,
application_x_coredump=655467, application_x_conference=655467,
application_x_cpio=655468, application_x_coredump=655468,
application_x_dbf=655469, application_x_cpio=655469,
application_x_dbt=655470, application_x_dbf=655470,
application_x_debian_package=655471, application_x_dbt=655471,
application_x_deepv=655472, application_x_debian_package=655472,
application_x_director=655473, application_x_deepv=655473,
application_x_dmp=655474, application_x_director=655474,
application_x_dosdriver=655475, application_x_dmp=655475,
application_x_dosexec=655476, application_x_dosdriver=655476,
application_x_dvi=655477, application_x_dosexec=655477,
application_x_elc=655478, application_x_dvi=655478,
application_x_elc=655479,
application_x_empty=1, application_x_empty=1,
application_x_envoy=655480, application_x_envoy=655481,
application_x_esrehber=655481, application_x_esrehber=655482,
application_x_excel=655482, application_x_excel=655483,
application_x_executable=655483, application_x_executable=655484,
application_x_font_gdos=655484, application_x_font_gdos=655485,
application_x_font_pf2=655485, application_x_font_pf2=655486,
application_x_font_pfm=655486, application_x_font_pfm=655487,
application_x_font_sfn=655487, application_x_font_sfn=655488,
application_x_font_ttf=655488 | 0x20000000, application_x_font_ttf=655489 | 0x20000000,
application_x_fptapplication_x_dbt=655489, application_x_fptapplication_x_dbt=655490,
application_x_freelance=655490, application_x_freelance=655491,
application_x_gamecube_rom=655491, application_x_gamecube_rom=655492,
application_x_gdbm=655492, application_x_gdbm=655493,
application_x_gettext_translation=655493, application_x_gettext_translation=655494,
application_x_git=655494, application_x_git=655495,
application_x_gsp=655495, application_x_gsp=655496,
application_x_gss=655496, application_x_gss=655497,
application_x_gtar=655497, application_x_gtar=655498,
application_x_gzip=655498, application_x_gzip=655499,
application_x_hdf=655499, application_x_hdf=655500,
application_x_helpfile=655500, application_x_helpfile=655501,
application_x_httpd_imap=655501, application_x_httpd_imap=655502,
application_x_ima=655502, application_x_ima=655503,
application_x_innosetup=655503, application_x_innosetup=655504,
application_x_internett_signup=655504, application_x_internett_signup=655505,
application_x_inventor=655505, application_x_inventor=655506,
application_x_ip2=655506, application_x_ip2=655507,
application_x_java_applet=655507, application_x_java_applet=655508,
application_x_java_commerce=655508, application_x_java_commerce=655509,
application_x_java_image=655509, application_x_java_image=655510,
application_x_java_jmod=655510, application_x_java_jmod=655511,
application_x_java_keystore=655511, application_x_java_keystore=655512,
application_x_kdelnk=655512, application_x_kdelnk=655513,
application_x_koan=655513, application_x_koan=655514,
application_x_latex=655514, application_x_latex=655515,
application_x_livescreen=655515, application_x_livescreen=655516,
application_x_lotus=655516, application_x_lotus=655517,
application_x_lz4=655517 | 0x08000000, application_x_lz4=655518 | 0x08000000,
application_x_lz4_json=655518, application_x_lz4_json=655519,
application_x_lzh=655519, application_x_lzh=655520,
application_x_lzh_compressed=655520, application_x_lzh_compressed=655521,
application_x_lzip=655521 | 0x08000000, application_x_lzip=655522 | 0x08000000,
application_x_lzma=655522 | 0x08000000, application_x_lzma=655523 | 0x08000000,
application_x_lzop=655523 | 0x08000000, application_x_lzop=655524 | 0x08000000,
application_x_lzx=655524, application_x_lzx=655525,
application_x_mach_binary=655525, application_x_mach_binary=655526,
application_x_mach_executable=655526, application_x_mach_executable=655527,
application_x_magic_cap_package_1_0=655527, application_x_magic_cap_package_1_0=655528,
application_x_mathcad=655528, application_x_mathcad=655529,
application_x_maxis_dbpf=655529, application_x_maxis_dbpf=655530,
application_x_meme=655530, application_x_meme=655531,
application_x_midi=655531, application_x_midi=655532,
application_x_mif=655532, application_x_mif=655533,
application_x_mix_transfer=655533, application_x_mix_transfer=655534,
application_x_mobipocket_ebook=655534, application_x_mobipocket_ebook=655535 | 0x02000000,
application_x_ms_compress_szdd=655535, application_x_ms_compress_szdd=655536,
application_x_ms_pdb=655536, application_x_ms_pdb=655537,
application_x_ms_reader=655537, application_x_ms_reader=655538,
application_x_msaccess=655538, application_x_msaccess=655539,
application_x_n64_rom=655539, application_x_n64_rom=655540,
application_x_navi_animation=655540, application_x_navi_animation=655541,
application_x_navidoc=655541, application_x_navidoc=655542,
application_x_navimap=655542, application_x_navimap=655543,
application_x_navistyle=655543, application_x_navistyle=655544,
application_x_nes_rom=655544, application_x_nes_rom=655545,
application_x_netcdf=655545, application_x_netcdf=655546,
application_x_newton_compatible_pkg=655546, application_x_newton_compatible_pkg=655547,
application_x_nintendo_ds_rom=655547, application_x_nintendo_ds_rom=655548,
application_x_object=655548, application_x_object=655549,
application_x_omc=655549, application_x_omc=655550,
application_x_omcdatamaker=655550, application_x_omcdatamaker=655551,
application_x_omcregerator=655551, application_x_omcregerator=655552,
application_x_pagemaker=655552, application_x_pagemaker=655553,
application_x_pcl=655553, application_x_pcl=655554,
application_x_pgp_keyring=655554, application_x_pgp_keyring=655555,
application_x_pixclscript=655555, application_x_pixclscript=655556,
application_x_pkcs7_certreqresp=655556, application_x_pkcs7_certreqresp=655557,
application_x_pkcs7_signature=655557, application_x_pkcs7_signature=655558,
application_x_project=655558, application_x_project=655559,
application_x_qpro=655559, application_x_qpro=655560,
application_x_rar=655560 | 0x10000000, application_x_rar=655561 | 0x10000000,
application_x_rpm=655561, application_x_rpm=655562,
application_x_sdp=655562, application_x_sdp=655563,
application_x_sea=655563, application_x_sea=655564,
application_x_seelogo=655564, application_x_seelogo=655565,
application_x_setupscript=655565, application_x_setupscript=655566,
application_x_shar=655566, application_x_shar=655567,
application_x_sharedlib=655567, application_x_sharedlib=655568,
application_x_shockwave_flash=655568, application_x_shockwave_flash=655569,
application_x_snappy_framed=655569, application_x_snappy_framed=655570,
application_x_sprite=655570, application_x_sprite=655571,
application_x_sqlite3=655571, application_x_sqlite3=655572,
application_x_stargallery_thm=655572, application_x_stargallery_thm=655573,
application_x_stuffit=655573, application_x_stuffit=655574,
application_x_sv4cpio=655574, application_x_sv4cpio=655575,
application_x_sv4crc=655575, application_x_sv4crc=655576,
application_x_tar=655576 | 0x10000000, application_x_tar=655577 | 0x10000000,
application_x_tbook=655577, application_x_tbook=655578,
application_x_terminfo=655578, application_x_terminfo=655579,
application_x_terminfo2=655579, application_x_terminfo2=655580,
application_x_tex_tfm=655580, application_x_tex_tfm=655581,
application_x_texinfo=655581, application_x_texinfo=655582,
application_x_ustar=655582, application_x_ustar=655583,
application_x_visio=655583, application_x_visio=655584,
application_x_vnd_audioexplosion_mzz=655584, application_x_vnd_audioexplosion_mzz=655585,
application_x_vnd_ls_xpix=655585, application_x_vnd_ls_xpix=655586,
application_x_vrml=655586, application_x_vrml=655587,
application_x_wais_source=655587, application_x_wais_source=655588,
application_x_wine_extension_ini=655588, application_x_wine_extension_ini=655589,
application_x_wintalk=655589, application_x_wintalk=655590,
application_x_world=655590, application_x_world=655591,
application_x_wri=655591, application_x_wri=655592,
application_x_x509_ca_cert=655592, application_x_x509_ca_cert=655593,
application_x_xz=655593 | 0x08000000, application_x_xz=655594 | 0x08000000,
application_x_zip=655594, application_x_zip=655595,
application_x_zstd=655595 | 0x08000000, application_x_zstd=655596 | 0x08000000,
application_xml=655596, application_xml=655597,
application_zip=655597 | 0x10000000, application_zip=655598 | 0x10000000,
application_zlib=655598, application_zlib=655599,
audio_basic=458991 | 0x80000000, audio_basic=458992 | 0x80000000,
audio_it=458992, audio_it=458993,
audio_make=458993, audio_make=458994,
audio_mid=458994, audio_mid=458995,
audio_midi=458995, audio_midi=458996,
audio_mp4=458996, audio_mp4=458997,
audio_mpeg=458997, audio_mpeg=458998,
audio_ogg=458998, audio_ogg=458999,
audio_s3m=458999, audio_s3m=459000,
audio_tsp_audio=459000, audio_tsp_audio=459001,
audio_tsplayer=459001, audio_tsplayer=459002,
audio_vnd_qcelp=459002, audio_vnd_qcelp=459003,
audio_voxware=459003, audio_voxware=459004,
audio_x_aiff=459004, audio_x_aiff=459005,
audio_x_flac=459005, audio_x_flac=459006,
audio_x_gsm=459006, audio_x_gsm=459007,
audio_x_hx_aac_adts=459007, audio_x_hx_aac_adts=459008,
audio_x_jam=459008, audio_x_jam=459009,
audio_x_liveaudio=459009, audio_x_liveaudio=459010,
audio_x_m4a=459010, audio_x_m4a=459011,
audio_x_midi=459011, audio_x_midi=459012,
audio_x_mod=459012, audio_x_mod=459013,
audio_x_mp4a_latm=459013, audio_x_mp4a_latm=459014,
audio_x_mpeg_3=459014, audio_x_mpeg_3=459015,
audio_x_mpequrl=459015, audio_x_mpequrl=459016,
audio_x_nspaudio=459016, audio_x_nspaudio=459017,
audio_x_pn_realaudio=459017, audio_x_pn_realaudio=459018,
audio_x_psid=459018, audio_x_psid=459019,
audio_x_realaudio=459019, audio_x_realaudio=459020,
audio_x_s3m=459020, audio_x_s3m=459021,
audio_x_twinvq=459021, audio_x_twinvq=459022,
audio_x_twinvq_plugin=459022, audio_x_twinvq_plugin=459023,
audio_x_voc=459023, audio_x_voc=459024,
audio_x_wav=459024, audio_x_wav=459025,
audio_x_xbox_executable=459025 | 0x80000000, audio_x_xbox_executable=459026 | 0x80000000,
audio_x_xbox360_executable=459026 | 0x80000000, audio_x_xbox360_executable=459027 | 0x80000000,
audio_xm=459027, audio_xm=459028,
font_otf=327956 | 0x20000000, font_otf=327957 | 0x20000000,
font_sfnt=327957 | 0x20000000, font_sfnt=327958 | 0x20000000,
font_woff=327958 | 0x20000000, font_woff=327959 | 0x20000000,
font_woff2=327959 | 0x20000000, font_woff2=327960 | 0x20000000,
image_bmp=524568, image_bmp=524569,
image_cmu_raster=524569, image_cmu_raster=524570,
image_fif=524570, image_fif=524571,
image_florian=524571, image_florian=524572,
image_g3fax=524572, image_g3fax=524573,
image_gif=524573, image_gif=524574,
image_heic=524574, image_heic=524575,
image_ief=524575, image_ief=524576,
image_jpeg=524576, image_jpeg=524577,
image_jutvision=524577, image_jutvision=524578,
image_naplps=524578, image_naplps=524579,
image_pict=524579, image_pict=524580,
image_png=524580, image_png=524581,
image_svg=524581 | 0x80000000, image_svg=524582 | 0x80000000,
image_svg_xml=524582 | 0x80000000, image_svg_xml=524583 | 0x80000000,
image_tiff=524583, image_tiff=524584,
image_vnd_adobe_photoshop=524584 | 0x80000000, image_vnd_adobe_photoshop=524585 | 0x80000000,
image_vnd_djvu=524585 | 0x80000000, image_vnd_djvu=524586 | 0x80000000,
image_vnd_fpx=524586, image_vnd_fpx=524587,
image_vnd_microsoft_icon=524587, image_vnd_microsoft_icon=524588,
image_vnd_rn_realflash=524588, image_vnd_rn_realflash=524589,
image_vnd_rn_realpix=524589, image_vnd_rn_realpix=524590,
image_vnd_wap_wbmp=524590, image_vnd_wap_wbmp=524591,
image_vnd_xiff=524591, image_vnd_xiff=524592,
image_webp=524592, image_webp=524593,
image_wmf=524593, image_wmf=524594,
image_x_3ds=524594, image_x_3ds=524595,
image_x_award_bioslogo=524595, image_x_award_bioslogo=524596,
image_x_cmu_raster=524596, image_x_cmu_raster=524597,
image_x_cur=524597, image_x_cur=524598,
image_x_dwg=524598, image_x_dwg=524599,
image_x_eps=524599, image_x_eps=524600,
image_x_exr=524600, image_x_exr=524601,
image_x_gem=524601, image_x_gem=524602,
image_x_icns=524602, image_x_icns=524603,
image_x_icon=524603 | 0x80000000, image_x_icon=524604 | 0x80000000,
image_x_jg=524604, image_x_jg=524605,
image_x_jps=524605, image_x_jps=524606,
image_x_ms_bmp=524606, image_x_ms_bmp=524607,
image_x_niff=524607, image_x_niff=524608,
image_x_pcx=524608, image_x_pcx=524609,
image_x_pict=524609, image_x_pict=524610,
image_x_portable_bitmap=524610, image_x_portable_bitmap=524611,
image_x_portable_graymap=524611, image_x_portable_graymap=524612,
image_x_portable_pixmap=524612, image_x_portable_pixmap=524613,
image_x_quicktime=524613, image_x_quicktime=524614,
image_x_rgb=524614, image_x_rgb=524615,
image_x_tga=524615, image_x_tga=524616,
image_x_tiff=524616, image_x_tiff=524617,
image_x_win_bitmap=524617, image_x_win_bitmap=524618,
image_x_xcf=524618 | 0x80000000, image_x_xcf=524619 | 0x80000000,
image_x_xpixmap=524619 | 0x80000000, image_x_xpixmap=524620 | 0x80000000,
image_x_xwindowdump=524620, image_x_xwindowdump=524621,
message_news=196941, message_news=196942,
message_rfc822=196942, message_rfc822=196943,
model_vnd_dwf=65871, model_vnd_dwf=65872,
model_vnd_gdl=65872, model_vnd_gdl=65873,
model_vnd_gs_gdl=65873, model_vnd_gs_gdl=65874,
model_vrml=65874, model_vrml=65875,
model_x_pov=65875, model_x_pov=65876,
text_PGP=590164, text_PGP=590165,
text_asp=590165, text_asp=590166,
text_css=590166, text_css=590167,
text_html=590167, text_html=590168,
text_javascript=590168, text_javascript=590169,
text_mcf=590169, text_mcf=590170,
text_pascal=590170, text_pascal=590171,
text_plain=590171, text_plain=590172,
text_richtext=590172, text_richtext=590173,
text_rtf=590173, text_rtf=590174,
text_scriplet=590174, text_scriplet=590175,
text_tab_separated_values=590175, text_tab_separated_values=590176,
text_troff=590176, text_troff=590177,
text_uri_list=590177, text_uri_list=590178,
text_vnd_abc=590178, text_vnd_abc=590179,
text_vnd_fmi_flexstor=590179, text_vnd_fmi_flexstor=590180,
text_vnd_wap_wml=590180, text_vnd_wap_wml=590181,
text_vnd_wap_wmlscript=590181, text_vnd_wap_wmlscript=590182,
text_webviewhtml=590182, text_webviewhtml=590183,
text_x_Algol68=590183, text_x_Algol68=590184,
text_x_asm=590184, text_x_asm=590185,
text_x_audiosoft_intra=590185, text_x_audiosoft_intra=590186,
text_x_awk=590186, text_x_awk=590187,
text_x_bcpl=590187, text_x_bcpl=590188,
text_x_c=590188, text_x_c=590189,
text_x_c__=590189, text_x_c__=590190,
text_x_component=590190, text_x_component=590191,
text_x_diff=590191, text_x_diff=590192,
text_x_fortran=590192, text_x_fortran=590193,
text_x_java=590193, text_x_java=590194,
text_x_la_asf=590194, text_x_la_asf=590195,
text_x_lisp=590195, text_x_lisp=590196,
text_x_m=590196, text_x_m=590197,
text_x_m4=590197, text_x_m4=590198,
text_x_makefile=590198, text_x_makefile=590199,
text_x_ms_regedit=590199, text_x_ms_regedit=590200,
text_x_msdos_batch=590200, text_x_msdos_batch=590201,
text_x_objective_c=590201, text_x_objective_c=590202,
text_x_pascal=590202, text_x_pascal=590203,
text_x_perl=590203, text_x_perl=590204,
text_x_php=590204, text_x_php=590205,
text_x_po=590205, text_x_po=590206,
text_x_python=590206, text_x_python=590207,
text_x_ruby=590207, text_x_ruby=590208,
text_x_sass=590208, text_x_sass=590209,
text_x_scss=590209, text_x_scss=590210,
text_x_server_parsed_html=590210, text_x_server_parsed_html=590211,
text_x_setext=590211, text_x_setext=590212,
text_x_sgml=590212, text_x_sgml=590213,
text_x_shellscript=590213, text_x_shellscript=590214,
text_x_speech=590214, text_x_speech=590215,
text_x_tcl=590215, text_x_tcl=590216,
text_x_tex=590216, text_x_tex=590217,
text_x_uil=590217, text_x_uil=590218,
text_x_uuencode=590218, text_x_uuencode=590219,
text_x_vcalendar=590219, text_x_vcalendar=590220,
text_x_vcard=590220, text_x_vcard=590221,
text_xml=590221, text_xml=590222,
video_MP2T=393614, video_MP2T=393615,
video_animaflex=393615, video_animaflex=393616,
video_avi=393616, video_avi=393617,
video_avs_video=393617, video_avs_video=393618,
video_mp4=393618, video_mp4=393619,
video_mpeg=393619, video_mpeg=393620,
video_quicktime=393620, video_quicktime=393621,
video_vdo=393621, video_vdo=393622,
video_vivo=393622, video_vivo=393623,
video_vnd_rn_realvideo=393623, video_vnd_rn_realvideo=393624,
video_vosaic=393624, video_vosaic=393625,
video_webm=393625, video_webm=393626,
video_x_amt_demorun=393626, video_x_amt_demorun=393627,
video_x_amt_showrun=393627, video_x_amt_showrun=393628,
video_x_atomic3d_feature=393628, video_x_atomic3d_feature=393629,
video_x_dl=393629, video_x_dl=393630,
video_x_dv=393630, video_x_dv=393631,
video_x_fli=393631, video_x_fli=393632,
video_x_flv=393632, video_x_flv=393633,
video_x_isvideo=393633, video_x_isvideo=393634,
video_x_jng=393634 | 0x80000000, video_x_jng=393635 | 0x80000000,
video_x_m4v=393635, video_x_m4v=393636,
video_x_matroska=393636, video_x_matroska=393637,
video_x_mng=393637, video_x_mng=393638,
video_x_motion_jpeg=393638, video_x_motion_jpeg=393639,
video_x_ms_asf=393639, video_x_ms_asf=393640,
video_x_msvideo=393640, video_x_msvideo=393641,
video_x_qtc=393641, video_x_qtc=393642,
video_x_sgi_movie=393642, video_x_sgi_movie=393643,
x_epoc_x_sisx_app=721323, x_epoc_x_sisx_app=721324,
}; };
char *mime_get_mime_text(unsigned int mime_id) {switch (mime_id) { char *mime_get_mime_text(unsigned int mime_id) {switch (mime_id) {
case application_arj: return "application/arj"; case application_arj: return "application/arj";
@ -610,6 +611,7 @@ case application_x_mif: return "application/x-mif";
case application_x_mix_transfer: return "application/x-mix-transfer"; case application_x_mix_transfer: return "application/x-mix-transfer";
case application_xml: return "application/xml"; case application_xml: return "application/xml";
case application_x_mobipocket_ebook: return "application/x-mobipocket-ebook"; case application_x_mobipocket_ebook: return "application/x-mobipocket-ebook";
case application_vnd_amazon_mobi8_ebook: return "application/vnd.amazon.mobi8-ebook";
case application_x_msaccess: return "application/x-msaccess"; case application_x_msaccess: return "application/x-msaccess";
case application_x_ms_compress_szdd: return "application/x-ms-compress-szdd"; case application_x_ms_compress_szdd: return "application/x-ms-compress-szdd";
case application_x_ms_pdb: return "application/x-ms-pdb"; case application_x_ms_pdb: return "application/x-ms-pdb";
@ -1052,6 +1054,8 @@ g_hash_table_insert(ext_table, "mif", (gpointer)application_x_mif);
g_hash_table_insert(ext_table, "nix", (gpointer)application_x_mix_transfer); g_hash_table_insert(ext_table, "nix", (gpointer)application_x_mix_transfer);
g_hash_table_insert(ext_table, "opf", (gpointer)application_xml); g_hash_table_insert(ext_table, "opf", (gpointer)application_xml);
g_hash_table_insert(ext_table, "mobi", (gpointer)application_x_mobipocket_ebook); g_hash_table_insert(ext_table, "mobi", (gpointer)application_x_mobipocket_ebook);
g_hash_table_insert(ext_table, "azw", (gpointer)application_vnd_amazon_mobi8_ebook);
g_hash_table_insert(ext_table, "azw3", (gpointer)application_vnd_amazon_mobi8_ebook);
g_hash_table_insert(ext_table, "accdb", (gpointer)application_x_msaccess); g_hash_table_insert(ext_table, "accdb", (gpointer)application_x_msaccess);
g_hash_table_insert(ext_table, "fon", (gpointer)application_x_ms_compress_szdd); g_hash_table_insert(ext_table, "fon", (gpointer)application_x_ms_compress_szdd);
g_hash_table_insert(ext_table, "pdb", (gpointer)application_x_ms_pdb); g_hash_table_insert(ext_table, "pdb", (gpointer)application_x_ms_pdb);
@ -1556,6 +1560,7 @@ g_hash_table_insert(mime_table, "application/x-mif", (gpointer)application_x_mif
g_hash_table_insert(mime_table, "application/x-mix-transfer", (gpointer)application_x_mix_transfer); g_hash_table_insert(mime_table, "application/x-mix-transfer", (gpointer)application_x_mix_transfer);
g_hash_table_insert(mime_table, "application/xml", (gpointer)application_xml); g_hash_table_insert(mime_table, "application/xml", (gpointer)application_xml);
g_hash_table_insert(mime_table, "application/x-mobipocket-ebook", (gpointer)application_x_mobipocket_ebook); g_hash_table_insert(mime_table, "application/x-mobipocket-ebook", (gpointer)application_x_mobipocket_ebook);
g_hash_table_insert(mime_table, "application/vnd.amazon.mobi8-ebook", (gpointer)application_vnd_amazon_mobi8_ebook);
g_hash_table_insert(mime_table, "application/x-msaccess", (gpointer)application_x_msaccess); g_hash_table_insert(mime_table, "application/x-msaccess", (gpointer)application_x_msaccess);
g_hash_table_insert(mime_table, "application/x-ms-compress-szdd", (gpointer)application_x_ms_compress_szdd); g_hash_table_insert(mime_table, "application/x-ms-compress-szdd", (gpointer)application_x_ms_compress_szdd);
g_hash_table_insert(mime_table, "application/x-ms-pdb", (gpointer)application_x_ms_pdb); g_hash_table_insert(mime_table, "application/x-ms-pdb", (gpointer)application_x_ms_pdb);

View File

@ -140,6 +140,8 @@ void parse(void *arg) {
} else if (is_cbr(&ScanCtx.cbr_ctx, doc.mime)) { } else if (is_cbr(&ScanCtx.cbr_ctx, doc.mime)) {
parse_cbr(&ScanCtx.cbr_ctx, &job->vfile, &doc); parse_cbr(&ScanCtx.cbr_ctx, &job->vfile, &doc);
} else if (IS_MOBI(doc.mime)) {
parse_mobi(&ScanCtx.mobi_ctx, &job->vfile, &doc);
} }
//Parent meta //Parent meta

View File

@ -59,24 +59,14 @@ function applyNameToTitle(hit, title, extension) {
title.appendChild(document.createTextNode(hit["_source"]["name"] + extension)); title.appendChild(document.createTextNode(hit["_source"]["name"] + extension));
} }
function addVidSrc(url, mime, video) {
let vidSource = document.createElement("source");
vidSource.setAttribute("src", url);
if (video.canPlayType(mime)) {
vidSource.setAttribute("type", mime);
} else {
vidSource.setAttribute("type", "video/webm");
}
video.appendChild(vidSource);
}
function shouldPlayVideo(hit) { function shouldPlayVideo(hit) {
const videoc = hit["_source"]["videoc"]; const videoc = hit["_source"]["videoc"];
const mime = hit["_source"]["mime"]; const mime = hit["_source"]["mime"];
return mime && return mime &&
hit["_source"]["extension"] !== "mkv" &&
mime.startsWith("video/") && mime.startsWith("video/") &&
hit["_source"]["extension"] !== "mkv" &&
hit["_source"]["extension"] !== "avi" &&
videoc !== "hevc" && videoc !== "hevc" &&
videoc !== "mpeg2video" && videoc !== "mpeg2video" &&
videoc !== "wmv3"; videoc !== "wmv3";

File diff suppressed because one or more lines are too long