New users are appearing on bkkeepr, without invites - the sneaky b*tards. I shall attempt to assimilate them.
Seriously though, they’ve actually (inadvertantly) pointed out some issues with the site, which I’m now fixing. So thank you.
Sodding ISBNs. Found another problem, now fixed, with some ISBN-10s which weren’t validating properly. Thanks to this fix on John Blyberg’s php-isbn code, it should working now.
Also just found this class - another ISBN implementation - which may prove useful.
Another user request fulfilled, as we launch the bkkeepr badge.
It’s very stripped-down, as this is how I like my third-party code. Requests are via JSON, and opens up all sorts of possibilities for an expanded bkkeepr API in the future.
The JSON response is generated dynamically by CodeIgniter (the framework bkkeepr is built on) and php-json.
bkkeepr is now all covered up, thanks to Amazon Web Services’ Associates API, which lets you pull all sorts of product data from their site, including cover images.
The process does slow the site, slightly, but for the moment I think it’s worth it. I don’t want to store and serve these images myself, although it may become necessary in future. At least some kind of caching is probably in order.
I also discovered the reasons behind Amazon’s continuing usage of ISBN-10, which previously confused me. This blog post explains it, but basically they’ve always used 10-digit ASIN product codes for everything, so when ISBN-13 came along, the ASINs stayed as the 10-digit version. We’ll see how this goes, as it must cause problems in the future.
ISBN-based author and title searching is now performed in the following order:
- Check Amazon UK (.co.uk)
- If ISBN-13, check Amazon UK for ISBN-10 equivalent
- Check Amazon US (.com)
- If ISBN-13, check Amazon US for ISBN-10 equivalent
- Check ISBNdb.com
Only if all that turns up nothing is the dreaded ‘Unknown Work by Somebody’ added.
So far, this appears to be catching pretty much everything. Have got this down now, and refactored the code, so adding new DBs should be reasonably trivial. As should querying different parts of the Amazon empire, if bkkeepr goes multilingual…
The #1 feature request so far has been to remove the requirement to supply an ISBN if you’ve previously left a record of it.
I’m very pleased to say that this is now live. You can text/send all the existing commands (http://bkkeepr.com/how) without prefixing an ISBN, and bkkeepr will update the last ISBN you sent.
Be careful if you’re reading more than one book at a time!
Less than happy with ISBNdb’s performance so far, I’ve added Amazon Web Services for ISBN checking. If ISBNdb doesn’t return a Title and Author for a given ISBN, it check’s Amazon as well.
However, I’ve now noticed that Amazon isn’t so reliable either, in that some ISBN-10s get results where the corresponding ISBN-13 does not - even when that book came out after the ISBN-13 switchover. Weird.
Tomorrow, I’ll code a back-conversion from ISBN-13 to ISBN-10 and plug this gap. Tomorrow.
Two thing immediately popped up today in beta testing. One reader got an ISBN slightly wrong, but it was treated as valid (and nothing was known about it obviously), and another user submitted different ISBNs - the 10-digit and 13-digit versions - for the same work.
Now, all ISBNs are validated properly by calculating the checksum, and in the case of ISBN-10s are converted to ISBN-13s before being checked against and stored in the DB.
Which should solve that particular problem.