{"id":30623658,"url":"https://github.com/mo7ammedd/prayercli","last_synced_at":"2025-08-30T16:43:06.476Z","repository":{"id":311910814,"uuid":"1044231322","full_name":"Mo7ammedd/PrayerCli","owner":"Mo7ammedd","description":"C# console app for calculating Islamic prayer times, Qibla direction, and Hijri date with IP geolocation, multiple methods, and styled CLI output.","archived":false,"fork":false,"pushed_at":"2025-08-27T11:13:28.000Z","size":81,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-27T20:32:43.137Z","etag":null,"topics":["cli-app","csharp","islamic-prayer-times","prayer-times"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mo7ammedd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-25T11:28:30.000Z","updated_at":"2025-08-27T11:36:46.000Z","dependencies_parsed_at":"2025-08-27T20:32:48.446Z","dependency_job_id":"86c8a981-d047-4ccd-a192-ee4910340601","html_url":"https://github.com/Mo7ammedd/PrayerCli","commit_stats":null,"previous_names":["mo7ammedd/prayercli"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/Mo7ammedd/PrayerCli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mo7ammedd%2FPrayerCli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mo7ammedd%2FPrayerCli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mo7ammedd%2FPrayerCli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mo7ammedd%2FPrayerCli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mo7ammedd","download_url":"https://codeload.github.com/Mo7ammedd/PrayerCli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mo7ammedd%2FPrayerCli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272878207,"owners_count":25008340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli-app","csharp","islamic-prayer-times","prayer-times"],"created_at":"2025-08-30T16:43:03.250Z","updated_at":"2025-08-30T16:43:06.465Z","avatar_url":"https://github.com/Mo7ammedd.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Prayer CLI\n\nA beautiful, feature-rich console application for Islamic prayer times, Qibla direction, and Hijri dates built with .NET 8.\n\n**Created by [mo7ammedd](https://github.com/Mo7ammedd)**\n\n## Features\n\n- **Accurate Prayer Times**: Uses Adhan.NET library with multiple calculation methods\n- **Qibla Direction**: Calculate direction to Kaaba with visual compass\n- **Hijri Calendar**: Umm al-Qura calendar support\n- **Auto-location**: IP-based geolocation detection\n- **Multiple Methods**: Support for various prayer calculation methods\n- **Beautiful UI**: Rich console output with Spectre.Console\n- **Countdown Timer**: Real-time countdown to next prayer\n- **Jumu'ah Reminders**: Special Friday highlights with Khutbah reminders and Surah Al-Kahf suggestions\n- **Configuration**: Save and load default settings\n- **Cross-platform**: Works on Windows, macOS, and Linux\n\n## Installation\n\n### Prerequisites\n- .NET 8.0 SDK or Runtime\n\n### Build from Source\n```bash\ngit clone https://github.com/Mo7ammedd/PrayerCli.git\ncd PrayerCli\ndotnet restore\ndotnet build\ndotnet run\n```\n\n### Publish Single File\n```bash\ndotnet publish -c Release -r linux-x64 --self-contained true\n```\n\n## Usage\n\n### Basic Commands\n\n#### Get Prayer Times (Default)\n```bash\n# Use saved defaults or auto-detect location\ndotnet run\n\n# Auto-detect location from IP\ndotnet run --ip\n\n# Specify coordinates\ndotnet run --lat 40.7128 --lon -74.0060 --tz \"America/New_York\"\n```\n\n#### Prayer Command\n```bash\n# Get prayer times for today\ndotnet run prayer\n\n# Get prayer times for specific date\ndotnet run prayer --date 2024-01-15\n\n# Use specific calculation method\ndotnet run prayer --method UmmAlQura --school Hanafi\n\n# Save current settings as defaults\ndotnet run prayer --lat 40.7128 --lon -74.0060 --save-defaults\n```\n\n#### Qibla Command\n```bash\n# Get Qibla direction\ndotnet run qibla\n\n# Get Qibla for specific location\ndotnet run qibla --lat 40.7128 --lon -74.0060\n```\n\n#### Jumu'ah Command\n```bash\n# Show Jumu'ah (Friday) reminders and information\ndotnet run jumuah\n\n# Show Jumu'ah info for specific date\ndotnet run jumuah --date 2024-01-19\n\n# Show detailed Surah Al-Kahf information\ndotnet run jumuah --show-surah-info\n\n# Use Arabic language\ndotnet run jumuah --lang ar\n```\n\n### Command Line Options\n\n| Option | Short | Description | Example |\n|--------|-------|-------------|---------|\n| `--lat` | `-l` | Latitude coordinate (-90 to 90) | `--lat 40.7128` |\n| `--lon` | `-o` | Longitude coordinate (-180 to 180) | `--lon -74.0060` |\n| `--tz` | `-t` | Timezone | `--tz \"America/New_York\"` |\n| `--ip` | `-i` | Auto-detect location from IP | `--ip` |\n| `--method` | `-m` | Calculation method | `--method UmmAlQura` |\n| `--school` | `-s` | Islamic school (Shafi/Hanafi) | `--school Hanafi` |\n| `--date` | `-d` | Date (YYYY-MM-DD) | `--date 2024-01-15` |\n| `--save-defaults` | | Save current settings | `--save-defaults` |\n| `--show-surah-info` | | Show Surah Al-Kahf details (Jumu'ah command) | `--show-surah-info` |\n\n### Calculation Methods\n\n- **MWL** - Muslim World League (default)\n- **UmmAlQura** - Umm al-Qura University, Makkah\n- **Egypt** - Egyptian General Authority of Survey\n- **Makkah** - Umm al-Qura University, Makkah\n- **Karachi** - University of Islamic Sciences, Karachi\n- **ISNA** - Islamic Society of North America\n- **Tehran** - Institute of Geophysics, Tehran\n- **Jafari** - Shia Ithna Ashari\n\n### Islamic Schools\n\n- **Shafi** - Shafi'i school (default)\n- **Hanafi** - Hanafi school\n\n## New Features\n\n- Themes: `--theme` supports `dark`, `light`, `solarized`\n- Multi-language: `--lang` supports `en`, `ar`\n- Prayer Time History: show ranges with `--days N` starting from `--date`\n- Export to Calendar: `--export-ics \u003cpath\u003e` to export selected day as an ICS file\n\n### Examples\n\n```bash\n# Themed + Arabic\ndotnet run -- prayer --ip --theme solarized --lang ar\n\n# History (7 days from a date)\ndotnet run -- prayer --ip --date 2025-09-01 --days 7\n\n# Export ICS for today\ndotnet run -- prayer --ip --export-ics today.ics\n\n# Light theme, English, Cairo\ndotnet run -- prayer --lat 30.0444 --lon 31.2357 --tz \"Africa/Cairo\" --theme light --lang en\n```\n\n### Extra Options\n\n| Option | Description |\n|--------|-------------|\n| `--theme` | Visual theme: `dark`, `light`, `solarized` |\n| `--lang` | Language: `en`, `ar` |\n| `--days` | Number of days to display from `--date` (history/forecast) |\n| `--export-ics` | Export selected day to ICS file path |\n\n## Commands\n\n### prayer\n```\ndotnet run -- prayer [options]\n```\nOptions:\n- --ip | --lat --lon --tz\n- --method MWL|UmmAlQura|Egypt|Makkah|Karachi|ISNA|Tehran|Jafari\n- --school Shafi|Hanafi\n- --date YYYY-MM-DD\n- --save-defaults\n- --theme dark|light|solarized\n- --lang en|ar\n- --days N (print range from --date)\n- --export-ics path.ics (export selected day)\n\nExamples:\n```\ndotnet run -- prayer --ip --theme solarized --lang ar\ndotnet run -- prayer --lat 30.0444 --lon 31.2357 --tz \"Africa/Cairo\" --date 2025-09-01 --days 7\n```\n\n### qibla\n```\ndotnet run -- qibla [--ip | --lat --lon --tz]\n```\n\n### live\n```\ndotnet run -- live [--ip | --lat --lon --tz] [--theme THEME] [--lang LANG]\n```\nContinuously updates current time, statuses, and countdown. Ctrl+C to exit.\n\n### week\n```\ndotnet run -- week [--ip | --lat --lon --tz] [--theme THEME] [--lang LANG] [--start-date YYYY-MM-DD] [--export file]\n```\n- --export supports .csv or .json\n\nExamples:\n```\ndotnet run -- week --ip\ndotnet run -- week --ip --start-date 2025-09-01 --export week.csv\n```\n\n## Project Structure\n\n```\nPrayerCli/\n├── Commands/          # CLI command handlers\n├── Models/            # Data models\n├── Services/          # Business logic services\n├── Utils/             # Utility functions\n├── PrayerCli.csproj   # Project file\n└── README.md          # This file\n```\n\n### Key Components\n\n- **`PrayerCommand`**: Main prayer times command handler\n- **`QiblaCommand`**: Qibla direction command handler\n- **`PrayerCalculationService`**: Prayer time calculations using Adhan.NET\n- **`GeolocationService`**: IP-based location detection\n- **`QiblaService`**: Qibla direction calculations\n- **`ConsoleUtils`**: Beautiful console output formatting\n\n## Configuration\n\nThe application automatically creates a configuration file at `~/.prayercli/config.json` when you use the `--save-defaults` flag. This file stores:\n\n- Latitude and longitude coordinates\n- Timezone\n- Preferred calculation method\n- Preferred Islamic school\n\n## Geolocation\n\nThe app uses [ip-api.com](http://ip-api.com) for IP-based geolocation. This service provides:\n\n- Accurate coordinates\n- City and country information\n- Timezone detection\n\n## Dependencies\n\n- **Adhan.NET**: Prayer time calculations\n- **Spectre.Console**: Beautiful console output\n- **System.CommandLine**: CLI argument parsing\n- **System.Text.Json**: JSON configuration handling\n\n## Testing\n\n```bash\ndotnet test\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests if applicable\n5. Submit a pull request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Author\n\n**mo7ammedd** - [GitHub Profile](https://github.com/Mo7ammedd)\n\n## Acknowledgments\n\n- [Adhan.NET](https://github.com/batoulapps/adhan-dotnet) for prayer time calculations\n- [Spectre.Console](https://spectreconsole.net/) for beautiful console output\n- [ip-api.com](http://ip-api.com) for geolocation services\n\n## Support\n\nIf you encounter any issues or have questions, please:\n\n1. Check the existing issues\n2. Create a new issue with detailed information\n3. Include your operating system and .NET version\n\n---\n\n## Releases\n\nPrebuilt binaries are published on the GitHub Releases page.\n\n- Latest release: https://github.com/Mo7ammedd/PrayerCli/releases/latest\n\nDownload for your OS, then run:\n\n- Linux: `chmod +x PrayerCli \u0026\u0026 ./PrayerCli`\n- macOS: `chmod +x PrayerCli \u0026\u0026 ./PrayerCli`\n- Windows: `PrayerCli.exe`\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmo7ammedd%2Fprayercli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmo7ammedd%2Fprayercli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmo7ammedd%2Fprayercli/lists"}