Philantrop / calibre-marvin-manager

A calibre User Interface Action plugin supporting Marvin
6 stars 6 forks source link

Error communicating with device when exporting from Calibre to Marvin #29

Closed justacat closed 10 years ago

justacat commented 10 years ago

Immediately after right-clicking on a number of yellow rows in the XD plugin and selecting "export metadata from calibre to Marvin," I then try to re-send a book that is already in Marvin from the calibre library to Marvin (I have the plugin configured to update metadata when I do that), and I get "Error communicating with device":

calibre, version 1.16.0 ERROR: Error: Error communicating with device

'NoneType' object is not iterable

Traceback (most recent call last): File "site-packages\calibre\gui2\device.py", line 85, in run File "site-packages\calibre\gui2\device.py", line 572, in _upload_books File "C:\DOCUME~1\Jessica\LOCALS~1\Temp\calibre_q_obj2\bs7i9s_ios_local_db\Marvin_overlays.py", line 1250, in upload_books File "C:\DOCUME~1\Jessica\LOCALS~1\Temp\calibre_q_obj2\bs7i9s_ios_local_db\Marvin_overlays.py", line 2001, in _schedule_metadata_update TypeError: 'NoneType' object is not iterable

There is no error when I send a book from calibre that is not already in Marvin. Also, there is no error if I configure the ios reader applications plugin to "replace" when I send a book already in Marvin. That works fine. The error message seems to occur only when I send a book from calibre that is already in Marvin, and the plugin is configured to update metadata.

The error started happening immediately after the very first time I used v.1.3.1 of the XD plugin. But it's happening when I try to send any and every book already on the device from calibre to Marvin, not just those for which I had used the XD plugin to update metadata (by selecting "export metadata from calibre to Marvin" for a number of yellow-highlighted items).

I am using an iPad with ios6. calibre v.1.16.0 on Windows XP, Marvin XD plugin v. 1.1.0, ios Reader Application plugin v.1.3.1, Marvin v.2.1.5

I have attempted to find a solution, and have:

I do not intend to completely restore my system software to its factory settings (which would have been ios5), mostly because I want to stay with ios6 and not move to 7, and I don't feel like going through contortions to try to make that happen.

However, I would really like to be able to send books from calibre to Marvin again with the ios reader applications plugin configured to update metadata, whether or not I can use the XD plugin.

GRiker commented 10 years ago

Sorry to hear you're experiencing problems with the plugin. It sounds like you have tried the existing recommendations to resolve the error, but I'll repeat them here just in case.

GRiker commented 10 years ago

One other thing to try - On your iPad. Go to Settings - General - Reset - Reset network settings. Please report back if that works for you.

justacat commented 10 years ago

This did not work for me. I've done everything you've said, and nothing has worked. I feel like some sort of response other than "restore your iPad" is called for - there is clearly a bug in this plugin, and it needs to be fixed. Resetting the iPad is not a solution - what do I do when it happens again, keep resetting and restoring? That's not a workable or reasonable approach - no user should have to repeatedly reset a device in order for a plugin to work correctly. Is there any attempt being made to fix this issue so no restoring of ios is required?

GRiker commented 10 years ago

Unfortunately I am unable to recreate the problem on nine different iDevices that I have tested with (including iOS 5, 6 and 7), so I can only tell you what has worked for others. Other users have been able to resolve the connection errors by restoring iOS - here's an example, and another.

From what I've been able to infer from other users reporting similar problems, it's some sort of internal iOS state that can sometimes be reset through the steps I outlined for you, but sometimes requires restoring. I've consulted with other developers using the same communications library the plugin relies on (libiMobileDevice) and they recommend the same steps. Apple doesn't publish anything about the internals of iOS, making it quite difficult to debug communications libraries.

I know you don't want to restore iOS as it will upgrade you to iOS 7. There's nothing else I can do at this point. I'll close this issue as it appears it won't be resolved to your satisfaction.