1 个不稳定版本
0.1.0 | 2024年2月11日 |
---|
#265 in 日期和时间
175KB
1K SLoC
salah
基于Rust的命令行工具,能够高效计算伊斯兰祈祷时间,无需外部API调用,非常适合将准确的祈祷时间表集成到服务器和伊斯兰应用程序中。
✨ 特性
- 位置特定:根据指定位置计算所有相关伊斯兰祈祷时间。
- 时区特定:根据定义的时区输出时间。
- 独立于API:无需任何外部API调用计算时间(需要知道您的纬度/经度)(即将推出主要城市支持)
- 可配置:高度可配置的CLI,可以设置任何相关的计算参数(计算权威、学派等)
👨🏾💻 安装
要安装salah,您可以使用cargo
或直接从最新版本下载二进制文件
使用cargo
cargo install salah
🤸🏾♂️ 使用方法
Usage: salah <COMMAND>
Commands:
location Use location (city/country) to get prayer times. WARNING: Uses external API call, network connection required
coord Use coordinates (latitude/longitude) to get prayer times
timings Lists all the available timings
authority Lists all the calculation authorities
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
命令
salah location
salah location [OPTIONS] --city <CITY> --country <COUNTRY> [TIMINGS]...
参数
参数 | 描述 |
---|---|
--city<CITY> |
要计算时间的城市。 |
--country<COUNTRY> |
要计算时间的国家。 |
使用Nominatim OpenStreetMaps API获取计算祈祷时间所需的纬度/经度值。
salah coord
salah coord [OPTIONS] --lat <LAT> --lng <LNG> [TIMINGS]...
参数
参数 | 描述 |
---|---|
--lat<LAT> |
要计算时间的纬度值。 |
--lng<LNG> |
要计算时间的经度值。 |
直接计算时间,无需任何外部API调用。
[选项]
这些选项对salah location
和salah coord
都适用
选项 | 描述 | 格式 | 默认 |
---|---|---|---|
-d --日期 <DATE> |
要计算时间的日期。使用today 表示根据设置时区的今天日期。 |
YYYY-MM-DD 或today |
today |
-t --timezone<TIMEZONE> |
输出时间的时区。所有IATA下的时区都可用。 | 大陆/地区 |
美洲/多伦多 |
-a -all |
计算所有可用的祈祷时间。覆盖 [TIMINGS]... 中的任何值 |
不适用 | false |
--hanafi |
使用 Hanafi 学派计算 Asr 时间 | 不适用 | false |
--auth<AUTH> |
要使用的计算权限。对于 Fajr 和 Isha 时间相关。(使用 salah authority 获取可用值) |
每个 salah authority |
ISNA |
--格式 <FORMAT> |
用于输出时间的格式化字符串。遵循 C 语言中的 strftime 。 |
每个 strftime |
%H:%M:%S |
-h, --帮助 |
打印帮助信息 | 不适用 | false |
salah 时间
列出 [TIMINGS]...
的所有可用值
Usage: salah <location | coords> [OPTIONS] [TIMINGS]...
The below can be passed to [TIMINGS]...
Timings:
fajr The dawn prayer time. Dependent on angle determined by authority (see salah authority)
sunrise Sunrise time. Fajr time ends at sunrise.
dhuhr The mid-day prayer time.
asr The evening prayer time. Dependent on school of thought (Hanafi vs Others).
maghrib The sunset prayer time.
isha The night prayer time. Dependent on angle determined by authority (see salah authority)
midnight The Islamic midnight time. Isha time ends at midnight.
salah 权限
列出所有可用的计算权限,与 --auth <AUTH>
一起使用
Usage: --auth <AUTH>
Explanation:
Calculation authorities are used for the calculation of Fajr and Isha.
The time for Fajr is described as dawn; when there is fine white line at the horizon.
Isha time is described as when the night sky has lost all the light from the sunset.
As this is quite ambiguous, the scholars have differed upon the angle that the sun
makes when these two times occur. Each authority has slightly different angles for
Fajr and Isha. Makkah uses a time difference from Maghrib (sunset).
The below can be used with the --auth <AUTH> option when calculating timings.
Authorities:
MWL Fajr at 18 degrees, Isha at 17 degrees. - Muslim World League
ISNA Fajr at 15 degrees, Isha at 18 degrees. - Islamic Society of North America
Egypt Fajr at 19.5 degrees, Isha at 17.5 degrees - Egyptian General Authority of Survey
Makkah Fajr at 18.5 degrees, Isha 90 min after Maghrib. - Umm al-Qura University, Makkah
Karachi Fajr at 18 degrees, Isha at 18 degrees. - University of Islamic Sciences, Karachi
Tehran Fajr at 17.7 degrees, Isha at 14 degrees. - Institute of Geophysics, University of Tehran
Jafari Fajr at 16 degrees, Isha at 14 degrees. - Shia Ithna Ashari, Leva Research Institute, Qum
salah 时区
列出所有可用时区,可使用可选查询参数搜索特定时区。
salah timezones [QUERY]
示例: salah timezones Toronto
Usage: -t, --timezone <TIMEZONE>
The below values can be used with the -t, --timezone <TIMEZONE> option.
Query: `Toronto`
Results:
America/Toronto
Found 1 result(s)
🚧 示例
获取加拿大多伦多的 Fajr 时间,格式化输出
salah location --city Toronto --country Canada --date 2024-02-11 --format "%I:%M %p" fajr
输出
fajr 06:03 AM
获取巴基斯坦卡拉奇的 fardh 时间,格式化输出
salah location --city Karachi --country Pakistan -t Asia/Karachi --format "%I:%M %p" --date 2024-02-11 fajr dhuhr asr maghrib isha
输出
fajr 06:05 AM
dhuhr 12:46 PM
asr 03:59 PM
maghrib 06:23 PM
isha 07:27 PM
获取加拿大多伦多的 Asr 时间(使用 Hanafi 学派),格式化输出
salah location --city Toronto --country Canada --date 2024-02-11 --format "%I:%M %p" --hanafi asr
输出
asr 03:57 PM
获取沙特阿拉伯麦加的所有时间,格式化输出
salah location --city Makkah --country "Saudi Arabia" --date 2024-02-11 -t Asia/Riyadh --format "%I:%M %p" --auth Makkah --all
输出
fajr 05:37 AM
sunrise 06:54 AM
dhuhr 12:35 PM
asr 03:51 PM
maghrib 06:16 PM
isha 07:46 PM
midnight 12:35 AM
🤝 贡献
欢迎贡献!我非常新接触 Rust(这是我第一个项目哦),所以肯定还有很多可以改进的地方。请随时提交 PR 或创建 issue!
📄 许可证
依赖项
~9–22MB
~325K SLoC