Найти тему

Быстрое создание документа в Google Docs на Python и Google Apps script

Вот пошаговая инструкция по разработке программы в ChatGPT, которая создаёт Google Docs из содержимого буфера обмена, расшаривает его и копирует ссылку на документ в буфер обмена. Все промпты и код, сгенерированные в процессе, включены в описание.

### Шаг 1: Идея программы

Я решил написать скрипт, который будет по нажатию клавиши или комбинации клавиш создавать новый документ в Google Docs с содержимым буфера обмена, расшаривать документ для всех, у кого есть ссылка, открывать его в браузере и копировать ссылку на документ обратно в буфер обмена.

### Шаг 2: Первый запрос в ChatGPT

**Промпт:**

> Мне надо написать скрипт, который по нажатию будет из содержимого буфера обмена создавать документ Google Docs с содержимым буфера обмена, расшаривать на него доступ для всех, у кого будет ссылка на документ, открывать вкладку браузера с документом и копировать ссылку на документ в буфер обмена.

**Ответ ChatGPT:**

ChatGPT предложил использовать комбинацию Google Apps Script для создания документа и Python для управления буфером обмена и открытия документа. Был предоставлен код для Google Apps Script и Python.

**Google Apps Script:**

```javascript
function createAndShareDoc(content) {
// Создание нового документа
var doc = DocumentApp.create("Новый документ из буфера обмена");
var body = doc.getBody();
// Вставка содержимого буфера
body.setText(content);
// Сохранение и закрытие документа
doc.saveAndClose();
// Получение ссылки на документ
var docId = doc.getId();
var docUrl = "https://docs.google.com/document/d/" + docId;
// Расшаривание доступа по ссылке
var file = DriveApp.getFileById(docId);
file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.EDIT);
return docUrl;
}
function doPost(e) {
var content = e.parameter.content;
var url = createAndShareDoc(content);
return ContentService.createTextOutput(url);
}

```

**Python код:**

```python

import pyperclip
import webbrowser
import requests
# URL Google Apps Script веб-приложения
API_URL = 'https://script.google.com/macros/s/ВАШ_СКРИПТ_ID/exec'
# Получаем содержимое буфера обмена
clipboard_content = pyperclip.paste()
# Отправляем текст в Google Apps Script
response = requests.post(API_URL, data={'content': clipboard_content})
if response.status_code == 200:
# Получаем ссылку на документ
doc_url = response.text
# Открываем документ в браузере
webbrowser.open(doc_url)
# Копируем ссылку в буфер обмена
pyperclip.copy(doc_url)
print("Ссылка на документ скопирована в буфер обмена.")
else:
print(f"Произошла ошибка: {response.status_code}")

```

### Шаг 3: Добавление горячей клавиши для запуска скрипта

Я захотел, чтобы скрипт запускался по нажатию горячей клавиши.

**Промпт:**

> Доработай код, чтобы по нажатию кнопки на клавиатуре или комбинации клавиш срабатывал Python скрипт. Посоветуй, какую кнопку или комбинацию клавиш использовать.

**Ответ ChatGPT:**

ChatGPT предложил использовать библиотеку `keyboard` и настроить запуск скрипта по комбинации клавиш `Ctrl + Alt + G`.

**Обновлённый Python код:**

```python

import pyperclip

import webbrowser

import requests

import keyboard # для перехвата клавиш

# URL Google Apps Script веб-приложения

API_URL = 'https://script.google.com/macros/s/ВАШ_СКРИПТ_ID/exec'

def create_google_doc():

# Получаем содержимое буфера обмена

clipboard_content = pyperclip.paste()

if not clipboard_content.strip():

print("Ошибка: буфер обмена пуст.")

return

# Отправляем текст в Google Apps Script

response = requests.post(API_URL, data={'content': clipboard_content})

if response.status_code == 200:

# Получаем ссылку на документ

doc_url = response.text

# Открываем документ в браузере

webbrowser.open(doc_url)

# Копируем ссылку в буфер обмена

pyperclip.copy(doc_url)

print("Ссылка на документ скопирована в буфер обмена.")

else:

print(f"Произошла ошибка: {response.status_code}")

# Устанавливаем комбинацию клавиш для запуска скрипта

keyboard.add_hotkey('ctrl+alt+g', create_google_doc)

print("Скрипт запущен. Нажмите Ctrl+Alt+G для создания Google Docs.")

# Бесконечный цикл для ожидания нажатия клавиш

keyboard.wait()

```

### Шаг 4: Компиляция в exe и добавление в автозагрузку

Наконец, я захотел скомпилировать скрипт в `.exe` и добавить его в автозагрузку.

**Промпт:**

> Как скомпилировать скрипт в exe и поставить в автозагрузку в Windows?

**Ответ ChatGPT:**

ChatGPT предложил использовать `PyInstaller` для компиляции в `.exe` и объяснил, как добавить скомпилированный файл в автозагрузку Windows.

1. **Установка PyInstaller**:

```bash

pip install pyinstaller

```

2. **Компиляция скрипта**:

```bash

pyinstaller --onefile --noconsole your_script.py

```

3. **Добавление в автозагрузку**:

- Открой папку автозагрузки командой:

```bash

shell:startup

```

- Скопируй скомпилированный `.exe` файл в эту папку.

### Результат

Теперь, после нажатия комбинации клавиш `Ctrl + Alt + G`, мой скомпилированный Python-скрипт автоматически создаёт документ Google Docs с содержимым буфера обмена, расшаривает его для всех, открывает документ в браузере и копирует ссылку обратно в буфер обмена.


Мои контакты по сотрудничеству по разработке Телеграм : @yurimosoha