mirror of
https://github.com/Leseratte10/acsm-calibre-plugin.git
synced 2024-12-22 09:19:55 +06:00
Add debugging and readme note for LoanReturn on ACS6 servers
This commit is contained in:
parent
4448963fff
commit
396f0cfad0
@ -38,6 +38,10 @@ See the "LICENSE" file for a full copy of the GNU GPL v3.
|
|||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
|
||||||
|
## Known bugs
|
||||||
|
|
||||||
|
- Returning an eBook to a library running Adobe Content Server 6 (ACS6) or newer will fail. The plugin will claim the book return was successful, but the book won't be marked as returned on the libraries' servers. This will hopefully be fixed with the next version of the plugin - I already dumped a bunch of logs from ADE so I know what my plugin is missing, now I just need to implement the fix and see if it works. It might be a good idea to stop returning books with the current version of the plugin, as that'd be a difference that the libraries could detect as doing something weird, if they're using ACS6.
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
Download the plugin and import it into Calibre, then open the plugin settings. The plugin should display "Not authorized for any ADE ID". You now have multiple options to authorize the plugin:
|
Download the plugin and import it into Calibre, then open the plugin settings. The plugin should display "Not authorized for any ADE ID". You now have multiple options to authorize the plugin:
|
||||||
|
@ -567,6 +567,17 @@ def updateLoanReturnData(fulfillmentResultToken):
|
|||||||
|
|
||||||
|
|
||||||
def tryReturnBook(bookData):
|
def tryReturnBook(bookData):
|
||||||
|
|
||||||
|
|
||||||
|
verbose_logging = False
|
||||||
|
try:
|
||||||
|
import calibre_plugins.deacsm.prefs as prefs
|
||||||
|
deacsmprefs = prefs.DeACSM_Prefs()
|
||||||
|
verbose_logging = deacsmprefs["detailed_logging"]
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
user = bookData["user"]
|
user = bookData["user"]
|
||||||
loanID = bookData["loanID"]
|
loanID = bookData["loanID"]
|
||||||
@ -600,7 +611,8 @@ def tryReturnBook(bookData):
|
|||||||
|
|
||||||
print("Would notify server %s:" % (operatorURL + "/LoanReturn"))
|
print("Would notify server %s:" % (operatorURL + "/LoanReturn"))
|
||||||
doc_send = "<?xml version=\"1.0\"?>\n" + etree.tostring(full_text_xml, encoding="utf-8", pretty_print=True, xml_declaration=False).decode("utf-8")
|
doc_send = "<?xml version=\"1.0\"?>\n" + etree.tostring(full_text_xml, encoding="utf-8", pretty_print=True, xml_declaration=False).decode("utf-8")
|
||||||
# print(doc_send)
|
if verbose_logging:
|
||||||
|
print(doc_send)
|
||||||
|
|
||||||
|
|
||||||
retval = sendRequestDocu(doc_send, operatorURL + "/LoanReturn").decode("utf-8")
|
retval = sendRequestDocu(doc_send, operatorURL + "/LoanReturn").decode("utf-8")
|
||||||
@ -610,6 +622,8 @@ def tryReturnBook(bookData):
|
|||||||
return False, retval
|
return False, retval
|
||||||
elif "<envelope" in retval:
|
elif "<envelope" in retval:
|
||||||
print("Loan return successful")
|
print("Loan return successful")
|
||||||
|
if verbose_logging:
|
||||||
|
print(retval)
|
||||||
bl, txt = performFulfillmentNotification(etree.fromstring(retval), True, user=user, device=device)
|
bl, txt = performFulfillmentNotification(etree.fromstring(retval), True, user=user, device=device)
|
||||||
if not bl:
|
if not bl:
|
||||||
print("Error while notifying of book return. Book's probably still been returned properly.")
|
print("Error while notifying of book return. Book's probably still been returned properly.")
|
||||||
@ -622,6 +636,14 @@ def tryReturnBook(bookData):
|
|||||||
|
|
||||||
def performFulfillmentNotification(fulfillmentResultToken, forceOptional = False, user = None, device = None):
|
def performFulfillmentNotification(fulfillmentResultToken, forceOptional = False, user = None, device = None):
|
||||||
|
|
||||||
|
verbose_logging = False
|
||||||
|
try:
|
||||||
|
import calibre_plugins.deacsm.prefs as prefs
|
||||||
|
deacsmprefs = prefs.DeACSM_Prefs()
|
||||||
|
verbose_logging = deacsmprefs["detailed_logging"]
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
NSMAP = { "adept" : "http://ns.adobe.com/adept" }
|
NSMAP = { "adept" : "http://ns.adobe.com/adept" }
|
||||||
adNS = lambda tag: '{%s}%s' % ('http://ns.adobe.com/adept', tag)
|
adNS = lambda tag: '{%s}%s' % ('http://ns.adobe.com/adept', tag)
|
||||||
|
|
||||||
@ -760,6 +782,10 @@ def performFulfillmentNotification(fulfillmentResultToken, forceOptional = False
|
|||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
if verbose_logging:
|
||||||
|
print("MSG:")
|
||||||
|
print(msg)
|
||||||
|
|
||||||
if "<error" in msg:
|
if "<error" in msg:
|
||||||
print("Fulfillment notification error: %s" % (msg))
|
print("Fulfillment notification error: %s" % (msg))
|
||||||
errmsg += "ERROR\n" + url + "\n" + msg + "\n\n"
|
errmsg += "ERROR\n" + url + "\n" + msg + "\n\n"
|
||||||
|
Loading…
Reference in New Issue
Block a user