Skip to content
This repository was archived by the owner on Apr 8, 2026. It is now read-only.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 GSDiscord Bot

GSDiscord Banner

Node.js License Discord Google Sheets

GitHub stars GitHub issues GitHub forks

🔗 A Node.js bot that monitors Google Sheets in real-time and sends beautifully formatted notifications to Discord channels via webhooks. Easy to set up with secure credential management.

🌐 Website / Homepage: https://github.com/evgnbch/GSDiscord

GSDiscord - это современный бот для интеграции Google Sheets с Discord. Автоматически отслеживает изменения в ваших Google таблицах и отправляет красивые уведомления в Discord каналы.

🌟 Особенности

  • 🔄 Автоматический мониторинг Google Sheets в реальном времени
  • 💬 Красивые embed сообщения в Discord
  • 📝 Подробное логирование всех операций
  • 🛡️ Безопасное хранение учетных данных
  • ⚙️ Гибкая конфигурация через переменные окружения
  • 🚀 Простая установка и настройка
  • 📊 Поддержка различных форматов данных

📋 Требования

  • Node.js версии 18.x или выше
  • npm (поставляется с Node.js)
  • Google Cloud Project с включенным Google Sheets API
  • Discord сервер с правами на создание вебхуков

🚀 Быстрый старт

1. Клонирование репозитория

git clone https://github.com/evgnbch/GSDiscord.git
cd GSDiscord

2. Установка зависимостей

npm install

3. Первоначальная настройка

npm run setup

Скрипт установки поможет вам:

  • Создать файл config/.env с необходимыми переменными
  • Создать пример файла учетных данных Google
  • Настроить базовую конфигурацию

4. Настройка Google Sheets API

  1. Перейдите в Google Cloud Console
  2. Создайте новый проект или выберите существующий
  3. Включите Google Sheets API
  4. Создайте Service Account и скачайте JSON файл с ключами
  5. Поместите файл в config/credentials/google-credentials.json

5. Настройка Discord Webhook

  1. Откройте настройки канала в Discord
  2. Перейдите в раздел ИнтеграцииВебхуки
  3. Создайте новый вебхук и скопируйте URL
  4. Добавьте URL в файл config/.env

6. Проверка безопасности

npm run security

7. Проверка конфигурации

npm run validate

8. Запуск бота

npm start

Для разработки с автоматической перезагрузкой:

npm run dev

⚙️ Конфигурация

Переменные окружения (config/.env)

# Google Sheets Configuration
GOOGLE_SHEET_ID=your_google_sheet_id_here

# Discord Configuration  
DISCORD_WEBHOOK_URL=your_discord_webhook_url_here

# Application Configuration
LOG_LEVEL=info

Структура проекта

GSDiscord/
├── 📁 src/                    # Исходный код
│   ├── 📁 config/            # Конфигурация
│   │   └── config.js         # Основная конфигурация
│   ├── 📁 services/          # Бизнес-логика
│   │   ├── GoogleSheetsService.js
│   │   └── DiscordService.js
│   ├── 📁 utils/             # Утилиты
│   │   └── logger.js         # Система логирования
│   └── index.js              # Точка входа
├── 📁 scripts/               # Служебные скрипты
│   ├── setup.js              # Настройка проекта
│   └── validate.js           # Проверка конфигурации
├── 📁 config/                # Конфигурация
│   ├── .env                 # Переменные окружения (в .gitignore)
│   ├── .env.example         # Пример переменных
│   └── credentials/         # Учетные данные (в .gitignore)
├── 📁 logs/                  # Файлы логов (в .gitignore)
├── 📁 docs/                  # Документация
├── 📁 tools/                 # Инструменты
│   ├── scripts/             # Скрипты автоматизации  
│   └── assets/              # Изображения и ресурсы
├── .gitignore                # Git исключения
├── .gitignore               # Игнорируемые файлы
├── package.json             # Зависимости и скрипты
└── README.md               # Этот файл

💬 Результат в Discord

Discord Demo

Пример уведомления в Discord канале

� Безопасность

⚠️ ВАЖНО: Защита конфиденциальных данных

Проект настроен для максимальной защиты ваших личных данных:

  • 🔒 Автоматическая проверка секретов - npm run security
  • 🛡️ Расширенный .gitignore - защищает от случайных коммитов
  • 📁 Изолированное хранение учетных данных в config/credentials/
  • 🔑 Переменные окружения вместо захардкоженных значений

Файлы, которые НИКОГДА не попадут в Git:

  • config/.env (ваши секреты)
  • config/credentials/ (Google Service Account)
  • logs/ (могут содержать чувствительную информацию)
  • Любые файлы с токенами, паролями, API ключами

📚 Подробнее: SETUP.md


�🔧 Доступные команды

npm start           # Запуск бота в продакшн режиме
npm run dev         # Запуск в режиме разработки с автоперезагрузкой
npm run setup       # Первоначальная настройка проекта
npm run google-setup # Инструкции по настройке Google Cloud
npm run validate    # Проверка конфигурации
npm run security    # Проверка безопасности проекта
npm run precommit   # Полная проверка перед коммитом
npm run clean       # Очистка логов
npm test           # Запуск тестов (в разработке)

📊 Как это работает

Architecture

  1. Мониторинг: Бот периодически (каждые 10 секунд) проверяет Google Sheets на наличие изменений
  2. Обнаружение: При обнаружении новых данных бот получает последнюю добавленную строку
  3. Форматирование: Данные форматируются в красивое embed сообщение
  4. Отправка: Сообщение отправляется в указанный Discord канал через webhook
  5. Логирование: Все действия записываются в лог файлы для отладки

🛠️ Кастомизация

Изменение интервала проверки

В файле src/config/config.js:

app: {
  checkInterval: 10000, // в миллисекундах (10 секунд)
}

Настройка диапазона данных

google: {
  range: 'Sheet1!C2:F' // Измените диапазон по необходимости
}

Кастомизация Discord сообщений

В файле src/services/DiscordService.js можно изменить:

  • Цвет embed сообщений
  • Формат отображения данных
  • Дополнительные поля

🔍 Отладка

Просмотр логов

# Просмотр логов текущего дня
cat logs/$(date +%Y-%m-%d).log

# Отслеживание логов в реальном времени
tail -f logs/$(date +%Y-%m-%d).log

Типичные проблемы

  1. "Ошибка аутентификации Google"

    • Проверьте правильность файла учетных данных
    • Убедитесь, что Google Sheets API включен
  2. "Ошибка Discord webhook"

    • Проверьте корректность URL webhook
    • Убедитесь, что бот имеет права на отправку сообщений
  3. "Sheet ID не найден"

    • Проверьте правильность ID таблицы в конфигурации
    • Убедитесь, что сервисный аккаунт имеет доступ к таблице

🤝 Вклад в проект

Любые вклады очень ценятся! Создайте issue или pull request с описанием изменений.

  1. Fork проект
  2. Создайте ветку для новой функции (git checkout -b feature/amazing-feature)
  3. Зафиксируйте изменения (git commit -m 'Add amazing feature')
  4. Отправьте в ветку (git push origin feature/amazing-feature)
  5. Откройте Pull Request

⭐ Поддержка проекта

Если проект вам помог, поставьте ⭐ звездочку на GitHub!

📊 Статистика проекта

GitHub repo size Lines of code GitHub last commit

📄 Лицензия

Этот проект лицензирован под MIT License - см. файл LICENSE для деталей.

👥 Авторы

  • evgnbch - Основной разработчик - GitHub

Полный список участников проекта.

🙏 Благодарности

  • Google за предоставление API для работы с Sheets
  • Discord за удобный API для интеграций
  • Node.js сообществу за отличные библиотеки
  • Всем участникам проекта

⭐ Если проект был полезен, поставьте звездочку! ⭐

🚀 Начать использовать📖 Документация🐛 Сообщить об ошибке💡 Предложить функцию

About

Node.js bot that monitors Google Sheets in real-time and sends beautifully formatted notifications to Discord channels via webhooks. Easy to set up with secure credential management.

Topics

Resources

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages