Metadata-Version: 2.4
Name: goodoc
Version: 1.6.0
Summary: Upload office files to Google Drive with auto-conversion to Docs/Sheets/Slides
Author: Igor Djachenko
License-Expression: MIT
Project-URL: Homepage, https://github.com/djachenko/goodoc
Project-URL: Repository, https://github.com/djachenko/goodoc
Project-URL: Issues, https://github.com/djachenko/goodoc/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: End Users/Desktop
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: google-auth>=2.0
Requires-Dist: google-auth-oauthlib>=1.0
Requires-Dist: google-api-python-client>=2.0
Requires-Dist: typer>=0.9
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: ruff==0.15.16; extra == "test"
Requires-Dist: mypy; extra == "test"
Provides-Extra: release
Requires-Dist: build; extra == "release"
Requires-Dist: python-semantic-release; extra == "release"
Dynamic: license-file

# goodoc

![CI](https://github.com/djachenko/goodoc/actions/workflows/tests.yml/badge.svg)
[![PyPI](https://img.shields.io/pypi/v/goodoc.svg)](https://pypi.org/project/goodoc/)
![Python](https://img.shields.io/pypi/pyversions/goodoc.svg)
![License](https://img.shields.io/github/license/djachenko/goodoc.svg)

Upload Office files to Google Drive with automatic conversion to native Google formats (Docs / Sheets / Slides). Integrates into macOS Finder as a right-click action.

**Typical workflow:** got a file to review → right-click → opens in Google Docs. No Word, no drag-and-drop.

---

## Usage

```bash
goodoc file.docx                      # upload and open in browser
goodoc file.xlsx --no-open            # upload without opening
goodoc file.docx file.xlsx file.pptx  # upload multiple files

goodoc login                          # authorize without uploading
goodoc logout                         # forget the stored token
```

Supported formats:

| Extension | Converts to |
|---|---|
| `.doc`, `.docx` | Google Docs |
| `.xls`, `.xlsx` | Google Sheets |
| `.ppt`, `.pptx`, `.pptm` | Google Slides |

---

## Installation

```bash
curl -fsSL https://raw.githubusercontent.com/djachenko/goodoc/master/install.sh | bash
```

Installs goodoc, the Finder Quick Action, and adds `goodoc-update` / `goodoc-uninstall` to your shell.

Alternatively, CLI only (no Quick Action or shell helpers):

```bash
pipx install git+https://github.com/djachenko/goodoc.git
```

---

## First run

goodoc talks to Google Drive through your own Google Cloud project. On the first run, a setup wizard starts automatically:

1. **Google Cloud credentials** — opens the browser, walks you through creating an OAuth client, prompts for the downloaded JSON file
2. **Authorization** — opens the browser for Google sign-in, saves the token

After that, every run is silent.

There is also a shared client maintained by the author, with limited capacity. If you have an access key, skip the wizard entirely:

```bash
goodoc login --key <KEY>
```

Ask for a key in [issues](https://github.com/djachenko/goodoc/issues). Treat the key as a credential — don't publish it.

Enable the Quick Action in: System Settings → Privacy & Security → Extensions → Finder Extensions.

---

## Update / Uninstall

```bash
goodoc-update      # upgrade to latest version
goodoc-uninstall   # remove goodoc, the Quick Action, and credentials
```

To re-authorize without uninstalling:

```bash
goodoc logout
```

---

## License

MIT
