Skip to content

WizardLoop/JewishPulse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

104 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

✑️✨ JewishPulse

❌ The development of the Jewish Pulse has been temporarily halted, I will soon continue to maintain and improve the code!


JewishPulse is a smart Telegram bot that connects users to daily Jewish life - from πŸ“œ Daf Yomi to πŸ•― Shabbat times and 🌍 location-based Halachic data.

✑️✨ Time. Holiness. Connection.

AGPL License Made with ❀️ in Israel Docker Ready Telegram


πŸ“¦ Features

  • πŸ“ Inline location-based Shabbat times & Daf Yomi
  • πŸ•― Real-time candle lighting info
  • πŸ“š Daily Daf Yomi updates via Hebcal
  • βš™οΈ Built using MadelineProto & PHP Coroutine Engine
  • 🌐 Multilingual and Geonames-integrated search

πŸ›  Installation Setup

1️⃣ Clone the repository

git clone https://github.com/WizardLoop/JewishPulse.git
cd JewishPulse

2️⃣ Install dependencies

Install PHP dependencies using Docker:

docker compose run --rm composer install

3️⃣ Launch the bot

docker compose up --pull always -d

The bot will start running in the background.

πŸ” View logs

docker compose logs

Live log output of your bot.


βš™οΈ Common Commands

Command Description
docker compose build Build the Docker image
docker compose up --pull always -d Start the bot in the background
docker compose down Stop and remove the bot container
docker compose restart Restart the bot quickly
docker compose logs View real-time bot logs
docker compose exec jewishpulse composer dump-autoload Reload Composer autoload
docker compose ps Show the status of Docker containers

πŸ” Environment Configuration

Copy the .env.example to .env and customize as needed:

cp .env.example .env

Fill in values like:

  • API_ID
  • API_HASH
  • BOT_TOKEN
  • ADMIN_ID
  • GEONAMES_USERNAME

🌐 Inline Location Search

Type @YourBotUsername your_city_name in any chat to:

  • Set Shabbat timezones

πŸ§ͺ Testing & Code Quality

This project uses PHPUnit for unit testing and PHP_CodeSniffer / PHP-CS-Fixer for code style enforcement.

βœ… Running Tests

To run all unit tests:

docker compose exec jewishpulse vendor/bin/phpunit

Tests live in the /tests directory and follow PSR standards.

🎨 Code Style

Run PHP_CodeSniffer to check your code:

docker compose exec jewishpulse vendor/bin/phpcs

Auto-fix code style issues using PHP-CS-Fixer:

docker compose exec jewishpulse vendor/bin/php-cs-fixer fix

πŸ›  Advanced Usage

  • πŸ“‘ Geolocation-based Halachic times (via GeoNames API)
  • πŸ”„ Persistent storage of user location
  • πŸ• Personalized Zmanim via Hebcal API
  • πŸ§ͺ Fully asynchronous using Amp and MadelineProto
  • βš™οΈ GitHub Actions CI with: PHPUnit, PHPCS, CS-Fixer, locale checks, bot output simulation

🀝 Contributing

Pull requests are welcome! To contribute:

  1. Fork the repo
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Commit your changes: git commit -m 'Add my feature'
  4. Push to the branch: git push origin feature/my-feature
  5. Open a PR πŸ™Œ

πŸ“„ License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).

See LICENSE for details.


πŸ™ Acknowledgments


πŸ“« Questions, suggestions, feedback? Open an issue or contact @WizardLoop.

About

✑️ smart Telegram bot that connects users to daily Jewish life - from πŸ“œ Daf Yomi to πŸ•― Shabbat times and 🌍 location-based Halachic data.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors