
Include Parent Id in OPDS <entry> and <feed> elements
It would be useful if (all) opds <entry> and <feed> elements contained the parent id or a href to the parent. This would be useful for 3rd party apps when scanning for updates as we could just read through the recently updated pages instead of traversing through every directory.

Updating directories among a large collection
For example , if updating directories under Marvel, not having to scan through entire Darkhorse, DC, IDW folders that precede it alphabetically.

Linuxserver.io - Ubooquity
Any idea why when i set it to original mode it crops off the top of every page of every comic i've tried?
https://i.imgur.com/mbcwcKT.jpg
Shows the full image on fit to width and height modes.

java.awt.AWTError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
I just installed Ubooquity and get the follwing when starting headless.
20170107 14:57:36 [Scanner thread] ERROR com.ubooquity.Ubooquity - Uncaught exception on thread: Scanner threadjava.awt.AWTError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable. at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) ~[na:1.8.0_111] at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65) ~[na:1.8.0_111] at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:115) ~[na:1.8.0_111] at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_111] at sun.awt.X11GraphicsEnvironment.(X11GraphicsEnvironment.java:74) ~[na:1.8.0_111] at java.lang.Class.forName0(Native Method) ~[na:1.8.0_111] at java.lang.Class.forName(Class.java:264) ~[na:1.8.0_111] at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:103) ~[na:1.8.0_111] at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82) ~[na:1.8.0_111] at java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1181) ~[na:1.8.0_111] at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:129) ~[pdfbox-2.0.0.jar.3733332883789124729.tmp:2.0.0] at org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:94) ~[pdfbox-2.0.0.jar.3733332883789124729.tmp:2.0.0] at com.ubooquity.fileformat.pdf.b.a(SourceFile:71) ~[Ubooquity.jar:1.10.1] at com.ubooquity.fileformat.pdf.b.a(SourceFile:44) ~[Ubooquity.jar:1.10.1] at com.ubooquity.data.feeder.a.b(SourceFile:382) ~[Ubooquity.jar:1.10.1] at com.ubooquity.data.feeder.a.a(SourceFile:212) ~[Ubooquity.jar:1.10.1] at com.ubooquity.data.feeder.a.b(SourceFile:316) ~[Ubooquity.jar:1.10.1] at com.ubooquity.data.feeder.a.a(SourceFile:35) ~[Ubooquity.jar:1.10.1] at com.ubooquity.data.feeder.a$1.run(SourceFile:116) ~[Ubooquity.jar:1.10.1] at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_111]
I started it using the .sh script in the download section. I altered it a bit (added -headless in the command line) because for some reason the server went down if that was not in?!
If I start the jar file in the GUI, the scanner works but the Themes do not work. And since this is my media server i want it to run headless and be accessible from the browser only.
20170107 14:57:34 [main] INFO com.ubooquity.Ubooquity - Running with the following parameters - headless: true, port: 2202, webadmin: true, host: null, debug: false, execdir: /opt/ubooquity
20170107 14:57:34 [main] INFO com.ubooquity.Ubooquity - #############################
20170107 14:57:34 [main] INFO com.ubooquity.Ubooquity - # Starting Ubooquity #
20170107 14:57:34 [main] INFO com.ubooquity.Ubooquity - #############################
20170107 14:57:34 [main] INFO com.ubooquity.Ubooquity - Java version: 1.8.0_111
20170107 14:57:34 [main] INFO com.ubooquity.Ubooquity - Java vendor: Oracle Corporation
20170107 14:57:34 [main] INFO com.ubooquity.Ubooquity - Max heap size available: 483 MB
20170107 14:57:34 [main] INFO com.ubooquity.Ubooquity - OS name: Linux
20170107 14:57:34 [main] INFO com.ubooquity.Ubooquity - OS version: 3.2.0-4-amd64
20170107 14:57:34 [main] INFO com.ubooquity.Ubooquity - OS architecture: amd64
20170107 14:57:34 [main] INFO com.ubooquity.Ubooquity - Loading local version info
20170107 14:57:34 [main] INFO com.ubooquity.Ubooquity - Ubooquity 1.10.1 built on 2016-05-10 at 20:36
20170107 14:57:34 [main] INFO com.ubooquity.Ubooquity - Creating application folders
20170107 14:57:34 [main] INFO com.ubooquity.Ubooquity - Loading preferences
20170107 14:57:35 [main] INFO com.ubooquity.c - Starting internal server...
20170107 14:57:35 [Scanner thread] INFO com.ubooquity.data.feeder.a - Scanning books directories
20170107 14:57:35 [Scanner thread] INFO com.ubooquity.fileformat.pdf.b - Reading metadata of pdf file: /home/ivar/Downloads/Media/eBooks/3x PDF For Dummies Windows 10 for dummies-Word 2016 for professionals-SAR for dummies/Word 2016 For Professionals.pdf
20170107 14:57:35 [main] INFO com.ubooquity.c - Reverse proxy prefix is not activated
20170107 14:57:35 [main] INFO com.ubooquity.c - Internal server started. Listening on port 2202
20170107 14:57:36 [Timer-1] INFO com.ubooquity.Ubooquity - Checking latest available Ubooquity version from website

java issues...crashing on scanning large PDF's
Converting these is not acceptable as I have over 500, and all of what I download is PDF format.
What can I do to avoid this crash? I am using the latest JAVA on Windows 2012R2, this was working fine up until one of the latest updates of Ubooquity?
Here is the error message, as soon as I start an 'admin' scan of my magazines.
20161218 10:32:12 [Scanner thread] ERROR com.ubooquity.Ubooquity - Uncaught exception on thread: Scanner thread
java.lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferByte.(Unknown Source) ~[na:1.8.0_111]
at java.awt.image.ComponentSampleModel.createDataBuffer(Unknown Source) ~[na:1.8.0_111]
at sun.awt.image.ByteInterleavedRaster.(Unknown Source) ~[na:1.8.0_111]
at sun.awt.image.ByteInterleavedRaster.createCompatibleWritableRaster(Unknown Source) ~[na:1.8.0_111]
at sun.awt.image.ByteInterleavedRaster.createCompatibleWritableRaster(Unknown Source) ~[na:1.8.0_111]
at org.apache.pdfbox.filter.DCTFilter.fromBGRtoRGB(DCTFilter.java:245) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.filter.DCTFilter.decode(DCTFilter.java:170) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.cos.COSInputStream.create(COSInputStream.java:69) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:163) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.pdmodel.common.PDStream.createInputStream(PDStream.java:235) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.createInputStream(PDImageXObject.java:565) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.pdmodel.graphics.image.SampledImageReader.from8bit(SampledImageReader.java:233) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.pdmodel.graphics.image.SampledImageReader.getRGBImage(SampledImageReader.java:138) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.getImage(PDImageXObject.java:340) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.rendering.PageDrawer.drawImage(PageDrawer.java:781) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:62) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:815) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:472) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:446) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:149) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:189) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:208) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:139) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:94) ~[pdfbox-2.0.0.jar.1080217776487141892.tmp:2.0.0]
at com.ubooquity.fileformat.pdf.b.a(SourceFile:71) ~[Ubooquity.jar:1.10.1]
at com.ubooquity.fileformat.pdf.b.a(SourceFile:44) ~[Ubooquity.jar:1.10.1]
at com.ubooquity.data.feeder.a.b(SourceFile:382) ~[Ubooquity.jar:1.10.1]
at com.ubooquity.data.feeder.a.a(SourceFile:212) ~[Ubooquity.jar:1.10.1]
at com.ubooquity.data.feeder.a.b(SourceFile:316) ~[Ubooquity.jar:1.10.1]
at com.ubooquity.data.feeder.a.a(SourceFile:35) ~[Ubooquity.jar:1.10.1]
at com.ubooquity.data.feeder.a$1.run(SourceFile:116) ~[Ubooquity.jar:1.10.1]
at java.lang.Thread.run(Unknown Source) ~[na:1.8.0_111]

Would love to simply change comics to magazines. Can this be done?
Would love to be able to add a magazine repository ..
Just a suggestion ..

Synology Package
Are there any plans to create a Synology Package? I see that it's possible to get Ubooquity running on a Synology but I just don't feel comfortable installing it manually.
I really love what you are doing with Ubooquity, I've longed for a Plex like solution to reading comics for a very long time and very much look forward to being able to use your product for both eBooks and Comics!

Syslog configuration
Hi,
I'd like to integrate ubooquity logs with the built-in synology logs. This way I'd benefit from notifications (important to know that I have an error requiring restarting ubooquity) and a better log management (search and archiving)
I tried to understand how logs are working in ubooquity, but couldn't figure out how to do that
The simplest solution I could think of is to configure ubooquity for syslog protocol: is it somehting you can do? can I define an IP/port for ubooquity to send the logs? that woudl definitely be a nice improvement, and I'm pretty sure there are light open-source libraries for that

Java error during scaning
Every now and then, during scanning, generally when my NAS is otherwise busy, I get a "java heap space" exception. The error is displayed in the log like the one at the bottom of this post.
Once the error has happened, ubooquity hangs: it's not killed (it still shows in the process list), but it's not responsive either. That's an issue in my view to hae a runnung process that really is dead
When that happens all I have to do, is stop and then restart ubooquity and the scan can generally continue without problem (it was a temporary issue; I also suspect memory leaks in the code since this only happens when scanning a large number of comics; it only ever happened when the number of comics to scan was above a few 1000s)
To avoid this situation,I propose to add some improvement to the scanning process:
- catch error when scanning a book; and dump a more relevant message to the user (for example, giving the name and the file and the item that was being scanned at the time of the error (cover image, title, metadata...)
- when a memory error occurs, shut down ubooquity process; In my case, since I've added a "nohup" commands in the startup script, upstart will restart ubooquity and I would have a functioning server instead of a zombie process (I've also added to the "nohup" commands a limit to the number of restart so that if ubooquity crashes 3 times in a row, then upstart will not restart it anymore)
- Optional: add the incriminated file to a "black list" so ubooquity doesn't try to rescan it next time... and of course allow the admin to reset the black list
ERROR com.ubooquity.Ubooquity - Uncaught exception on thread: Scanner thread
java.lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferByte.(DataBufferByte.java:92) ~[na:1.8.0_101]
at java.awt.image.ComponentSampleModel.createDataBuffer(ComponentSampleModel.java:445) ~[na:1.8.0_101]
at java.awt.image.Raster.createWritableRaster(Raster.java:941) ~[na:1.8.0_101]
at javax.imageio.ImageTypeSpecifier.createBufferedImage(ImageTypeSpecifier.java:1074) ~[na:1.8.0_101]
at javax.imageio.ImageReader.getDestination(ImageReader.java:2892) ~[na:1.8.0_101]
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:1071) ~[na:1.8.0_101]
at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:1039) ~[na:1.8.0_101]
at com.twelvemonkeys.imageio.plugins.jpeg.JPEGImageReader.read(Unknown Source) ~[imageio-jpeg-3.1.0.jar.2469300273615590271.tmp:3.1.0]
at javax.imageio.ImageIO.read(ImageIO.java:1448) ~[na:1.8.0_101]
at javax.imageio.ImageIO.read(ImageIO.java:1352) ~[na:1.8.0_101]
at com.ubooquity.fileformat.cbz.a.a(SourceFile:87) ~[Ubooquity.jar:1.10.1]
at com.ubooquity.f.a.a(SourceFile:41) ~[Ubooquity.jar:1.10.1]
at com.ubooquity.data.feeder.b.a(SourceFile:63) ~[Ubooquity.jar:1.10.1]
at com.ubooquity.data.feeder.a.b(SourceFile:531) ~[Ubooquity.jar:1.10.1]
at com.ubooquity.data.feeder.a.c(SourceFile:470) ~[Ubooquity.jar:1.10.1]
at com.ubooquity.data.feeder.a.b(SourceFile:35) ~[Ubooquity.jar:1.10.1]
at com.ubooquity.data.feeder.a$1.run(SourceFile:123) ~[Ubooquity.jar:1.10.1]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_101]
Customer support service by UserEcho