Register Guidelines E-Books Search Today's Posts Mark Forums Read

Go Back   MobileRead Forums > E-Book Readers > Amazon Kindle > Kindle Developer's Corner

Notices

Reply
 
Thread Tools Search this Thread
Old 08-22-2014, 07:25 PM   #1
barsanuphe
Enthusiast
barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.
 
Posts: 41
Karma: 36028
Join Date: Aug 2014
Location: Paris, France
Device: PW2
What it is.

Librarian

Librarian is a CLI epub manager. It is also very early in development, so I'm not joining any attachments here yet. You're welcome to git clone and try it, of course, but I cannot guarantee it will not end in complete disaster. See LibrarianSync for something that should not.

It can, among other things: import epubs, read metadata, automatically rename them from metadata, convert them to mobi and sync them to a Kindle. You can also run queries, add and remove tags. These tags are used to automatically create Kindle collections with LibrarianSync (see below). See example commands in the README. It can also host ebooks that are in its library over http, allowing said books to be downloaded automatically from LibrarianSync on the Kindle.

It requires python3, pyyaml, python-lxml and Calibre (for converting from epub to mobi).

For more information, see the README file on github.

LibrarianSync

LibrarianSync is a Kindle collection builder, originally meant as a complement to Librarian, but which can be used completely independently.

It has been tested on a Kindle PW2 (EU, Wi-Fi) FW 5.4.5.1, and on a Touch FW 5.3. It probably works on other K5 devices.

It can use either a json file as source (such as generated by Librarian when syncing, or the calibre kindle plugin) or the folder structure inside the documents/ folder.

Using the json file, the entries can either remplace all existing collections or update existing collections. Using folder structure, all previously existing collections are dropped.

The json format looks as follows:

Code:
{
  "library/Alexandre Dumas/Alexandre Dumas (2004) Les Trois Mousquetaires.mobi": ["gutenberg","french","not read"],
  "library/Alexandre Dumas/Alexandre Dumas (2011) Le Comte De Monte-Cristo.mobi": ["gutenberg","french","most awesome book ever"],
  "re:Alexandre Dumas (Père|Fils)": ["dumas"]
}
As shown in the last line, you can add (python) regular expressions instead of filenames (with a re: prefix); all matches will be added to the associated collection.

LibrarianSync comes as a KUAL menu entry. As such, it requires: a jailbroken PW2, MKK, KUAL, and python (snapshot > 0.10N-r10867).

For more information, see the README file on github.

Where it is.

The code resides on github.
See attachments for a Kindle package for LibrarianSync.

Where it comes from.

Librarian is inspired, though much less ambitious, by beets.
LibrarianSync is inspired by this thread.

Thanks to NiLuJe for quickly updating the python package with delicious modules and kaznelson for his courageous sqlite investigations.

Feedback is very much welcome.

LibrarianSync Changelog

v1.7 - added support for regular expressions in librarian json when building collections with LibrarianSync.
v1.6 - fixed exporting collections, added downloading ebooks hosted over http by librarian.
v1.5 - package available for all k5 models.
v1.4 - updating collections is now faster.
v1.3 - calibre plugin json support & ability to export current collections (librarian and calibre plugin versions). While running the script, current operation now logged and displayed.
v1.2 - experimental calibre plugin json support & ability to export current collections to extensions/exported_collections.json.
v1.1 - experimental calibre plugin json support
v1.0 - original version
Attached Thumbnails
Click image for larger version

Name:	librariansync_v1.6.png
Views:	175
Size:	21.8 KB
ID:	128575  
Attached Files
File Type: gz librariansync-1.0.tar.gz (7.0 KB, 28 views)
File Type: gz librariansync-1.1.tar.gz (7.4 KB, 18 views)
File Type: gz librariansync-1.2.tar.gz (8.0 KB, 24 views)
File Type: gz librariansync-1.3.tar.gz (10.6 KB, 26 views)
File Type: gz librariansync-1.4.tar.gz (10.9 KB, 69 views)
File Type: gz librariansync-1.5.tar.gz (11.4 KB, 23 views)
File Type: gz librariansync-1.6.tar.gz (12.4 KB, 61 views)
File Type: gz librariansync-1.7.tar.gz (12.7 KB, 121 views)

Last edited by barsanuphe; 09-27-2014 at 07:08 AM. Reason: LibrarianSync updated
barsanuphe is offline   Reply With Quote
Old 08-22-2014, 09:02 PM   #2
knc1
Helpdesk Junkie
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 6,669
Karma: 5850002
Join Date: Feb 2012
Device: Too many.
Quote:
Originally Posted by barsanuphe View Post
Thanks to all the (old but still relevant) information in this thread I managed to write a python script to automatically generate collections on my pw2.
Instead of looking at the files or directory structure, it uses information in a json file to create and populate collections. This way it's possible to manage collections just with one simple text file, such as:



In case someone might find this helpful, the script and KUAL menu entry can be found at https://github.com/barsanuphe/librar.../librariansync.
Thanks for this.

It comes at a good time, since the interactive Collection Manager is not (yet) ported to all of the PW2 firmware / hardware combinations.

Note:
I think this will also work on other models of Kindles - that DB probably doesn't (didn't) change that often.
knc1 is offline   Reply With Quote
Old 08-24-2014, 04:43 AM   #3
barsanuphe
Enthusiast
barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.
 
Posts: 41
Karma: 36028
Join Date: Aug 2014
Location: Paris, France
Device: PW2
Yes, I guess it should work with other models, after all this thread was originally about the Kindle Touch. I only have a pw2 (EU), so I can't verify that. If anyone is willing to try it on a different model, feedback would be welcome.

Also, I updated the script and KUAL menu to allow for incremental collection updates, that do not rebuild all collections but merely add the json entries into existing or new collections.
barsanuphe is offline   Reply With Quote
Old 08-24-2014, 07:08 PM   #4
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 4,969
Karma: 4501011
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW & PW2
@barsanuphe: I'll probably get my ass in gear and bundle the sqlite3 & requests Python modules in the next snapshots, FYI; that should hopefully let you get rid of the curl & sqlite3 forks.

EDIT: Done .

Last edited by NiLuJe; 08-26-2014 at 08:10 PM.
NiLuJe is online now   Reply With Quote
Old 08-24-2014, 07:55 PM   #5
knc1
Helpdesk Junkie
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 6,669
Karma: 5850002
Join Date: Feb 2012
Device: Too many.
The Amazon Lua install includes the sqlite and json add-on libraries as I recall (at least on the PW1, I think on the KT also, PW2 is unknown).

If someone wanted to get ambitious, they could re-write this in Lua and avoid any add-in support packages.

The same code (and libraries) shipped by Amazon can also be run by the ARMhf Luajit if the user had those installed.

- - - -

Just a thought -
Not something I have time to do.
And twobob is still off, dealing with "life".
knc1 is offline   Reply With Quote
Old 08-28-2014, 08:01 PM   #6
barsanuphe
Enthusiast
barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.
 
Posts: 41
Karma: 36028
Join Date: Aug 2014
Location: Paris, France
Device: PW2
Quote:
Originally Posted by NiLuJe View Post
@barsanuphe: I'll probably get my ass in gear and bundle the sqlite3 & requests Python modules in the next snapshots, FYI; that should hopefully let you get rid of the curl & sqlite3 forks.

EDIT: Done .
Great! I hadn't seen your update. I updated my script to use the new modules.
I didn't know the requests module, it's pretty nifty.
barsanuphe is offline   Reply With Quote
Old 08-28-2014, 08:57 PM   #7
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 4,969
Karma: 4501011
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW & PW2
@barsanuphe: That was fast ^^.

Yep, requests is great . Did the switch affect performance in any measurable way?
NiLuJe is online now   Reply With Quote
Old 08-29-2014, 01:13 AM   #8
kaznelson
Zealot
kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.
 
kaznelson's Avatar
 
Posts: 103
Karma: 744867
Join Date: May 2010
Location: Moscow
Device: PW2
barsanuphe
Whether it's possible to make "lite" version?
To create collections on folders names (without metainfo), and worked ONLY on Kindle? (without computer)
kaznelson is offline   Reply With Quote
Old 08-29-2014, 05:23 AM   #9
barsanuphe
Enthusiast
barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.
 
Posts: 41
Karma: 36028
Join Date: Aug 2014
Location: Paris, France
Device: PW2
@NiLuJe:

I have not looked at the performance aspect yet, and am testing with only a few ebooks on my Kindle. I expect it to be faster though, but couldn't tell you by how much. Also, all operations are now sent in a single POST request, which should help too.

@kaznelson:

I updated the script and added a new entry in the KUAL menu to that effect. You should now be able to create collections from your folder structure, without json file. The collection name is the path of each ebook (without filename), relative to /mnt/us/documents.

ie if you have "/mnt/us/documents/sf/franck herbert/dune/dune.epub", the collection name will be "sf/franck herbert/dune".

I tried earlier to make nested collections, but I found only top collections are displayed on my Kindle. A subcollection can be added to a collection but does not show up on the interface. Reading through the Collection Manager thread, it seems it's a firmware issue...
barsanuphe is offline   Reply With Quote
Old 08-29-2014, 09:44 AM   #10
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 4,969
Karma: 4501011
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW & PW2
@barsanuphe: Yup, nesting was broken in FW 5.4.2, and it hasn't resurfaced since.

I was thinking of using this with the Calibre Kindle Collections plugin, most likely by making it understand the json schema used by the plugin, since the plugin already takes care of a number of sanity checks (namely the uuid/ASIN handling of each book).

FWIW, the schema is as follows:

Code:
{
	"<CollectionName>@<Language>":
	{
		"items":
		[
			"<hash>"
		],
		"lastAccess": <epoch>
	}
}
So, as an example with a few different types of hash, that would look something like:

Code:
{
	"Apps@en-US":
	{
		"items":
		[
			"#B006VZUZV2^AZW2"
		],
		"lastAccess": 1344387337000
	},
	"Brandon Sanderson@en-US":
	{
		"items":
		[
			 "*c98b6567481d950dccad195379053e2539f1d75c",
			 "#12e45a36-0410-4caf-b32d-dc807713d8e9^EBOK"
		],
		"lastAccess": 1234567889976
	}
}
(The indentation is all mine, for formatting purposes only).

Last edited by NiLuJe; 08-29-2014 at 07:01 PM.
NiLuJe is online now   Reply With Quote
Old 08-29-2014, 12:35 PM   #11
kaznelson
Zealot
kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.
 
kaznelson's Avatar
 
Posts: 103
Karma: 744867
Join Date: May 2010
Location: Moscow
Device: PW2
barsanuphe
Thanks, it work.

Two small adding:

1) File generate_collections.py, line 53: [".epub", ".mobi", ".azw3"]
Amazon books standard formats: [".azw", ".azw3", ".mobi", ".prc", ".pdf", ".txt"]

2) Books from /mnt/us/documents/ are added in collection "root" - is incorrect, imho.
kaznelson is offline   Reply With Quote
Old 08-29-2014, 04:03 PM   #12
barsanuphe
Enthusiast
barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.barsanuphe can successfully navigate the Paris bus system.
 
Posts: 41
Karma: 36028
Join Date: Aug 2014
Location: Paris, France
Device: PW2
@NiLuJe
I'm not familiar with the calibre plugin, where do the items hashes come from? Are they generated by the plugin (which means they would have to be created on the kindle) or are they extracted from the Kindle db?

@kaznelson
1) updated with your list
2) books in documents/ are now ignored. I agree the root collection made no sense
barsanuphe is offline   Reply With Quote
Old 08-29-2014, 06:57 PM   #13
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 4,969
Karma: 4501011
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW & PW2
@barsanuphe: It's in fact the original format used by the Collections feature on Kindles before FW 5.x came along .

The hash is generated (in this instance, by the plugin) from the metadata of the file, it follows the format '#ASIN^cdeType' if an ASIN is set [valid, like in my Apps exemple, or invalid [Calibre generated], like in the second collection. If the ASIN isn't set, it's formatted as '*hash', where hash is the md5 of the absolute path of the file (using /mnt/us as the userstore root).
As for the cdeType, I *think* it's mandatory for a file to be valid/collectionable, and if it isn't, I'm assuming that defaults to EBOK or PDOC.
Anyway, the plugin handles that aspect to make sure that what's end up in the json is sane.

On FW 5.x, in the SQLite db, those are stored in two distinct fields, as p_cdeKey & p_cdeType in the Entries table, and i_member_cde_type & i_member_cde_key in the Collections table, with the notable difference that the '#' is *NOT* present anymore in front of the ASIN (the '*' of the legacy hashes stays, though).

TL;DR: You can get the db uuid of an item from the db w/ these .

Last edited by NiLuJe; 08-29-2014 at 07:06 PM.
NiLuJe is online now   Reply With Quote
Old 08-30-2014, 08:45 AM   #14
kaznelson
Zealot
kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.kaznelson ought to be getting tired of karma fortunes by now.
 
kaznelson's Avatar
 
Posts: 103
Karma: 744867
Join Date: May 2010
Location: Moscow
Device: PW2
Experiments with collections (excuse for my english ).

To collections created with LibSync, it's impossible to standardly add books without problems.
Possible to open "Add to Collections" screen, but after a book "check" and press "Done" - my Kindle don't exit on "Home" screen! Only reboot.
Also automatically added books don't hide from "Home" screen, if are added in a LibSync collections.

I compared cc.db, created standardly offline and LibSync:
p_type "Collection" (collections)
Code:
Original file cc.db:				LibSync file cc.db:
p_isArchived = 1				p_isArchived = 0
j_collections = NULL				j_collections = []
p_collectionCount = NULL			p_collectionCount = 0
p_collectionDataSetName = <p_uuid from cc.db>	p_collectionDataSetName = 0
p_type "Entry:Item" (books)
Code:
Original file cc.db:			LibSync file cc.db:
p_collectionCount = 1			p_collectionCount = 0
Also LibSync don't fill a file wsync.db. At standard offline creation of a collection with name "Misc":

In table DataSetProperties string is added
Code:
CloudCollections.Items<p_uuid from cc.db>	<p_uuid from cc.db>	CloudCollections.Items	<...and more...>
In table SyncRecords string is added
Code:
CloudCollectionsCollectionEntries<p_uuid from cc.db>	CloudCollectionsCollectionEntries	<p_uuid from cc.db>	"{""type"":""BOOKS"",""title"":""Misc"",""sortTitle"":""Misc"",""phoneticTitle"":""Misc"",""language"":""en-GB"",""version"":""1.0""}"	<...and more...>
________________________________________

In LibSync collections +wsync.db i made these changes manually (by SQLiteStudio). After reboot - errors disappeared.

I don't know, all is necessary or not. But possibly it's necessary to fill wsync.db and to specify uuid collections in a column p_collectionDataSetName (cc.db).

And probably, collection locale should take from system locale (en-US or...)

Last edited by kaznelson; 08-30-2014 at 09:37 AM.
kaznelson is offline   Reply With Quote
Old 08-30-2014, 09:17 AM   #15
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 4,969
Karma: 4501011
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW & PW2
@kaznelson: That vaguely reminds me of a similar user report w/ CM... Does CM do it 'properly'?

Last edited by NiLuJe; 08-30-2014 at 09:50 AM.
NiLuJe is online now   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Kindle Collections & News jolee217 Library Management 1 07-02-2011 05:32 PM
Calibre & Kindle DX Collections deborakaye Calibre 4 08-05-2010 03:13 PM


All times are GMT -4. The time now is 08:59 PM.


MobileRead.com is a privately owned, operated and funded community.