Compare commits

...

8 Commits

10 changed files with 36 additions and 15 deletions
+1 -1
View File
@@ -54,7 +54,7 @@ $(BUILDDIR)/%.$(OBJEXT): $(SRCDIR)/%.$(SRCEXT)
libgourou: libgourou.a libgourou.so libgourou: libgourou.a libgourou.so
libgourou.a: $(OBJECTS) libgourou.a: $(OBJECTS)
$(AR) crs $@ obj/*.o $(LDFLAGS) $(AR) crs $@ obj/*.o ./lib/updfparser/obj/*.o
libgourou.so: $(OBJECTS) $(UPDFPARSERLIB) libgourou.so: $(OBJECTS) $(UPDFPARSERLIB)
$(CXX) obj/*.o $(LDFLAGS) -o $@ -shared $(CXX) obj/*.o $(LDFLAGS) -o $@ -shared
+3 -3
View File
@@ -27,19 +27,19 @@ Utils
You can import configuration from your eReader or create a new one with utils/activate : You can import configuration from your eReader or create a new one with utils/activate :
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD
./utils/activate -u <AdobeID USERNAME> ./activate -u <AdobeID USERNAME>
Then a _./.adept_ directory is created with all configuration file Then a _./.adept_ directory is created with all configuration file
To download an ePub/PDF : To download an ePub/PDF :
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD
./utils/acsmdownloader -f <ACSM_FILE> ./acsmdownloader -f <ACSM_FILE>
To export your private key : To export your private key :
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD
./utils/acsmdownloader --export-private-key [-o adobekey_1.der] ./acsmdownloader --export-private-key [-o adobekey_1.der]
Sources Sources
+7
View File
@@ -34,6 +34,12 @@ namespace gourou
class FulfillmentItem class FulfillmentItem
{ {
public: public:
/**
* @brief Main constructor. Not to be called by user
*
* @param doc Fulfill reply
* @param user User pointer
*/
FulfillmentItem(pugi::xml_document& doc, User* user); FulfillmentItem(pugi::xml_document& doc, User* user);
/** /**
@@ -59,6 +65,7 @@ namespace gourou
std::string getResource(); std::string getResource();
private: private:
pugi::xml_document fulfillDoc;
pugi::xml_node metadatas; pugi::xml_node metadatas;
pugi::xml_document rights; pugi::xml_document rights;
std::string downloadURL; std::string downloadURL;
+1 -1
View File
@@ -40,7 +40,7 @@
#define ACS_SERVER "http://adeactivate.adobe.com/adept" #define ACS_SERVER "http://adeactivate.adobe.com/adept"
#endif #endif
#define LIBGOUROU_VERSION "0.4.1" #define LIBGOUROU_VERSION "0.4.3"
namespace gourou namespace gourou
{ {
+3 -1
View File
@@ -24,8 +24,10 @@
namespace gourou namespace gourou
{ {
FulfillmentItem::FulfillmentItem(pugi::xml_document& doc, User* user) FulfillmentItem::FulfillmentItem(pugi::xml_document& doc, User* user)
: fulfillDoc()
{ {
metadatas = doc.select_node("//metadata").node(); fulfillDoc.reset(doc); /* We must keep a copy */
metadatas = fulfillDoc.select_node("//metadata").node();
if (!metadatas) if (!metadatas)
EXCEPTION(FFI_INVALID_FULFILLMENT_DATA, "No metadata tag in document"); EXCEPTION(FFI_INVALID_FULFILLMENT_DATA, "No metadata tag in document");
+5 -1
View File
@@ -599,7 +599,11 @@ namespace gourou
std::string rightsStr = item->getRights(); std::string rightsStr = item->getRights();
if (headers.count("Content-Type") && headers["Content-Type"] == "application/pdf") if (item->getMetadata("format").find("application/pdf") != std::string::npos)
res = PDF;
if (headers.count("Content-Type") &&
headers["Content-Type"].find("application/pdf") != std::string::npos)
res = PDF; res = PDF;
if (res == EPUB) if (res == EPUB)
+6 -3
View File
@@ -2,9 +2,12 @@
TARGETS=acsmdownloader adept_activate TARGETS=acsmdownloader adept_activate
CXXFLAGS=-Wall `pkg-config --cflags Qt5Core Qt5Network` -fPIC -I$(ROOT)/include -I$(ROOT)/lib/pugixml/src/ CXXFLAGS=-Wall `pkg-config --cflags Qt5Core Qt5Network` -fPIC -I$(ROOT)/include -I$(ROOT)/lib/pugixml/src/
STATIC_DEP=
LDFLAGS=`pkg-config --libs Qt5Core Qt5Network` -L$(ROOT) -lcrypto -lzip -lz LDFLAGS=`pkg-config --libs Qt5Core Qt5Network` -L$(ROOT) -lcrypto -lzip -lz
ifneq ($(STATIC_UTILS),) ifneq ($(STATIC_UTILS),)
LDFLAGS += $(ROOT)/libgourou.a STATIC_DEP = $(ROOT)/libgourou.a
else else
LDFLAGS += -lgourou LDFLAGS += -lgourou
endif endif
@@ -17,10 +20,10 @@ endif
all: $(TARGETS) all: $(TARGETS)
acsmdownloader: drmprocessorclientimpl.cpp acsmdownloader.cpp acsmdownloader: drmprocessorclientimpl.cpp acsmdownloader.cpp $(STATIC_DEP)
$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@ $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@
adept_activate: drmprocessorclientimpl.cpp adept_activate.cpp adept_activate: drmprocessorclientimpl.cpp adept_activate.cpp $(STATIC_DEP)
$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@ $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@
clean: clean:
+5
View File
@@ -105,6 +105,11 @@ public:
filename = item->getMetadata("title"); filename = item->getMetadata("title");
if (filename == "") if (filename == "")
filename = "output"; filename = "output";
else
{
// Remove invalid characters
std::replace(filename.begin(), filename.end(), '/', '_');
}
} }
else else
filename = outputFile; filename = outputFile;
+1 -1
View File
@@ -116,7 +116,7 @@ std::string DRMProcessorClientImpl::sendHTTPRequest(const std::string& URL, cons
if (location.size() != 0) if (location.size() != 0)
{ {
GOUROU_LOG(gourou::DEBUG, "New location"); GOUROU_LOG(gourou::DEBUG, "New location");
return sendHTTPRequest(location.constData(), POSTData, contentType); return sendHTTPRequest(location.constData(), POSTData, contentType, responseHeaders);
} }
if (reply->error() != QNetworkReply::NoError) if (reply->error() != QNetworkReply::NoError)