Dont use bulk property retrieval for Nook Glowlight 4N

See discussion in: https://bugs.launchpad.net/calibre/+bug/2068527
This commit is contained in:
Kovid Goyal 2025-01-25 09:52:30 +05:30
parent 66cf52e1c6
commit 968acc0a83
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -280,10 +280,22 @@ get_device_information(const wchar_t *pnp_id, CComPtr<IPortableDevice> &device,
}
}
Py_BEGIN_ALLOW_THREADS;
hr = properties->QueryInterface(IID_PPV_ARGS(&pb));
Py_END_ALLOW_THREADS;
PyDict_SetItemString(ans, "has_bulk_properties", (FAILED(hr)) ? Py_False: Py_True);
bool is_buggy_piece_of_shit_device = false;
PyObject *q = PyDict_GetItemString(ans, "manufacturer_name");
if (q && PyUnicode_CompareWithASCIIString(q, "BarnesAndNoble") == 0) {
q = PyDict_GetItemString(ans, "model_name");
if (q && PyUnicode_CompareWithASCIIString(q, "BNRV1300") == 0) is_buggy_piece_of_shit_device = true;
}
if (is_buggy_piece_of_shit_device) {
PyDict_SetItemString(ans, "has_bulk_properties", Py_False);
pb = NULL;
} else {
Py_BEGIN_ALLOW_THREADS;
hr = properties->QueryInterface(IID_PPV_ARGS(&pb));
Py_END_ALLOW_THREADS;
PyDict_SetItemString(ans, "has_bulk_properties", (FAILED(hr)) ? Py_False: Py_True);
}
return ans;
} // }}}