Telegram bot for Ethiopian music lyrics with inline search functionality
# Mezmur Telegram Bot
A Telegram bot for discovering and listening to Ethiopian music lyrics, powered by the Mezmur FastAPI service.
## Features
- 🔍 **Search**: Fast prefix search and full text search
- 🎵 **Lyrics**: Get plain text or rich HTML formatted lyrics
- 👤 **Artists**: Browse artists and their albums
- 💿 **Albums**: Explore albums and their songs
- 🎯 **Interactive**: Clickable buttons for easy navigation
## Commands
### Search Commands
- `/search ` - Fast prefix search
- `/search_full ` - Full text search
### Lyrics Commands
- `/lyrics ` - Plain text lyrics
- `/rich_lyrics ` - HTML formatted lyrics
- `/random_lyrics` - Random song lyrics
### Artist & Album Commands
- `/artist ` - Get albums by artist
- `/album ` - Get songs in album
- `/artists` - List all artists
## Setup
### 1. Prerequisites
- Python 3.11+
- Telegram Bot Token (from @BotFather)
- Running Mezmur API service
### 2. Installation
```bash
# Clone the repository
git clone
cd telegram-bot
# Install dependencies
pip install -r requirements.txt
# Set environment variables
export TELEGRAM_BOT_TOKEN="your_bot_token_here"
export API_BASE_URL="
localhost"
```
### 3. Running the Bot
```bash
# Start the bot
python bot.py
```
### 4. Using Docker
```bash
# Build and run with Docker Compose
docker-compose up --build
```
## Configuration
### Environment Variables
- `TELEGRAM_BOT_TOKEN` - Your Telegram bot token (required)
- `API_BASE_URL` - URL of the Mezmur API service (default:
localhost)
### Getting a Telegram Bot Token
1. Message @BotFather on Telegram
2. Use `/newbot` command
3. Follow the instructions to create your bot
4. Copy the token and set it as `TELEGRAM_BOT_TOKEN`
## Usage Examples
### Search for Music
```
/search samuel tesfa
/search_full misale
```
### Get Lyrics
```
/lyrics Samuel Tesfamichael/Misale Yeleleh/Yekebere
/rich_lyrics Samuel Tesfamichael/Misale Yeleleh/Yekebere
```
### Browse Artists and Albums
```
/artist Samuel Tesf …