jvolkening / gloc Goto Github PK
View Code? Open in Web Editor NEWGNU/Linux Overdrive/EMusic Client
License: GNU General Public License v3.0
GNU/Linux Overdrive/EMusic Client
License: GNU General Public License v3.0
Attempting to use "GNU/Linux OverDrive/eMusic Client 0.600" to download audio for the first time after just downloading it now. After opening the odm file I just downloaded from overdrive, I get a list of 6 files to download, with all of them automatically selected. If I hit "Start Download" I get the following error:
"There was an error fetching the license for this book"
I also see the message "Redundant argument in subroutine entry at ./gloc line 1407" in my terminal, but from looking at the code, that appears to be a side effect, and not the cause of my error.
If I go to File->License Info, The license details show "Yes" or "Unlimited" for all fields except Expiration Date which says "March 11, 2017 13:53:20"
I downloaded a file from overdrive with the following raw text:
<?xml version="1.0"?>
<OverDriveMedia ...>
<License>...</License>
<![CDATA[<Metadata> ... <Subjects> ... <Subject id="74">Religion & Spirituality</Subject> ...
The CDATA section contains an unescaped ampersand in the subject tag, causing a parsing exception in gloc
, which is visible in the terminal:
*** unhandled exception in callback:
***
*** not well-formed (invalid token) at line 1, column 770, byte 770 at /usr/lib/x86_64-linux-gnu/perl5/5.30/XML/Parser.pm line 187.
*** XML::Simple called at /usr/local/bin/gloc line 1029.
*** ignoring at /usr/share/perl5/Gtk3.pm line 572.
A quick workaround was to remove the & in "Religion & Spirituality", after which gloc
downloaded the audiobook just fine. Note that "column 770" is counted from the beginning of the CDATA section, not from the beginning of the file.
In addition, the unhandled exception makes gloc
unable to open other .odm
files and the "open audiobook descriptor file" dialogue cannot be closed. You can still close gloc
through the main window.
I hope this is helpful to others.
It appears that eMusic (now under eStories for audiobooks) is no longer using the same format for downloads. The website now serves a zip file from the user's web library as a direct download.
Given this, it probably makes sense to remove eMusic support from the codebase. This will significantly simplify some parts of the code.
I know this is not an issue, but thank you so much for this.
I have an ODM that is missing the narrator field. When this happens, the program crashes with the following error message:
undefined value for mandatory argument 'str' encountered at /usr/local/bin/gloc line 1236.
However, I was able to comment out that line and proceed with my download:
# update display
$info_labels{Duration}->set_text( $book->{duration} );
$info_labels{Title}->set_text( $book->{title} );
$info_labels{Author}->set_text( $book->{author} );
- $info_labels{Narrator}->set_text( $book->{narrator} );
+ #$info_labels{Narrator}->set_text( $book->{narrator} );
$info_labels{Publisher}->set_text($book->{publisher});
$info_labels{Expires}->set_text( $book->{exp_date} );
I don't know perl well enough to try making that an optional field, so I hope this helps. Not sure of the legality of sharing fill odm files, but I looked at the XML inside and found that there was only one <Creator>
tag, with the role of "author". Nothing for Narrator, as I saw in other files that did work.
Thanks for making this! I'm really glad not to have to borrow a computer when I download an audiobook :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.