wfolio_client — это локальный Python-пакет для программного управления сайтом на платформе wfolio.ru. Он предоставляет типобезопасный API для автоматизации рутинных задач: обновление контента страниц, загрузка медиафайлов, управление магазином, настройка SEO, мониторинг статистики и многое другое.
Пакет полностью переписан на типизированных dataclasses (v0.1.0), поддерживает контекстный менеджер для автоматического закрытия HTTP-сессии и автоматическое извлечение CSRF-токена из HTML редактора.
Управление страницами и секциями
- get_page_options() — список всех страниц сайта с id, заголовком, путём и уровнем вложенности.
- get_page(page_id) — полная загрузка страницы со всеми секциями (контейнеры, текст, HTML, изображения).
- save_page(page) — сохранение изменений с автоматическим повтором при конфликте ревизий (HTTP 409).
- create_page(parent_id, title) — создание новой страницы-статьи внутри родительского раздела.
- delete_page(page_id) — удаление страницы.
- update_page_meta(page_id, ...) — изменение метаданных (заголовок, URL-путь, SEO, обложка, дата, видимость, теги).
- replace_sections(page_id, section_ids) — переупорядочивание секций на странице.
- clone_section(page_id, section_id) — дублирование существующей секции.
- get_section_templates(page_id) — получение доступных шаблонов секций.
- get_blog_articles(blog_id) — список статей в блог-секции.
- set_item_visible(item_id, visible) — переключение видимости любого элемента.
- get_page_edit(page_id) — AJAX-запрос формы редактирования.
- get_preview(slug, device) — предпросмотр страницы в режиме desktop или mobile.
Объект Page предоставляет коллекцию секций через page.sections с методами поиска: find_by_id(), find(), find_all(), find_all_text(), find_all_html(), find_all_images().
Загрузка медиа и файлов
- upload_media(file) — загрузка изображения или видео. Принимает путь (str/Path) или raw bytes. Возвращает UploadedMedia с URL и id.
- upload_asset(file) — двухэтапная загрузка через asset pipeline (проверка существования → загрузка на uploader.wfolio.ru). Возвращает UploadedAsset.
Поддерживаемые форматы: JPEG (до 100 МБ), PNG (до 20 МБ), MP4/MOV (до 500 МБ). Автоматическая проверка размера и типа файла.
Магазин (Shop)
- get_products() / get_product(id) — список и детали товаров.
- create_product(name, price, description) — создание нового товара.
- update_product(id, ...) — обновление данных товара.
- delete_product(id) — удаление товара.
- get_orders() / get_order(id) — список и детали заказов.
- update_order(id, status) — обновление статуса заказа.
Дизайн и тема
- get_theme() / set_theme(theme_id) — получение и смена темы сайта.
- get_color_scheme() / set_color_scheme(scheme) — управление цветовой схемой.
- set_dark_mode(enabled) — включение/выключение тёмной темы.
- upload_logo(file) / delete_logo() — загрузка и удаление логотипа.
- get_social_links() / update_social_links(links) — управление ссылками на соцсети.
- set_announcement_bar(text, enabled, link_url) — настройка баннера-уведомления.
Настройки сайта
- get_site_settings() / update_site_settings(site_name, locale, development_mode) — общие настройки.
- get_redirections() / update_redirections(redirections) — правила перенаправления URL.
- get_footer() / update_footer(text, links) — конфигурация подвала сайта.
SEO-оптимизация
- get_page_seo(page_id) — получение SEO-настроек страницы (meta title, description, noindex, nofollow, canonical URL).
- update_page_seo(page_id, meta_title, meta_description, path, noindex, nofollow, canonical_url) — обновление SEO-полей.
- get_alt_texts(page_id) — получение alt-текстов для изображений на странице.
- update_alt_texts(page_id, alt_texts) — массовое обновление alt-текстов (словарь {image_id: alt_text}).
Галереи и диск
- get_projects() / get_project(id) — список и детали галерей-проектов.
- create_project(name, visible) — создание нового проекта-галереи.
- update_project(id, name, visible) / delete_project(id) — изменение и удаление проекта.
- upload_to_project(project_id, file_data, filename, content_type) — загрузка файла в проект.
- get_folders(project_id) / create_folder(project_id, name) — управление папками проекта.
- update_protection(project_id, protected, password) — установка парольной защиты галереи.
Подборки и профиль
- get_selections(project_id) — получение подборок/избранного для проекта.
- export_selection_csv(selection_id) — экспорт данных подборки в CSV.
- enable_download(selection_id, enabled, download_format) — управление скачиванием подборки.
Профиль / визитка:
- get_profile() — получение профиля пользователя (имя, компания, контакты).
- update_profile(display_name, first_name, last_name, company, position, email, phone, website, address, avatar_id) — обновление данных визитки.
Домены, чат и правовые настройки
Домены:
- get_domains() — список зарегистрированных доменов.
- register_domain(domain_name, period_years, privacy_protection) — регистрация нового домена.
- connect_domain(domain_name) — подключение существующего домена.
- enable_ssl(domain_id, auto_provision) — включение SSL-сертификата.
- set_subdomain(subdomain) — настройка поддомена.
Чат-виджет:
- init_chat(cw_conversation_cookie) — инициализация менеджера чата (требует отдельный cookie).
- Управление контактами, диалогами, сообщениями, агентами и кампаниями через client.chat.
Правовые настройки:
- get_privacy_policy() / update_privacy_policy(content, enabled, required) — политика конфиденциальности.
- get_cookie_consent() / update_cookie_consent(enabled, text, ...) — настройка согласия на cookies.
- get_age_warning() / update_age_warning(enabled, message, require_confirmation) — предупреждение 18+.
Статистика
- get_stats_current_visitors() — количество посетителей онлайн прямо сейчас.
- get_stats_top_stats(period, date) — обзор ключевых метрик за период (7d, 30d, и др.).
- get_stats_main_graph(period, date) — данные основного графика посещений.
- get_stats_sources(period, date) — разбивка трафика по источникам.
- get_stats_top_pages(period, date) — самые посещаемые страницы.
- get_stats_countries(period, date) — география посетителей.
- get_stats_browsers(period, date) — распределение по браузерам.
- get_stats_operating_systems(period, date) — распределение по ОС.
- get_stats_entry_pages(period, date) / get_stats_exit_pages(period, date) — точки входа и выхода.
Обработка ошибок
Все исключения наследуются от базового WfolioError:
- SessionExpiredError — сессия истекла или недействительна (HTTP 401/403).
- CSRFTokenError — не удалось извлечь или применить CSRF-токен.
- RevisionConflictError — конфликт ревизий при сохранении (HTTP 409).
- SectionNotFoundError — запрашиваемая секция не найдена на странице.
- SaveError — ошибка при сохранении страницы или других сущностей.
- UploadError — ошибка при загрузке медиа/файлов.
- ProductError / OrderError — ошибки операций магазина.
- SettingsError / DesignError / DiskError / SelectionError — ошибки соответствующих модулей.
- ProfileError / SEOError / ChatError / DomainError / LegalError — специализированные ошибки.
Исходный код и примеры находятся в папке wfolio_client/ проекта.
Статьи

Сравнение цен на популярные LLM-агрегаторы в России

Модель GLM-5 в Polza.ai

Сравнение цен Polza.ai и Openrouter

iFlow.cn — бесплатный агрегатор LLM: обзор моделей

Цены на модели через polza.ai

Фото и видео с помощью нейросети со своим лицом бесплатно

Полное сравнение агрегаторов LLM для разработчиков из России

Почему Wfolio?

Как подключить LLM и оплатить из России

TFP в Самаре

Самара. Открытые фотостудии

Тольятти. Открытые фотостудии

Санкт-Петербург. Открытые фотостудии

