frolovelo / saloon_bot

telegram bot for booking to a beauty salon using Google Sheets
21 stars 3 forks source link

saloon_bot πŸ’…

saloon_bot - Telegram bot для записи Π² салон красоты с использованиСм Google Sheets

Static Badge Static Badge Static Badge Static Badge

IMG-1551-1


ОписаниС

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ прСдставляСт собой Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌΠΌ Π±ΠΎΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π² салон красоты. Π‘ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Google Sheets для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Ρ… ΠΈ ΠΈΡ… записях.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹: https://docs.google.com/spreadsheets/d/1VmucIj0jhJcIDv3tkfpXtlLoDRh4Zhoa8DuCTzOuhuQ/edit?usp=sharing

telebot documentation: https://github.com/eternnoir/pyTelegramBotAPI

gspread documentation: https://docs.gspread.org/en/v5.7.2/

Установка

git clone https://github.com/frolovelo/saloon_bot.git

Зависимости

Windows

pip install -r requirements.txt

macOS/Linux:

pip3 install -r requirements.txt

Активация Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ окруТСния (Windows):

\venv\Scripts\activate

Активация Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ окруТСния (macOS/Linux):

source venv/bin/activate

ИспользованиС

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ config.py с содСрТимым:
    TOKEN = "YOUR_BOT_TOKEN"
  2. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ json key ΠΎΡ‚ Google Sheets (ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ: https://www.youtube.com/watch?v=82DGz7IxW7c)

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠ»ΡŽΡ‡Π°:

{
  "type": "service_account",
  "project_id": "beautysaloon",
  "private_key_id": "fGEFEfeEWR343253235",
  "private_key": "-----BEGIN PRIVATE KEY-----\n",
  "client_email": "my-account-service@beautysaloon.iam.gserviceaccount.com",
  "client_id": "10275785785778592",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/my-account-service",
  "universe_domain": "googleapis.com"
}
  1. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° Π² google_sheet.py

    # НазваниС Ρ„Π°ΠΉΠ»Π° json ΠΊΠ»ΡŽΡ‡Π°
    creds = Credentials.from_service_account_file('YOUR_NAME_KEY.json', scopes=myscope)
    client_main = gspread.Client(creds)
  2. Для тСстового запуска рСкомСндуСтся ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹: https://docs.google.com/spreadsheets/d/1VmucIj0jhJcIDv3tkfpXtlLoDRh4Zhoa8DuCTzOuhuQ/edit?usp=sharing

  3. Π‘ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° свои Π² google_sheet.py

    # НазваниС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
    sh = client_main.open('YOUR_TABLE_NAME')
    # Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ
    IGNOR_WORKSHEETS = ['Π Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΈ']
    # Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пСрСчислСны всС Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΈ ΠΈ услуги
    NAME_SHEET_WORKERS = 'Π Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΈ'
    # Названия основных ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ(ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΡΡ‚ΡŒ Π²Π°ΠΆΠ½Π°!)
    NAME_COL_SERVICE = 'Услуга'
    NAME_COL_MASTER = 'ΠœΠ°ΡΡ‚Π΅Ρ€'
    • sh = client_main.open('YOUR_TABLE_NAME') - имя вашСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
    • IGNOR_WORKSHEETS - ΠΈΠΌΠ΅Π½Π° листов, структура ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… отличаСтся ΠΎΡ‚ листов для записи
    • NAME_SHEET_WORKERS - имя листа со всСми услугами ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ°ΠΌΠΈ
    • NAME_COL_SERVICE ΠΈ NAME_COL_MASTER - названия ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π² вашСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:

  1. Лист NAME_SHEET_WORKERS трСбуСтся для Π²Ρ‹Π΄Π°Ρ‡ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ списка мастСров ΠΈ услуг;

image

  1. Листы для записи Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΠΌΠ΅Π½ΠΈ: 'Π΄Π΄.ΠΌΠΌ.Π³Π³';

image

  1. Π’ листах для записи слСдуСт ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ лишь ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ: 'Услуга', 'ΠœΠ°ΡΡ‚Π΅Ρ€', врСмя для записи Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° своё усмотрСниС.

123123123

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π’ΠΊΠ»Π°Π΄ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

Если Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ ошибки ΠΈΠ»ΠΈ Ρƒ вас Π΅ΡΡ‚ΡŒ прСдлоТСния ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, поТалуйста, создайтС Issue ΠΈΠ»ΠΈ Pull Request Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

TO-DO

РСфСрСнсы

purgy - Telebot ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŒ