1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как в Гугл Документах создать папку

Работаем с API Google Drive с помощью Python

Решил написать достаточно подробную инструкцию о том как работать с API Google Drive v3 с помощью клиентской библиотеки Google API для Python. Статья будет полезна тем, кому приходится часто работать с документами в Google Drive: скачивать и загружать новые документы, удалять файлы, создавать папки.

Также я покажу пример того как можно с помощью API скачивать файлы Google Sheets в формате Excel, или наоборот: заливать в Google Drive файл Excel в виде документа Google Sheets.

Использование API Google Drive может быть полезным для автоматизации различной рутины, связанной с отчетностью. Например, я использую его для того, чтобы по расписанию загружать заранее подготовленные отчеты в папку Google Drive, к которой есть доступ у конечных потребителей отчетов.

Все примеры на Python 3.

Создание сервисного аккаунта и получение ключа

Прежде всего создаем сервисный аккаунт в консоли Google Cloud и для email сервисного аккаунта открываем доступ на редактирование необходимых папок. Не забудьте добавить в папку файлы, если их там нет, потому что файл нам понадобится, когда мы будем выполнять первый пример — скачивание файлов из Google Drive.

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

Установка клиентской библиотеки Google API и получение доступа к API

Сначала устанавливаем клиентскую библиотеку Google API для Python

Дальше импортируем нужные модули или отдельные функции из библиотек.

Ниже будет небольшое описание импортируемых модулей. Это для тех кто хочет понимать, что импортирует, но большинство просто может скопировать импорты и вставить в ноутбук 🙂

    из google.oauth2 понадобится нам для авторизации с помощью сервисного аккаунта.
  • Классы MediaIoBaseDownload и MediaFileUpload, как ясно из названий, пригодятся, чтобы скачать или загрузить файлы. Эти классы импортируются из googleapiclient.http
  • Функция build из googleapiclient.discovery позволяет создать ресурс для обращения к API, то есть это некая абстракция над REST API Drive, чтобы удобнее обращаться к методам API.

Указываем Scopes. Scopes — это перечень возможностей, которыми будет обладать сервис, созданный в скрипте. Ниже приведены Scopes, которые относятся к API Google Drive (из официальной документации):

Как видно, разные Scope предоставляют разный уровень доступа к данным. Нас интересует Scope «https://www.googleapis.com/auth/drive», который позволяет просматривать, редактировать, удалять или создавать файлы на Google Диске.

Также указываем в переменной SERVICE_ACCOUNT_FILE путь к файлу с ключами сервисного аккаунта.

Создаем Credentials (учетные данные), указав путь к сервисному аккаунту, а также заданные Scopes. А затем создаем сервис, который будет использовать 3ю версию REST API Google Drive, отправляя запросы из-под учетных данных credentials.

Получение списка файлов

Теперь можно получить список файлов и папок, к которым имеет доступ сервис. Для этого выполним запрос list, выдающий список файлов, со следующими параметрами:

  • pageSize — количество результатов выдачи. Можете смело ставить максимальное значение 1000. У меня стоит 10 результатов, чтобы показать как быть, когда нужно получить результаты по следующей страницы результатов
  • параметр files() в fields — параметр, указывающий, что нужно возвращать список файлов, где в скобках указан список полей для файлов, которые нужно показывать в результатах выдачи. Со всеми возможными полями можно познакомиться в документации (https://developers.google.com/drive/api/v3/reference/files) в разделе «Valid fields for files.list». У меня указаны поля для файлов: id (идентификатор файла в Drive), name (имя) и mimeType (тип файла). Чуть дальше мы рассмотрим пример запроса с большим количеством полей
  • nextPageToken в fields — это токен следующей страницы, если все результаты не помещаются в один ответ

Получили вот такие результаты:

Получив из результатов nextPageToken мы можем передать его в следущий запрос в параметре pageToken, чтобы получить результаты следующей страницы. Если в результатах будет nextPageToken, это значит, что есть ещё одна или несколько страниц с результатами

Таким образом, мы можем сделать цикл, который будет выполняться до тех пор, пока в результатах ответа есть nextPageToken. Внутри цикла будем выполнять запрос для получения результатов страницы и сохранять результаты к первым полученным результатам

Читайте так же:
Как сохранить фото из Одноклассников на компьютер

Дальше давайте рассмотрим какие ещё поля можно использовать для списка возвращаемых файлов. Как я уже писал выше, со всеми полями можно ознакомиться по ссылке. Давайте рассмотрим самые полезные из них:

  • parents — ID папки, в которой расположен файл/подпапка
  • createdTime — дата создания файла/папки
  • permissions — перечень прав доступа к файлу
  • quotaBytesUsed — сколько места от квоты хранилища занимает файл (в байтах)

Отобразим один файл из результатов с расширенным списком полей. Как видно permissions содержит информацию о двух юзерах, один из которых имеет role = owner, то есть владелец файла, а другой с role = writer, то есть имеет право записи.

Очень удобная штука, позволяющая сократить количество результатов в запросе, чтобы получать только то, что действительно нужно — это возможность задать параметры поиска для файлов. Например, мы можем задать в какой папке искать файлы, зная её id:

С синтаксисом поисковых запросов можно ознакомиться в документации. Ещё один удобный способ поиска нужных файлов — по имени. Вот пример запроса, где мы ищем все файлы, содержащие в названии «data»:

Условия поиска можно комбинировать. Возьмем условие поиска в папке и совместим с условием поиска по названию:

Скачивание файлов из Google Drive

Теперь рассмотрим как скачивать файлы из Google Drive. Для этого нам понадобится создать запрос request для получения файла. После этого задаем интерфейс fh для записи в файл с помощью библиотеки io, указав в filename название файла (таким образом, можно сохранять файлы из Google Drive сразу с другим названием). Затем создаем экземпляр класса MediaIoBaseDownload, передав наш интерфейс для записи файла fh и запрос для скачивания файла request. Следующим шагом скачиваем файл по небольшим кусочкам (чанкам) с помощью метода next_chunk.

Если из предыдущего описания вам мало что понятно, не запаривайтесь, просто укажите свой file_id и filename, и всё у вас будет в порядке.

Файлы Google Sheets или Google Docs можно конвертировать в другие форматы, указав параметр mimeType в функции export_media (обратите внимание, что в предыдущем примере скачивания файла мы использоали другую функцию get_media). Например, файл Google Sheets можно конвертировать и скачать в виде файла Excel.

Затем скачанный файл можно загнать в датафрейм. Это достаточно простой способ получить данные из Google Sheet в pandas-dataframe, но есть и другие способы, например, воспользоваться библиотекой gspread.

Загрузка файлов и удаление в Google Drive

Рассмотрим простой пример загрузки файла в папку. Во-первых, нужно указать folder_id — id папки (его можно получить в адресной строке браузера, зайдя в папку, либо получив все файлы и папки методом list). Также нужно указать название name, с которым файл загрузится на Google Drive. Это название может быть отличным от исходного названия файла. Параметры folder_id и name передаем в словарь file_metadata, в котором задаются метаданные загружаемого файла. В переменной file_path указываем путь к файлу. Создаем объект media, в котором будет указание по какому пути находится загружаемый файл, а также указание, что мы будем использовать возобновляемую загрузку, что позволит нам загружать большие файлы. Google рекомендует использовать этот тип загрузки для файлов больше 5 мегабайт. Затем выполняем функцию create, которая позволит загрузить файл на Google Drive.

Как видно выше, при вызове функции create возвращается id созданного файла. Можно удалить файл, вызвав функцию delete. Но мы этого делать не будет так как файл понадобится в следующем примере

Сервисный аккаунт может удалить ли те файлы, которые были с помощью него созданы. Таким образом, даже если у сервисного аккаунта есть доступ на редактирование папки, то он не может удалить файлы, созданные другими пользователями. Понять что файл был создан помощью сервисного аккаунта можно задав поисковое условие с указанием email нашего сервисного аккаунта. Узнать email сервисного аккаунта можно вызвав атрибут signer_email у объекта credentials

Читайте так же:
Офисные программы для Андроид

Дальше — больше. С помощью API Google Drive мы можем загрузить файл с определенным mimeType, чтобы Drive понял к какому типу относится файл и предложил соответствующее приложение для его открытия.

Но ещё более классная возможность — это загрузить файл одного типа с конвертацией в другой тип. Таким образом, мы можем залить csv файл из примера выше, указав для него тип Google Sheets. Это позволит сразу же конвертировать файл для открытия в Гугл Таблицах. Для этого надо в словаре file_metadata указать mimeType «application/vnd.google-apps.spreadsheet».

Таким образом, загруженный нами CSV-файл будет доступен как Гугл Таблица:

Ещё одна часто необходимая функция — это создание папок. Тут всё просто, создание папки также делается с помощью метода create, надо только в file_metadata указать mimeType «application/vnd.google-apps.folder»

Заключение
Все содержимое этой статьи также представлено в виде ноутбука для Jupyter Notebook.

В этой статье мы рассмотрели лишь немногие возможности API Google Drive, но одни из самых необходимых:

  • Просмотр списка файлов
  • Скачивание документов из Google Drive (в том числе, скачивание с конвертацией, например, документов Google Sheets в формате Excel)
  • Загрузка документов в Google Drive (также как и в случае со скачиванием, с возможностью конвертации в нативные форматы Google Drive)
  • Удаление файлов
  • Создание папок

Вступайте в группу на Facebook и подписывайтесь на мой канал в Telegram, там публикуются интересные статьи про анализ данных и не только.

Как просмотреть родительскую папку документа Google?

Часто у меня есть прямая ссылка на документ Google (мой или общий для организации), и я хочу найти документы, которые хранятся в той же папке. Для этого мне нужно определить папку, в которой находится документ.

Есть ли способ сделать это?

Документ может находиться в нескольких папках, но вы можете получить их список через пользовательский интерфейс.

Нажмите значок папки рядом с заголовком документа. Если документ находится в одной папке, вы получите представление об этой папке, отображающее имя папки со значком, чтобы открыть папку на новой вкладке, другие документы в папке и параметры для перемещения текущего документа:

введите описание изображения здесь

Если документ находится в нескольких папках, вы получите список папок, в которых он находится, с гиперссылками на каждую.

Скриншот двух родительских папок

Отсутствует значок папки?

Если вы обнаружите, что эта маленькая папка отсутствует справа от имени файла, вы можете выбрать, File > Document details. по крайней мере, просмотреть имя родительского каталога. Например:

Когда маленький значок папки отсутствует .

И ты найдешь, где, черт возьми, Уолдо. Я оказался в мире-2!

Давайте предоставим средство для перехода в родительскую папку документа одним щелчком мыши.

Разместите скрипт ниже в редакторе скриптов вашего документа. Сделайте это, открыв документ, а затем в строке меню документа выберите «Инструменты»> «Редактор сценариев» .

Если вы впервые редактируете скрипт этого документа, код по умолчанию будет заполнять экран редактора. Просто замените содержимое скрипта с кодом ниже. Включите обе функции onOpen () и listParentFolders (), перечисленные ниже.

Сохраните скрипт в редакторе, а затем «обновите» окно просмотра, отображающее связанный документ. Новый пункт меню появится для документа с именем Utils. При нажатии на панель меню Utils отобразится всплывающее меню «Показать путь». Этот скрипт отобразит путь к каталогу в виде списка гиперссылок.

По состоянию на 2014-04-04 существует несколько способов получить документ из папки, в которой он находится.

В открытом документе щелкните значок папки рядом с заголовком документа. Появится диалоговое окно с «Этот элемент находится в» и содержащее имя папки. Имя папки связано с папкой. Если вместо этого появляется диалоговое окно «Перейти к», папка, содержащая документ, является корневой. Если это ваш документ или вы явно добавили его, он находится в папке «Мой диск». Если нет, попробуйте Дополнительно> Все элементы в списке папок слева от представления списка документов.

В представлении поиска документов выберите элемент. Подробнее> Детали и действия> Детали> Папки. Любые перечисленные имена папок связаны с соответствующими папками.

Читайте так же:
Руководство по созданию баннера для группы во ВКонтакте

Начиная с 2014-12-03, я больше не могу понять, как перейти из представления файла в содержащую его папку для файлов, которые не являются документами Google для совместной работы. Пожалуйста, прокомментируйте или отредактируйте этот ответ, если знаете как.

AFAIK нет, это невозможно сделать с помощью URL документа или самого документа. Вам нужно будет взять название документа и найти его в представлении списка дисков. Результаты поиска должны показать вам заголовок документа, а затем показать имя родительской папки серым цветом.

Adobe Document Cloud для Google Диска

Adobe Document Cloud для Google Диска — интегрированный набор сервисов для работы с PDF, который предоставляет следующие возможности:

  • Открытие и просмотр файлов PDF онлайн с помощью высококачественного средства веб-просмотра PDF.
  • Создание файлов Adobe PDF с сохранением шрифтов, форматирования и оформления.
  • Работа с документами PDF: удаление, систематизация и поворот страниц в PDF.
  • Объединение нескольких файлов на Google Диске в один документ PDF, который можно рассылать и архивировать.
  • Преобразование файлов PDF в другие форматы с сохранением шрифтов, форматирования и оформления.
  • Добавление комментариев в файлы PDF с помощью различных инструментов (записок, выделения текста и рисования произвольных фигур) и пометок по ходу ознакомления с документами PDF.
  • Отправка документов PDF на подпись и их отслеживание.

Поддерживаемые браузеры

Adobe Document Cloud для Google Диска поддерживается всеми современными браузерами (Microsoft Edge, Chrome, Firefox и Safari).

Открытие файлов PDF

Открывайте и просматривайте файлы PDF онлайн с помощью высококачественного средства веб-просмотра PDF. Чтобы открыть документ PDF, нажмите правой кнопкой мыши на файл и выберите Открыть с помощью > Adobe Acrobat для Google Диска.

Открытие файлов PDF

Файл PDF отобразится в окне предварительного просмотра Adobe Document Cloud. В меню в верхней части экрана представлены следующие опции: добавление пометок, поиск по словам, загрузка PDF, печать PDF, а также редактирование PDF (систематизация страниц, объединение файлов, экспорт PDF в другие форматы, отправка документа на подпись и создание PDF).

Действия с PDF

A. Undo or redo changes B. Add annotations — Add text comment, add sticky note, highlight tool, and use drawing tool C. Erase drawing D. Find in document E. Download PDF, print PDF, or share feedback F. Edit to organize pages, combine files, export PDF, send for signature, and create PDF

Открытие нескольких файлов

Чтобы открыть несколько файлов, выберите нужные файлы, нажмите правой кнопкой мыши и выберите Открыть с помощью > Adobe Acrobat для Google Диска. Файлы отображаются в виде миниатюр в окне предварительного просмотра Document Cloud. В меню Редактировать доступны различные опции, такие как Систематизировать страницы, Объединить файлы, Экспорт PDF, Создать PDF или Отправить на подпись (в зависимости от типа файла).

  • При открытии одного файла в формате, отличном от PDF, в меню Редактировать доступны опции Объединить файлы, Создать PDF и Отправить на подпись.

Опции меню «Редактировать» для одного файла в формате, отличном от PDFОпции меню «Редактировать» для одного файла в формате, отличном от PDF

  • При открытии нескольких файлов PDF или файлов в формате, отличном от PDF, в меню Редактировать доступны опции Объединить файлы и Отправить на подпись.

Открытие нескольких файловОпции меню «Редактировать» для нескольких файлов в формате, отличном от PDF

  • При открытии одного файла PDF в меню Редактировать отображаются все доступные опции, такие как Систематизировать страницы, Объединить файлы, Экспорт PDF, Создать PDF и Отправить на подпись.

С файлами, к которым предоставлен доступ только для чтения, невозможно выполнить такие действия, как «Экспорт PDF», «Создать PDF», «Систематизировать PDF» и «Отправить на подпись». Файлы, к которым предоставлен доступ только для чтения, невозможно объединить с другими файлами.

Преобразование файлов в формат PDF

Можно преобразовывать документы Google Диска в высококачественные файлы Adobe PDF, при этом сохраняя шрифты, форматирование и оформление.

Расширение позволяет преобразовывать в формат PDF файлы следующих распространенных типов:

Преобразование в PDF изПоддерживаемые расширения файлов
Microsoft Word.doc, .docx
Microsoft Excel.xls, .xlsx
Microsoft PowerPoint.ppt, .pptx
Форматы файлов изображений.bmp, .gif, .jpeg, .jpg, .png, .tif, .tiff
Rich Text Format.rtf
Текстовый файл.txt, .text
Adobe Illustrator.ai
Adobe InDesign.indd
Adobe Photoshop.psd
Формат формы Fill & Sign.form
Читайте так же:
Как перевернуть таблицу Excel

Для преобразования файла в документ PDF выполните следующие действия:

Нажмите правой кнопкой мыши на файл, который нужно преобразовать в PDF, и выберите Открыть с помощью > Adobe Acrobat для Google Диска.

В окне предварительного просмотра Document Cloud выберите меню Редактировать > Создать PDF.

Создание PDF.

Если файл PDF открыт в окне предварительного просмотра Document Cloud, при нажатии Редактировать > Создать PDF откроется проводник файлов Google Диска. Выберите файл, который нужно преобразовать в PDF, и нажмите Выбрать.

Выбор файла для преобразования.

Может отобразиться сообщение о входе в учетную запись Adobe Document Cloud. Введите Adobe ID и пароль, чтобы войти в систему.

Файл будет преобразован в PDF, а затем сохранен в библиотеке документов Google Диска. Кроме того, отобразится предварительный просмотр файла.

Если для владельца файла/папки выбран файл для преобразования из общей папки в Google Диске, преобразованный файл PDF сохраняется в той же общей папке. Для пользователей, не являющихся владельцами, преобразованный файл PDF сохраняется в исходном местоположении библиотеки документов Google Диска.

Google Диск

Google Диск — это сервис хранения, редактирования и синхронизации файлов, разработанный компанией Google [1] [2] .

Его функции включают хранение файлов в Интернете, общий доступ к ним и совместное редактирование. В состав Google Диска входят Google Документы, Таблицы и Презентации — набор офисных приложений для совместной работы над текстовыми документами, электронными таблицами, презентациями, чертежами, веб-формами и другими файлами. Общедоступные документы на Диске индексируются поисковыми системами [3] .

Google Диск был представлен 24 апреля 2012 года [1] . Согласно представителям Google с ноября 2013 года по май 2019 года количество активных пользователей выросло со 120 млн. до более 1 млрд. человек [4] [5] .

15 мая 2018 года компания Google объявила о разработке сервиса подписки для расширения хранилища Google One [6] .

6 октября 2020 года в рамках ребрендинга G Suite на Google Workspace были изменены логотипы нескольких продуктов Google, в том числе и Google Диска. [7]

Содержание

Версии Диска [ править | править код ]

G Suite [ править | править код ]

Google Drive Enterprise [ править | править код ]

Google Drive Enterprise (ранее Google Drive for Work) — это премиум-версия Диска, представленная 25 июня 2014 года на конференции Google I/O. Она включает неограниченное пространство для хранения, расширенные функции аудита и формирования отчетов, а также службы предоставления данных для электронных расследований. Дополнительные настройки сервиса позволяют администраторам лучше управлять работой пользователей с Диском, например разрешая отдельным сотрудникам устанавливать клиент синхронизации для ПК. На Диск можно загружать файлы размером до 5 ТБ. Если в компании менее пяти пользователей, каждому из них предоставляется по 1 ТБ. Согласно пресс-релизу в официальном блоге Google Enterprise, все данные клиентов шифруются при загрузке на серверы Google, хранении и скачивании. Пользователям предоставляется круглосуточная поддержка и гарантируется бесперебойная работа сервисов в течение 99,9% времени [8] .

В июле 2018 года Google анонсировала новую версию под названием Drive Enterprise для предприятий, которые не хотят покупать полную версию G Suite [9] .

Google Drive for Education [ править | править код ]

Сервис Google Drive for Education был запущен 30 сентября 2014 года. Он доступен всем подписчикам Google Apps for Education бесплатно. Пользователям предоставляется неограниченное пространство для хранения данных и возможность загружать файлы размером до 5 ТБ [10] .

Документы, Таблицы и Презентации [ править | править код ]

Google Документы, Таблицы и Презентации — это бесплатный пакет офисных веб-приложений, интегрированный с Google Диском. С его помощью можно создавать и редактировать документы онлайн и работать над ними вместе с другими пользователями в режиме реального времени. С октября 2012 года эти названия официально используются для текстового процессора, редактора электронных таблиц и приложения для работы с презентациями. Все три сервиса доступны в виде веб-приложений, приложений Chrome с поддержкой офлайн-режима, а также мобильных приложений для Android и iOS и поддерживают форматы Microsoft Office. Помимо этих редакторов в пакет входят:

  • Google Формы;
  • Google Рисунки;
  • Google Сводные таблицы.
Читайте так же:
Ускорение Интернета в Windows 10: практические рекомендации

Формы и Сводные таблицы доступны только в виде веб-приложений, а Рисунки — ещё и как приложение Chrome. Google Документы полностью интегрированы с Google Диском, на котором хранятся все создаваемые в редакторах файлы.

Google Документы созданы на основе двух продуктов: Writely и Google Таблиц. Writely — это текстовый процессор компании Upstartle, запущенный в августе 2005 года [11] . Компания Google приобрела её 9 марта 2006 года [12] . Google Таблицы были запущены 6 июня 2006 года, после того как Google приобрела 2Web Technologies, и сначала предлагались в виде экспериментальной версии [13] . Редактор презентаций был добавлен 17 сентября 2007 года после приобретения Tonic Systems (17 апреля 2007 года) [14] [15] . Бета-версия Google Документов стала доступна пользователям Google Apps в феврале 2007 года, а в сентябре того же года была выпущена финальная версия.

Google Документы официально поддерживают браузеры Firefox (двух последних версий), Internet Explorer (версии 9 и более поздних), Safari и Chrome, а также операционные системы Microsoft Windows, Apple MacOS, Linux и Chrome OS [16] .

История [ править | править код ]

До появления Google Диска в апреле 2012 года Google Документы также служили онлайн-хранилищем. Теперь все файлы, созданные в Google Документах, сохраняются на Диске, а URL docs.google.com перенаправляется на Google Диск [17] . В связи с этим пространство для хранения было увеличено с 1 до 5 ГБ [18] .

24 апреля 2012 года сервис был представлен пользователям [19] .

18 мая 2012 года компания PROMT, являющаяся разработчиком программ для автоматизированного перевода, подала заявку на регистрацию своего логотипа, выглядящего как трехцветный треугольник, что было вызвано появлением логотипа Google Диска, весьма похожего на логотип PROMT [20] .

С июня 2012 года Chrome OS и устройства Chrome поддерживают офлайн-режим. Сначала эта функция была доступна только в Документах [21] .

В октябре 2012 года, после запуска Google Диска, сервисы официально были названы Документами, Таблицами и Презентациями [22] . В апреле 2014 года появились отдельные мобильные приложения для всех трех продуктов [23] .

В январе 2013 года функция офлайн-режима появилась в Презентациях [24] , а в декабре — в Таблицах [25] .

Пространство для хранения [ править | править код ]

В Google Диск предоставляется 15 ГБ для бесплатного хранения данных. Если выделенного объёма недостаточно, можно приобрести дополнительно от 100 ГБ до 2 ТБ [19] .

13 мая 2013 года Google объявила об объединении лимитов на дисковое пространство Gmail, Google Диск и Google+ Photos. Вместо 10 ГБ на Gmail и 5 ГБ на Google Диск и Google+ Photos теперь пользователь получает 15 ГБ на все сразу, в том числе и на Google Диск [26] .

Клиент [ править | править код ]

На момент запуска сервиса клиентское программное обеспечение было доступно для следующих платформ [ источник не указан 753 дня ] :

    под управлением Windows XP, Windows Vista, Windows 7 и Windows 8 либо Mac OS X Lion (10.7) и Snow Leopard (10.6); и планшеты с ОС Android Eclair и более поздними (начиная с 2.1+); и iPad (c iOS 3.0 и более поздними версиями) [27] .
  • Поддержка Linux отсутствует (согласно менеджеру Google Docs Тереза Ву работы в этом направлении велись) [28] . начиная с версии 20 [29] .

Клиент для ОС Windows не поддерживает ссылки на файлы и не синхронизирует содержимое папок которые являются ссылками.

Компания Google решила прекратить поддержку приложения в декабре этого года. В марте 2018 году сервис Google Диск для десктопов закрыт. Одновременно с этим Google представила сервис «Автозагрузка и синхронизация» для «Google Фото» и «Google Диска» [30] .

Поддерживаемые форматы файлов [ править | править код ]

Google Диск viewer позволяет просматривать файлы следующих форматов [31] :

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector