===== PDF Catalogue (Working Title) ===== Software for organising, sorting, and viewing digital documents. Born out of frustration using [[calibre]]---wanting something more like [[foobar_2000]] and other music library organisers+players. ===== Ideas ===== * [[PDF]]s (etc.) don't get moved to a a special folder, just leave them wherever you want / organise them however you want. * Be able to 'watch' the user's directory for changes, and update without prompting * [[metadata]] shares [[Calibre]]'s format (see the metadata.opf files, which are XML). * Super-customisable layout. * Fetch metadata online. * Custom filters: regex with a nice GUI interface if needed. * Use something zippy like [[MuPDF]] for rendering docs. That could be modular. * [[Python]] or [[FreePascal]], I guess. * Rely on existing system, so use 'outside' programs for things like pdf reading/rendering * config file for settings is fine. * library directory (i don't need multiple, but might be useful) * pdf viewer location, if want one not default (xdg-open) * [[exiftool]] location * location for 'collections' * 'panels' * file browser (or maybe not) * collections (like playlists, store as separate [[plaintext|plaintext]] lists of files) * keywords (tags) * author * subject * OBSPDFC __O__fficial __B__lueberry __S__oft __P____D____F__ __C__atalogue ?? ===== Research ===== (Just have this urge to do things in FreePascal, but Python seems way easier) ==== FreePascal ==== * [[https://stackoverflow.com/questions/9831731/reading-a-file-in-freepascal|Reading a file in FreePascal]] Info on reading config files and parsing launch arguments. * https://www.freepascal.org/docs-html/rtl/system/read.html - reading from files and stdin * https://www.freepascal.org/docs-html/rtl/sysutils/getappconfigdir.html * https://www.freepascal.org/docs-html/rtl/sysutils/getappconfigfile.html * https://forum.lazarus.freepascal.org/index.php?topic=42612.0 * https://wiki.freepascal.org/Using_INI_Files * https://www.freepascal.org/docs-html/rtl/classes/tstringlist.html * https://wiki.freepascal.org/File_Handling_In_Pascal * https://wiki.freepascal.org/File * https://lazarus-ccr.sourceforge.io/docs/fcl/process/tprocess.html * https://wiki.lazarus.freepascal.org/Executing_External_Programs * https://wiki.lazarus.freepascal.org/Executing_External_Programs#LCLIntf_Alternatives - `OpenDocument` uses the default external program * https://wiki.lazarus.freepascal.org/Add_Help_to_Your_Application ==== Python ==== * [[aur>page-generator]] - WYSIWYG GUI tool for Python. * https://github.com/srstevenson/xdg * https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files * https://tutswiki.com/read-write-config-files-in-python/ * https://stackoverflow.com/questions/7567642/where-to-put-a-configuration-file-in-python * https://stackoverflow.com/questions/5055042/whats-the-best-practice-using-a-settings-file-in-python * https://stackoverflow.com/questions/19379120/how-to-read-a-config-file-using-python * https://docs.python.org/3/library/configparser.html * https://www.tutorialspoint.com/python/os_listdir.htm * https://stackabuse.com/python-list-files-in-a-directory/ * https://www.youtube.com/watch?v=UmPe07a3bWs * https://github.com/smarnach/pyexiftool * https://www.easymetadata.com/2014/11/fun-with-python-extracting-pdf-metadata/ * https://stackoverflow.com/questions/14209214/reading-the-pdf-properties-metadata-in-python ==== Other Projects ==== * https://github.com/arrufat/pdftag * https://github.com/glutanimate/PDFMtEd * https://www.jabref.org/ ==== PDF ==== * https://helpx.adobe.com/acrobat/using/pdf-properties-metadata.html {{tag>proposals programming software project}}