* Add buttons to show/hide results from Douban & Google
* Trigger search with "Enter" key
* Use Underscore.js template instead of build HTML strings in JavaScript
* Keep click event handler in JavaScript instead of using HTML's `onclick`
* Normalize Douban & Google results
* Update cover image & add cover URL to the form input
Since this is closer to the elements, we can be more sure that we won't have events fire when we don't want them to. For example, if we're viewing the page in a modal, we don't want the event handler living longer than the content itself.
I've been unable to reproduce the issue on macOS with Python 2.7/3.6 and Fedora with Python 2.7, but if it happens for others, then it's worth the change.
Requires the "goodread" module (added to optional-requirements.txt) and an API key
Retrieves Goodreads author information and displays their photo and "about" text
With them shown in a modal, you don't lose your place in the pagination. If the request comes via Ajax, the minimal layout is used. If via a normal request, the full layout is used. That lets you open the details in a new tab and have the full experience, but if you're clicking through the results of a search, you can view many without losing your place.
When using a device that is bothersome to log in on (e.g. a Kindle) you can use a magic link to log in via another device.
Configuration was added and is disabled by default.
Default view still shows the most recently added books, but adds ability to sort by newest/oldest books and books sorted alphabetically (ascending & descending).
I did not include translations for the next text, but they are split up for easy translating and are otherwise ready for translating.
Added ability to reload database connection (refresh problem)
Bugfix display hot books (no hot books, hot books are deleted books, no longer result in error 500)
Work on watching metadata
More efficient storing folder keys to database
Nearly completed. Need to do final touches to callback for when metadata.db updated on real server, as cannot test locally
Changed callback for file changes from being hard coded to mine
used url_for in template as apposed to hard coded links
Fix to drive template
First attempt at redownload metadata.db
Fixed incorrect call to downloadFile
Added logging
Fixed call to copy file
Added exception logging to gdriveutils + fixed string long concat
Fix file download
Fix backup metadata
Added slashes to paths
Removed threading temporarily
Fix for reloading database
Fix reinitialising of variables
Fix check to see if custom column already setup
Update to showing authenticate google drive callback + fix for reinitialising database
Fixed logic for showing authenticate with google drive
Handling of missing tags in fb import
naming of path is more imitating calibre (replacement of special characters, "pinyining" of author names if unidecode is available )
Sorting of authors (similar to calibre for jr./sr./I..IV endings)
bugfix pathseparator on windows and linux during upload
bugfix os.rename for authordir
publishing date on detailview is formated according to slected locale
filename on downloading from web ui is now correct displayed
added ids to html for testing