# Telegram Tinder Bot πŸ’• ΠŸΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Telegram Π±ΠΎΡ‚ для знакомств Π² стилС Tinder с ΠΈΠ½Π»Π°ΠΉΠ½-ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΈ красивым интСрфСйсом. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ, ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π°Π½ΠΊΠ΅Ρ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π»Π°ΠΉΠΊΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ‡ΠΈ ΠΈ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. ## ✨ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ### 🎯 ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ возмоТности - βœ… **Полная рСгистрация профиля** - пошаговоС созданиС Π°Π½ΠΊΠ΅Ρ‚Ρ‹ с фотографиями - βœ… **Π£ΠΌΠ½Ρ‹ΠΉ поиск ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ²** - Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ возрасту, ΠΏΠΎΠ»Ρƒ ΠΈ прСдпочтСниям - βœ… **Инлайн-ΠΊΠ½ΠΎΠΏΠΊΠΈ вмСсто свайпов** - ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Like/Dislike/SuperLike ΠΏΠΎΠ΄ фотографиями - βœ… **БистСма ΠΌΠ°Ρ‚Ρ‡ΠΈΠ½Π³Π°** - увСдомлСния ΠΎ Π²Π·Π°ΠΈΠΌΠ½Ρ‹Ρ… Π»Π°ΠΉΠΊΠ°Ρ… - βœ… **Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ фотографиями** - Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ просмотр Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„ΠΎΡ‚ΠΎ профиля - βœ… **Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ** - возраст, Π³ΠΎΡ€ΠΎΠ΄, Ρ€Π°Π±ΠΎΡ‚Π°, интСрСсы, описаниС - βœ… **Бтатистика ΠΌΠ°Ρ‚Ρ‡Π΅ΠΉ** - количСство Π»Π°ΠΉΠΊΠΎΠ² ΠΈ совпадСний - βœ… **Настройки поиска** - возрастныС Ρ€Π°ΠΌΠΊΠΈ ΠΈ Π³Π΅Π½Π΄Π΅Ρ€Π½Ρ‹Π΅ прСдпочтСния ### οΏ½ Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ элСмСнты - **πŸ‘ Π›Π°ΠΉΠΊ** - Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ ΡΠΈΠΌΠΏΠ°Ρ‚ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ - **πŸ‘Ž Дислайк** - ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ - **⭐ Π‘ΡƒΠΏΠ΅Ρ€Π»Π°ΠΉΠΊ** - ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ особый интСрСс - **πŸ‘€ ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ профиля** - Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Π°Ρ информация ΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π΅ - **πŸ“Έ Π‘ΠΎΠ»ΡŒΡˆΠ΅ Ρ„ΠΎΡ‚ΠΎ** - Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ изобраТСния профиля - **πŸ”„ Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ** - ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Ρƒ ### πŸ› οΈ ВСхничСскиС особСнности - **PostgreSQL** - надСТная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… с UUID ΠΈ индСксами - **TypeScript** - Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ошибок - **Telegram Bot API** - соврСмСнныС ΠΈΠ½Π»Π°ΠΉΠ½-ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ - **ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π‘Π”** - структурированная схСма Π΄Π°Π½Π½Ρ‹Ρ… - **Error Handling** - ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ валидация Π΄Π°Π½Π½Ρ‹Ρ… - **Docker Support** - контСйнСризация для развСртывания ## πŸ›  Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ - **Node.js 18+** + **TypeScript** - **PostgreSQL 16** для хранСния Π΄Π°Π½Π½Ρ‹Ρ… - **node-telegram-bot-api** для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Telegram API - **UUID** для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ID - **dotenv** для управлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ## οΏ½ Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ ### πŸš€ Π“Π»Π°Π²Π½ΠΎΠ΅ мСню ``` πŸŽ‰ Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² Telegram Tinder Bot! πŸ€– Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ дСйствиС: [πŸ” Π˜ΡΠΊΠ°Ρ‚ΡŒ людСй] [πŸ‘€ Мой ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ] [πŸ’• Мои ΠΌΠ°Ρ‚Ρ‡ΠΈ] [βš™οΈ Настройки] ``` ### πŸ’« ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π°Π½ΠΊΠ΅Ρ‚Ρ‹ ``` πŸ‘¨ АлСксСй, 25 πŸ“ Москва πŸ’Ό ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ 🎯 Π’ поискС: Π‘Π΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ "Π›ΡŽΠ±Π»ΡŽ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ!" [πŸ‘Ž Дислайк] [⭐ Π‘ΡƒΠΏΠ΅Ρ€Π»Π°ΠΉΠΊ] [πŸ‘ Π›Π°ΠΉΠΊ] [πŸ‘€ ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŒ] [πŸ“Έ Π•Ρ‰Ρ‘ Ρ„ΠΎΡ‚ΠΎ] [πŸ”„ Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ] ``` ### 🎯 Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ ΠΌΠ°Ρ‚Ρ‡Π΅ ``` πŸŽ‰ Π£ вас Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ°Ρ‚Ρ‡! πŸ’• Π’Ρ‹ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΈΡΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ с Анной! Π‘Π°ΠΌΠΎΠ΅ врСмя Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅! 😊 [πŸ’¬ ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ] [πŸ‘€ ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŒ] [πŸ” ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ поиск] ``` ## πŸ—‚οΈ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ``` telegram-tinder-bot/ β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ bot.ts # Основной Ρ„Π°ΠΉΠ» Π±ΠΎΡ‚Π° β”‚ β”œβ”€β”€ handlers/ # ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий β”‚ β”‚ β”œβ”€β”€ commandHandlers.ts # ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ (/start, /profile, etc.) β”‚ β”‚ β”œβ”€β”€ callbackHandlers.ts # Инлайн-ΠΊΠ½ΠΎΠΏΠΊΠΈ (Π»Π°ΠΉΠΊΠΈ, просмотр) β”‚ β”‚ └── messageHandlers.ts # ВСкстовыС сообщСния β”‚ β”œβ”€β”€ services/ # БизнСс-Π»ΠΎΠ³ΠΈΠΊΠ° β”‚ β”‚ β”œβ”€β”€ profileService.ts # Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ профилями β”‚ β”‚ β”œβ”€β”€ matchingService.ts # Алгоритм совпадСний β”‚ β”‚ └── notificationService.ts # УвСдомлСния β”‚ β”œβ”€β”€ models/ # МодСли Π΄Π°Π½Π½Ρ‹Ρ… β”‚ β”‚ β”œβ”€β”€ User.ts # ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Telegram β”‚ β”‚ β”œβ”€β”€ Profile.ts # ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŒ знакомств β”‚ β”‚ β”œβ”€β”€ Swipe.ts # Π›Π°ΠΉΠΊΠΈ/дислайки β”‚ β”‚ └── Match.ts # БовпадСния β”‚ └── database/ # Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… β”‚ β”œβ”€β”€ connection.ts # ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ PostgreSQL β”‚ └── migrations/init.sql # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† β”œβ”€β”€ config/ # ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ β”‚ └── default.json # Настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β”œβ”€β”€ docker-compose.yml # Docker Compose β”œβ”€β”€ Dockerfile # Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ └── package.json # Зависимости npm ``` ## πŸš€ Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ### πŸ“¦ Docker (РСкомСндуСтся) ```bash # ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ git clone cd telegram-tinder-bot # ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния cp .env.example .env # ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ .env Ρ„Π°ΠΉΠ» # Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ с Docker Compose docker-compose up -d # ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π‘Π” docker-compose exec app npm run db:migrate ``` ### πŸ–₯️ ΠžΠ±Ρ‹Ρ‡Π½Π°Ρ установка ```bash # Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости npm install # Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… createdb telegram_tinder_bot psql -d telegram_tinder_bot -f src/database/migrations/init.sql # Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π±ΠΎΡ‚Π° npm run build npm start ``` ### ☁️ ΠŸΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½ ```bash # Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ PM2 npm install -g pm2 # Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· PM2 pm2 start ecosystem.config.js # ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ pm2 monit pm2 logs telegram-tinder-bot ``` ## πŸ”§ Настройка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ `.env` Ρ„Π°ΠΉΠ»: ```env # Telegram Bot TELEGRAM_BOT_TOKEN=123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 # PostgreSQL Database DB_HOST=localhost DB_PORT=5432 DB_NAME=telegram_tinder_bot DB_USER=postgres DB_PASSWORD=your_secure_password # Application NODE_ENV=production PORT=3000 LOG_LEVEL=info # Optional: File uploads UPLOAD_DIR=./uploads MAX_FILE_SIZE=5242880 ALLOWED_FILE_TYPES=image/jpeg,image/png,image/gif ``` ## πŸ” ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ Π»ΠΎΠ³ΠΈ ```bash # ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π»ΠΎΠ³ΠΎΠ² Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ tail -f logs/app.log # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° статуса Π±ΠΎΡ‚Π° curl http://localhost:3000/health # ВСстированиС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… npm run test:db # Запуск Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ npm run dev ``` ## πŸš€ Быстрый старт ### 1. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования - Node.js 16+ - PostgreSQL 12+ - Telegram Bot Token (ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρƒ [@BotFather](https://t.me/BotFather)) ### 2. Установка ```bash # ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ git clone cd telegram-tinder-bot # Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости npm install # Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ TypeScript npm run build ``` ### 3. Настройка Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ```bash # Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… PostgreSQL createdb telegram_tinder_bot # Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ psql -d telegram_tinder_bot -f src/database/migrations/init.sql ``` ### 4. Запуск Π±ΠΎΡ‚Π° ```bash # ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ TypeScript npm run build # Запуск Π±ΠΎΡ‚Π° npm start ``` ## πŸ“– ИспользованиС ### πŸ€– ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΠΎΡ‚Π° - `/start` - **Π“Π»Π°Π²Π½ΠΎΠ΅ мСню** - рСгистрация ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ мСню - `/profile` - **Мой ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ** - просмотр ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ профиля - `/browse` - **Поиск Π°Π½ΠΊΠ΅Ρ‚** - просмотр Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ - `/matches` - **Мои ΠΌΠ°Ρ‚Ρ‡ΠΈ** - список Π²Π·Π°ΠΈΠΌΠ½Ρ‹Ρ… Π»Π°ΠΉΠΊΠΎΠ² - `/settings` - **Настройки** - ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΌ ΠΈ прСдпочтСниями - `/help` - **Π‘ΠΏΡ€Π°Π²ΠΊΠ°** - информация ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ### πŸ’« ΠŸΡ€ΠΎΡ†Π΅ΡΡ использования 1. **РСгистрация**: `/start` β†’ Π²Ρ‹Π±ΠΎΡ€ ΠΏΠΎΠ»Π° β†’ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… β†’ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„ΠΎΡ‚ΠΎ 2. **Поиск**: `/browse` β†’ просмотр Π°Π½ΠΊΠ΅Ρ‚ с ΠΈΠ½Π»Π°ΠΉΠ½-ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ 3. **Π›Π°ΠΉΠΊΠΈ**: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΠ΄ фотографиями ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² 4. **ΠœΠ°Ρ‚Ρ‡ΠΈ**: ΠŸΡ€ΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΌ Π»Π°ΠΉΠΊΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ ΠΌΠ°Ρ‚Ρ‡Π΅ 5. **ΠžΠ±Ρ‰Π΅Π½ΠΈΠ΅**: ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΊ Ρ‡Π°Ρ‚Ρƒ с ΠΌΠ°Ρ‚Ρ‡Π°ΠΌΠΈ (функция Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅) ## βš™οΈ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ### ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ настройки ```json { "app": { "maxPhotos": 6, // ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ Ρ„ΠΎΡ‚ΠΎ Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ "maxDistance": 100, // МаксимальноС расстояниС поиска (ΠΊΠΌ) "minAge": 18, // ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ возраст "maxAge": 99, // ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ возраст "superLikesPerDay": 1, // Π‘ΡƒΠΏΠ΅Ρ€Π»Π°ΠΉΠΊΠΎΠ² Π² дСнь "likesPerDay": 100 // ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Π»Π°ΠΉΠΊΠΎΠ² Π² дСнь }, "limits": { "maxBioLength": 500, // Максимальная Π΄Π»ΠΈΠ½Π° описания "maxInterests": 10, // ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ интСрСсов "photoMaxSize": 5242880 // ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„ΠΎΡ‚ΠΎ (5MB) } } ``` ## πŸ—„οΈ Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ### ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ - **users** - ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Telegram (id, username, first_name, last_name) - **profiles** - АнкСты знакомств (name, age, gender, bio, photos, location, job) - **search_preferences** - Настройки поиска (age_min, age_max, looking_for) - **swipes** - Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Π»Π°ΠΉΠΊΠΎΠ²/дислайков (user_id, target_id, action) - **matches** - Π’Π·Π°ΠΈΠΌΠ½Ρ‹Π΅ Π»Π°ΠΉΠΊΠΈ (user_id, matched_user_id, created_at) ### Π‘Ρ…Π΅ΠΌΠ° Π‘Π” Полная схСма создаСтся автоматичСски Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ: ```sql -- Π’Π°Π±Π»ΠΈΡ†Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Telegram CREATE TABLE users ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), telegram_id BIGINT UNIQUE NOT NULL, username VARCHAR(255), first_name VARCHAR(255) NOT NULL, last_name VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Π’Π°Π±Π»ΠΈΡ†Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ знакомств CREATE TABLE profiles ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID REFERENCES users(id) ON DELETE CASCADE, name VARCHAR(255) NOT NULL, age INTEGER NOT NULL CHECK (age >= 18 AND age <= 99), gender VARCHAR(10) NOT NULL, bio TEXT, photos TEXT[], -- JSON массив Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ location VARCHAR(255), job VARCHAR(255), interests TEXT[], -- JSON массив интСрСсов is_active BOOLEAN DEFAULT true, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ``` ## πŸ“Š Алгоритм ΠΌΠ°Ρ‚Ρ‡ΠΈΠ½Π³Π° Π£ΠΌΠ½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠΎΠ΄Π±ΠΎΡ€Π° ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ²: 1. **Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ прСдпочтСниям** - возраст ΠΈ ΠΏΠΎΠ» согласно настройкам 2. **Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ просмотрСнных** - пропуск ΡƒΠΆΠ΅ Π»Π°ΠΉΠΊΠ½ΡƒΡ‚Ρ‹Ρ…/дислайкнутых 3. **ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ активности** - Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ 4. **Рандомизация** - случайный порядок для разнообразия 5. **ГСографичСская Π±Π»ΠΈΠ·ΠΎΡΡ‚ΡŒ** - сортировка ΠΏΠΎ Π³ΠΎΡ€ΠΎΠ΄Ρƒ (Ссли ΡƒΠΊΠ°Π·Π°Π½) ```typescript // ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска async findCandidates(userId: string): Promise { return await this.db.query(` SELECT DISTINCT p.* FROM profiles p JOIN search_preferences sp ON sp.user_id = $1 WHERE p.user_id != $1 AND p.is_active = true AND p.age >= sp.age_min AND p.age <= sp.age_max AND p.gender = sp.looking_for AND NOT EXISTS ( SELECT 1 FROM swipes s WHERE s.user_id = $1 AND s.target_id = p.user_id ) ORDER BY RANDOM() LIMIT 20 `, [userId]); } ``` ## πŸ”” БистСма ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ АвтоматичСскиС увСдомлСния ΠΎ Π²Π°ΠΆΠ½Ρ‹Ρ… событиях: - πŸ’– **Новый Π»Π°ΠΉΠΊ** - "ΠšΡ‚ΠΎ-Ρ‚ΠΎ Π»Π°ΠΉΠΊΠ½ΡƒΠ» ваш ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ!" - ⭐ **Π‘ΡƒΠΏΠ΅Ρ€Π»Π°ΠΉΠΊ** - "Π’Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΈΡΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ!" - πŸŽ‰ **Новый ΠΌΠ°Ρ‚Ρ‡** - "Π£ вас Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ°Ρ‚Ρ‡! НачнитС ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅!" - οΏ½ **Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅** - Напоминания Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ## 🚧 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ тСстированиС ### Π Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ```bash # Запуск с горячСй ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ npm run dev # ΠžΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Π΅ Π»ΠΎΠ³ΠΈ DEBUG=* npm run dev # ВСстированиС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ npm run test:unit npm run test:integration ``` ### Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠΎΠ΄Π° - **Handlers** - ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий Telegram (ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠ½ΠΎΠΏΠΊΠΈ, сообщСния) - **Services** - БизнСс-Π»ΠΎΠ³ΠΈΠΊΠ° (ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ, ΠΌΠ°Ρ‚Ρ‡ΠΈΠ½Π³, увСдомлСния) - **Models** - Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ интСрфСйсы TypeScript - **Database** - ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ PostgreSQL ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ - **Handlers** - ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий Telegram - **Types** - TypeScript интСрфСйсы ΠΈ Ρ‚ΠΈΠΏΡ‹ ## πŸ”’ Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ - Валидация всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… - Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ спама (Π»ΠΈΠΌΠΈΡ‚Ρ‹ Π½Π° дСйствия) - БистСма ΠΆΠ°Π»ΠΎΠ± ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ - Π¨ΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… - Rate limiting для API запросов ## πŸ“ˆ ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Для высоких Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ рСкомСндуСтся: - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Redis для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ## πŸš€ ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ### ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ - **Π˜Π½Π΄Π΅ΠΊΡΡ‹ Π‘Π”** - Π½Π° часто Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… полях (telegram_id, age, gender) - **ΠŸΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΡ** - ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² для экономии памяти - **ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅** - Redis для часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… - **ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ запросов** - минимизация ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ Π‘Π” ### ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ```bash # Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ pm2 start ecosystem.config.js -i max # ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ pm2 monit pm2 logs --lines 100 ``` Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π°: - PostgreSQL рСпликация (master-slave) - CDN для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ - Webhook вмСсто polling для Telegram API - Load balancer для мноТСствСнных инстансов ## 🀝 УчастиС Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠœΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ для Π²ΠΊΠ»Π°Π΄Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚! Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠΎΡ‡ΡŒ: ### πŸ› Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… 1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ [ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Issues](../../issues) 2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚ с: - ОписаниСм ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ - Π¨Π°Π³Π°ΠΌΠΈ воспроизвСдСния - ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ - Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π°ΠΌΠΈ (Ссли ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ) ### πŸ’‘ ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ 1. ΠžΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ 2. ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½Π° Π½ΡƒΠΆΠ½Π° 3. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚Π΅ mockup ΠΈΠ»ΠΈ схСму (Ссли Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ) ### πŸ”§ Pull Request ```bash # 1. Fork рСпозитория git clone https://github.com/your-username/telegram-tinder-bot.git # 2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ feature branch git checkout -b feature/amazing-feature # 3. ВнСситС измСнСния ΠΈ commit git commit -m 'feat: add amazing feature' # 4. Push ΠΈ создайтС PR git push origin feature/amazing-feature ``` ## πŸ“ ЛицСнзия Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ **MIT License**. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ см. Π² Ρ„Π°ΠΉΠ»Π΅ [LICENSE](LICENSE). ## πŸ†˜ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ сообщСство ### πŸ“ž ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ - **GitHub Issues** - для Π±Π°Π³ΠΎΠ² ΠΈ вопросов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ - **Discussions** - для ΠΎΠ±Ρ‰ΠΈΡ… вопросов ΠΈ ΠΈΠ΄Π΅ΠΉ - **Email** - support@example.com для ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ… вопросов ### 🎯 ДороТная ΠΊΠ°Ρ€Ρ‚Π° #### πŸ”œ Π‘Π»ΠΈΠΆΠ°ΠΉΡˆΠΈΠ΅ обновлСния - [ ] πŸ’¬ **Π§Π°Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ°Ρ‚Ρ‡Π°ΠΌΠΈ** - полноцСнная систСма сообщСний - [ ] πŸ” **Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹** - ΠΏΠΎ интСрСсам, ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ, росту - [ ] πŸ“± **Push-увСдомлСния** - ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹Π΅ оповСщСния ΠΎ Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ‡Π°Ρ… #### πŸš€ ДолгосрочныС ΠΏΠ»Π°Π½Ρ‹ - [ ] πŸŽ₯ **Π’ΠΈΠ΄Π΅ΠΎ-ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ** - ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ-ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ - [ ] πŸ€– **AI-Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ** - ΡƒΠΌΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Π±ΠΎΡ€ Π½Π° основС повСдСния - [ ] πŸ“Š **Аналитика** - статистика ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚ΠΈ ΠΈ активности - [ ] 🌍 **ГСолокация** - поиск ΠΏΠΎ Ρ€Π°ΡΡΡ‚ΠΎΡΠ½ΠΈΡŽ - [ ] πŸ’Ž **Premium Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ** - бустСры, супСрлайки, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ---

πŸ€– Telegram Tinder Bot

Made with ❀️ for connecting people

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» β€’ Установка β€’ ИспользованиС β€’ УчастиС

``` ## Установка 1. ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ: ``` git clone ``` 2. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°: ``` cd telegram-tinder-bot ``` 3. УстановитС зависимости: ``` npm install ``` ## ИспользованиС 1. НастройтС Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ `config/default.json`, ΡƒΠΊΠ°Π·Π°Π² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. 2. ЗапуститС Π±ΠΎΡ‚Π°: ``` npm start ``` ## Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ - **ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ**: ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ свои ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ. - **Π‘Π²Π°ΠΉΠΏΡ‹**: ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ²Π°ΠΉΠΏΠ°Ρ‚ΡŒ Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ для взаимодСйствия с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ. - **ΠœΠ°Ρ‚Ρ‡ΠΈ**: Π‘ΠΎΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ совпадСния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Π½Π° основС ΠΈΡ… свайпов. - **УвСдомлСния**: ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ увСдомлСния ΠΎ Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ‡Π°Ρ… ΠΈ сообщСниях. ## Π’ΠΊΠ»Π°Π΄ Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ внСсти свой Π²ΠΊΠ»Π°Π΄ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, поТалуйста, создайтС Ρ„ΠΎΡ€ΠΊ рСпозитория ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ ΠΏΡƒΠ»Π»-рСквСст с вашими измСнСниями. ## ЛицСнзия Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎΠ΄ MIT License.