Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support GoogleDrive #167

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions res/doc
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,9 @@
# library:shelves - Collections
# library:pocket - Articles
# library:dropbox - Dropbox (4.18.13737+)
# library:gdrive - GoogleDrive (4.18.13737+) Also modify the '.kobo/Kobo/Kobo eReader.conf' with:
# googledrive_link_account_start=https://authorize.kobo.com/{region}/{language}/linkcloudstorage/provider/google_drive
# kobo_googledrive_link_account_enabled=True
# reading_life:reading_life - Activity (with last tab)
# reading_life:stats - Activity
# reading_life:awards - Awards
Expand Down
29 changes: 29 additions & 0 deletions src/action_cc.cc
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,34 @@ NM_ACTION_(nickel_open) {
return nm_action_result_silent();
}

if (!strcmp(arg1, "library") && !strcmp(arg2, "gdrive")) {
//libnickel 4.23.15505 * _ZN14MoreControllerC1Ev
MoreController *(*MoreController__MoreController)(MoreController* _this);
NM_ACT_XSYM(MoreController__MoreController, "_ZN14MoreControllerC1Ev", "could not dlsym MoreController::MoreController");

//libnickel 4.23.15505 * _ZN14MoreController11googleDriveEv
void (*MoreController_gdrive)(MoreController* _this);
NM_ACT_XSYM(MoreController_gdrive, "_ZN14MoreController11googleDriveEv", "could not dlsym MoreController::gdrive");

//libnickel 4.23.15505 * _ZN14MoreControllerD0Ev
MoreController *(*MoreController__deMoreController)(MoreController* _this);
NM_ACT_XSYM(MoreController__deMoreController, "_ZN14MoreControllerD0Ev", "could not dlsym MoreController::~MoreController");

// As of at least 16704, maybe earlier, a MoreController is required.
// It seems 44 bytes is required, over allocate to be on the safe side
MoreController *mc = reinterpret_cast<MoreController*>(::operator new(128));
NM_CHECK(nullptr, mc, "could not allocate memory for MoreController");
mc = MoreController__MoreController(mc);
NM_CHECK(nullptr, mc, "MoreController::MoreController returned null pointer");

MoreController_gdrive(mc);

// Clean up after ourselves
MoreController__deMoreController(mc);

return nm_action_result_silent();
}

NM_LOG("nickel_open: no special handling needed for '%s:%s' on fw >15505", arg1, arg2);
}

Expand All @@ -127,6 +155,7 @@ NM_ACTION_(nickel_open) {
else if (!strcmp(arg2, "shelves")) sym_f = "_ZN15LibraryNavMixin11showShelvesEv"; //libnickel 4.6 * _ZN15LibraryNavMixin11showShelvesEv
else if (!strcmp(arg2, "pocket")) sym_f = "_ZN15LibraryNavMixin17showPocketLibraryEv"; //libnickel 4.6 * _ZN15LibraryNavMixin17showPocketLibraryEv
else if (!strcmp(arg2, "dropbox")) sym_f = "_ZN15LibraryNavMixin11showDropboxEv"; //libnickel 4.18.13737 4.22.15268 _ZN15LibraryNavMixin11showDropboxEv
else if (!strcmp(arg2, "gdrive")) sym_f = "_ZN14MoreController11googleDriveEv"; //libnickel 4.18.13737 4.22.15268 _ZN14MoreController11googleDriveEv
} else if (!strcmp(arg1, "reading_life")) {
sym_c = "_ZN19ReadingLifeNavMixinC1Ev"; //libnickel 4.6 * _ZN19ReadingLifeNavMixinC1Ev
sym_d = "_ZN19ReadingLifeNavMixinD1Ev"; //libnickel 4.6 * _ZN19ReadingLifeNavMixinD1Ev
Expand Down
Loading