Code Monkey home page Code Monkey logo

gdriveooo's Introduction

gDriveOOo logo Documentation

Ce document en français.

The use of this software subjects you to our Terms Of Use and Data Protection Policy.

version 1.1.1

Introduction:

gDriveOOo is part of a Suite of LibreOffice and/or OpenOffice extensions allowing to offer you innovative services in these office suites.

This extension allows you to work in LibreOffice on your files on your phone (files that you have downloaded to your Android phone), even while offline.
It uses Google Drive API to synchronize your remote Google Drive files with the help of a local HsqlDB 2.7.2 database.
This extension is seen by LibreOffice as a Content Provider responding to the URL: vnd-google://*.

Being free software I encourage you:

  • To duplicate its source code.
  • To make changes, corrections, improvements.
  • To open issue if needed.

In short, to participate in the development of this extension. Because it is together that we can make Free Software smarter.


Requirement:

The gDriveOOo extension uses the OAuth2OOo extension to work.
It must therefore meet the requirement of the OAuth2OOo extension.

The gDriveOOo extension uses the jdbcDriverOOo extension to work.
It must therefore meet the requirement of the jdbcDriverOOo extension.

On Linux and macOS the Python packages used by the extension, if already installed, may come from the system and therefore may not be up to date.
To ensure that your Python packages are up to date it is recommended to use the System Info option in the extension Options accessible by:
Tools -> Options -> Internet -> gDriveOOo -> View log -> System Info
If outdated packages appear, you can update them with the command:
pip install --upgrade <package-name>

For more information see: What has been done for version 1.1.0.


Installation:

It seems important that the file was not renamed when it was downloaded.
If necessary, rename it before installing it.

  • OAuth2OOo logo Install OAuth2OOo.oxt extension Version

    You must first install this extension, if it is not already installed.

  • jdbcDriverOOo logo Install jdbcDriverOOo.oxt extension Version

    You must install this extension, if it is not already installed.

  • gDriveOOo logo Install gDriveOOo.oxt extension Version

Restart LibreOffice after installation.
Be careful, restarting LibreOffice may not be enough.

  • On Windows to ensure that LibreOffice restarts correctly, use Windows Task Manager to verify that no LibreOffice services are visible after LibreOffice shuts down (and kill it if so).
  • Under Linux or macOS you can also ensure that LibreOffice restarts correctly, by launching it from a terminal with the command soffice and using the key combination Ctrl + C if after stopping LibreOffice, the terminal is not active (no command prompt).

Use:

Open your Google Drive:

In File -> Open enter in the first drop-down list:

or

  • For an unnamed Url (anonymous): vnd-google:///

And validate not by the Open button but by the Enter key.

If you don't give [email protected], you will be asked for...

Anonymous Urls allow you to remain anonymous (your account does not appear in the Url) while named Urls allow you to access several accounts simultaneously.

After authorizing the OAuth2OOo application to access your Drive files, your Google Drive should open!!! normally 😉


Has been tested with:

  • LibreOffice 7.3.7.2 - Lubuntu 22.04 - Python version 3.10.12

  • LibreOffice 7.5.4.2(x86) - Windows 10 - Python version 3.8.16 (under Lubuntu 22.04 / VirtualBox 6.1.38)

  • LibreOffice 7.4.3.2(x64) - Windows 10(x64) - Python version 3.8.15 (under Lubuntu 22.04 / VirtualBox 6.1.38)

  • Does not work with OpenOffice see bug 128569. Having no solution, I encourage you to install LibreOffice.

I encourage you in case of problem 😕
to create an issue
I will try to solve it 😄


Historical:

What has been done for version 0.0.5:

  • Integration and use of the new HsqlDB v2.5.1 system versioning.

  • Writing of a new Replicator interface, launched in the background (python Thread) responsible for:

    • Perform the necessary procedures when creating a new user (initial Pull).

    • Carry out pulls regularly (every ten minutes) in order to synchronize any external changes (Pull all changes).

    • Replicate on demand all changes to the hsqldb 2.5.1 database using system versioning (Push all changes).

  • Writing of a new DataBase interface, responsible for making all calls to the database.

  • Setting up a cache on the Identifiers, see method: _getUser(), allowing access to a Content (file or folder) without access to the database for subsequent calls.

  • Management of duplicate file/folder names by SQL Views: Child, Twin, Uri, and Title generating unique names if duplicates names exist.
    Although this functionality is only needed for gDriveOOo, it is implemented globally...

  • Many other fix...

What has been done for version 0.0.6:

  • Using new scheme: vnd-google:// as claimed by draft-king-vnd-urlscheme-03.txt

  • Achievement of handling duplicate file/folder names by SQL views in HsqlDB:

    • A Twin view grouping all the duplicates by parent folder and ordering them by creation date, modification date.
    • A Uri view generating unique indexes for each duplicate.
    • A Title view generating unique names for each duplicate.
    • A recursive view Path to generate a unique path for each file / folder.
  • Creation of a Provider able to respond to the two types of Urls supported (named and anonymous).
    Regular expressions (regex), declared in the UCB configuration file, are now used by OpenOffice/LibreOffice to send URLs to the appropriate ContentProvider.

  • Use of the new UNO struct DateTimeWithTimezone provided by the extension jdbcDriverOOo since its version 0.0.4.
    Although this struct already exists in LibreOffice, its creation was necessary in order to remain compatible with OpenOffice (see Enhancement Request 128560).

  • Modification of the Replicator interface, in order to allow:

    • To choose the data synchronization order (local first then remote or vice versa).
    • Synchronization of local changes by atomic operations performed in chronological order to fully support offline work.
      To do this, three SQL procedures GetPushItems, GetPushProperties and UpdatePushItems are used for each user who has accessed his files / folders.
  • Rewrite of the options window accessible by: Tools -> Options -> Internet -> gDriveOOo in order to allow:

    • Access to the two log files concerning the activities of the UCP and the data replicator.
    • Choice of synchronization order.
    • The modification of the interval between two synchronizations.
    • Access to the underlying HsqlDB 2.7.2 database managing your Google Drive metadata.
  • The presence or absence of a trailing slash in the Url is now supported.

  • Many other fix...

What has been done for version 1.0.1:

  • Implementation of the management of shared files.

  • The name of the shared folder can be defined before any connection in: Tools -> Options -> Internet -> gDriveOOo -> Handle shared documents in folder:

  • Many other fix...

What has been done for version 1.0.2:

  • The absence or obsolescence of the OAuth2OOo and/or jdbcDriverOOo extensions necessary for the proper functioning of gDriveOOo now displays an error message.

  • Many other things...

What has been done for version 1.0.3:

  • Support for version 1.2.0 of the OAuth2OOo extension. Previous versions will not work with OAuth2OOo extension 1.2.0 or higher.

What has been done for version 1.0.4:

  • Support for version 1.2.1 of the OAuth2OOo extension. Previous versions will not work with OAuth2OOo extension 1.2.1 or higher.

What has been done for version 1.0.5:

  • Support for version 1.2.3 of the OAuth2OOo extension. Fixed issue #12.

What has been done for version 1.0.6:

  • Support for version 1.2.4 of the OAuth2OOo extension. Many issues resolved.

What has been done for version 1.0.7:

  • Now use Python dateutil package to convert to UNO DateTime.

What has been done for version 1.1.0:

  • All Python packages necessary for the extension are now recorded in a requirements.txt file following PEP 508.
  • Now if you are not on Windows then the Python packages necessary for the extension can be easily installed with the command:
    pip install requirements.txt
  • Modification of the Requirement section.

What has been done for version 1.1.1:

  • Fixed a regression preventing the creation of new files.
  • Integration of a fix to workaround the issue #159988.

What remains to be done for version 1.1.1:

  • Add new language for internationalization...

  • Anything welcome...

gdriveooo's People

Contributors

prrvchr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

gdriveooo's Issues

Cannot save file to Drive

Thanks for your work, very useful. I can open and edit files with no problems, but i cannot save files to Drive. I see there is a similar issue closed, but I think the problem is not solved. See the attached error message.
Screenshot from 2020-02-29 22-02-19

oGdriveOOo & OAuthOOo usage

Firstly please accept my apology, but I am extremely new (as of yesterday) to GitHub and I have yet to figure out how to behave correctly.

Having said that, I am a new "converty" in that I have made a total transition from Microsoft to Linux incl. all 'standard tools' such as LibreOffice, Evolution (maybe Thunderbird don't know yet).

I have also made the transition from OneDrive to G-Suite, hence I may end up in deep s..t, but I'll give it a go anyway.

One thing I MUST have in place is how to access G-Suite drive from e.g. LibreOffice Version: 6.0.7.3, running on a LinuxMint (latest).

I have found your tool that, if I read it correctly, does exactly that.

I have managed to install OAuthOOo version 0.0.2 and also OGDRIVE OOo Version 0.0.1 - I have not been able to locate a newer version.

I can open my G-Suite, no problem,
I can edit an existing file, no problem,
I can save the same file, no problem,
BUT,
if I try to save with a new name OR create a new file it fails.

It seems that the oDriveOOo reads the 'google' internal name - a string of "random" numbers and letters".

Setup
Lenovo B560
LinuxMint 19.04
LibreOffice Version: 6.0.7.3
Build ID: 1:6.0.7-0ubuntu0.18.04.2
CPU threads: 2; OS: Linux 4.15; UI render: default; VCL: gtk3;
Locale: en-US (en_US.UTF-8); Calc: group

I am not sure what I do wrong, but hope you can help.

Error connecting to vnd.google-apps:///

"Nonexistent object.
Nonexistent file."
This error happens when I try to open the gdrive location, even though it said that it was safe to close the gDriveOOo webpage.

Objet n'existe pas - Fichier inexistant

Bonjour,
J'ai suivi la mise oeuvre pas à pas.
Lorsque je lance ouverture fichier avec vnd.google-apps:/// ; j'obtiens " l'objet n'existe pas - fichier inexistant".
Quelle serait la cause possible de cette erreur.
Cordialement

Can"t see anything

Hi

i installed liber office 7 beta . I authorized the OAuthOOo application to my gDrive. I also installed gDriveoo extension. But i cant see my drive under places. When i try to click to the server option, a file service opened and ask me my gdrive id and password but after i enter it it ask for 6 digit pin. So i couldnt Save my files to drive.

Could you help me?

utilisation de gDriveOOo extension non fonctionnel

Sur un PC sous Kubuntu 20.10 + Kde Plasma 5.19.5 + LibreOffice 7.2. Ai suivi l'installation préconisée à https://prrvchr.github.io/gDriveOOo/README_fr.html Après l'installation des extensions préconisées j'ai pu me connecter sur google drive grâce à la commande vnd.google-apps:/// Super
Par contre sur un 2° PC lui sous Ubuntu 20.10 + Kde Plasma 5.19.2 + LibreOffice 7.2 ayant suivi la même procédure de connexion je n'arrive pas à me connecter !!!!! J'imagine qu'il s'agit d'un fichier de configuration différent mais je ne trouve pas la clé.

Merci de me dire si vous avez un éclairage ou une recommendation.

Louis Delmas
[email protected]

Extension does not actually save files on Google Drive.

My setup:

  • Windows 10
  • Java 17 Temurin
  • LibreOffice 7.6.4.1
  • Latest OAuth2OOo, jdbcDriverOOo, gDriveOOo

No matter what I do, files are not actually saved to my Google Drive, that is, files are not present when I look for them directly opening Google Drive in my Internet browser after I save them in LibreOffice.
Followed installation procedures to the letter.
Reinstalled extensions few times.
Tried two replication methods (Remote then local and Local then remote).
To clarify, I can see, browse and open my Google Drive files and folders in Open File dialogue which are already there. If I open, edit and save already present file, changes are not synced with Google Drive.

gdriveoo installation exits with error

Hello prrvchr,

Libreoffice 6.4 installed directly from the latest deb package under Debian 10. I do have python3-uno installed. Still Gdriveoo installation exits with an error. Attached is the screenshot of the full error.

Best regards

PS. Sorry for not getting back to you before, but with gmail sorting the emails I did not see yours.

oogdrive

Cannot add google account

I follow the steps as mentioned in the readme, although the gDriveOOo dialog crashes before allowing me to click "View Authentication".

Here is the log:

event no thread   date       time        (class/method:) message
1    31153 2022-11-19 22:59:24.585611873 OptionsDialog::_doClearLog(): ClearingLog ... Done
2    31153 2022-11-19 22:59:51.960514984 ContentProviderProxy::getContentProvider(): Need to get UCP: com.gmail.prrvchr.extensions.gDriveOOo ... Done
3    31153 2022-11-19 22:59:51.982429220 User::__init__(): User loading completed
4    31153 2022-11-19 23:00:05.197969302 User::__init__(): User loading completed
5    31153 2022-11-19 23:00:05.212796674 Identifier::__init__(): Identifier loading completed
6    31153 2022-11-19 23:00:05.219429620 ContentProvider::createContentIdentifier(): Identifier: vnd.google-apps://[email protected]/ ... Completed
7    31153 2022-11-19 23:00:05.225854092 ContentProviderProxy::getContentProvider(): Need to get UCP: com.gmail.prrvchr.extensions.gDriveOOo ... Done
8    31153 2022-11-19 23:00:05.232021217 ContentProvider::queryContent(): Identitifer: vnd.google-apps://[email protected]/ ... cannot be found: User: [email protected] does not exist at this Provider

Libreoffice fails to connect

For some reason, at the last stage of connecting I'm taken to this 'localhost' page: http://127.0.0.1:8080/?state=4d9268f63f904db59f6a235be2599cc9&code=4/0AX4XfWiDUYwBH6l1K31LcBUaVi43VD3wxc9tfRQdJawbKlDlVg1-_9ui2YxTzKLiPp1xUw&scope=https://www.googleapis.com/auth/drive.

There was another server 'AIS dispatcher' which I removed, previously I was taken to it's login page. But after removing AIS Dispatcher, I see this message: "boost::filesystem::current_path: No such file or directory".

Boost is installed on my Ubuntu 20.04 computer. Any ideas? Much closer to connecting with Google Drive than before! Opening the 8080 port didn't help.

Cannot install gDriveOOo extension

Hello,

Everytime I try to install gDriveOOo extension into Libreoffice 6.3.4.2 I get an error from urllib3, on Debian 10.
Have try to correct the error by installing python3.
python3: can't open file 'setup.py': [Errno 2] No such file or directory
Any ideas on what can I do?
Thanks in advance

Warning message in options panel.

My setup:

  • Windows 10
  • Java 17 Temurin
  • LibreOffice 7.6.4.1
  • Latest OAuth2OOo, jdbcDriverOOo, gDriveOOo

When choosing 'Remote then local' Replication method In the gDriveOOo options panel, warning is shown (see attached screenshot below):
EnabledSync_not_found

Code search points to:

<script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:EnabledSync" script:language="UNO"/>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.