Skip to content

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

License

Notifications You must be signed in to change notification settings

WizardLoop/JewishPulse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

JewishPulse Animation

✡️✨ JewishPulse

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 PHP 8.2+

Telegram Telegram

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

🚀 Quickstart Guide

🧪 Automatic Installation (recommended)

Use the following command to clone and install the bot automatically:

curl -sSL https://raw.githubusercontent.com/WizardLoop/JewishPulse/main/install.sh | bash

🛠 Manual Setup

1️⃣ Clone the repository

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

2️⃣ Install dependencies

Install PHP dependencies using Docker:

make composer-install

This runs composer install inside the container.

3️⃣ Launch the bot

make up

The bot will start running in the background.

🔍 View logs

make logs

Live log output of your bot.


⚙️ Common Commands

Command Description
make build Build the Docker image
make up Start the bot in the background
make down Stop and remove the bot container
make restart Restart the bot quickly
make logs View real-time bot logs
make sh Access shell inside the Docker container
make composer-dump Reload Composer autoload
make test Run PHPUnit tests
make phpcs Run PHP_CodeSniffer checks
make cs-fix Fix code style using PHP-CS-Fixer
make clean Clean up cache, data, and vendor folders
make gitattributes-check Normalize line endings using .gitattributes

🔐 Environment Configuration

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

cp .env.example .env

Fill in values like:

  • BOT_TOKEN
  • ADMIN_ID
  • GEONAMES_USERNAME

🌐 Inline Location Search

Type @YourBotUsername your_city_name in any chat to:

  • Get your Daf Yomi for today
  • Set Shabbat timezones per user

🧪 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:

make test

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

🎨 Code Style

Run PHP_CodeSniffer to check your code:

make phpcs

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

make cs-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

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

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published