cloudku-murotal
Version:
JavaScript client for Murotal API - Islamic prayer times, Quran, Hadith, and Dua
301 lines (219 loc) ⢠9.05 kB
Markdown
# š Murotal API Client
<div align="center">





**Modern Islamic API Client - Simple, Fast, Reliable**
⨠**Created by [AlfiDev](https://github.com/cloudkuimages)**
[š¦ Install](#-installation) ⢠[š Quick Start](#-quick-start) ⢠[š Documentation](#-api-reference) ⢠[š” Examples](#-examples)
</div>
---
## š Features
<div align="center">
| š **Prayer Times** | š **Al-Quran** | 𤲠**Dua & Hadith** | š
**Calendar** |
|:---:|:---:|:---:|:---:|
| Jadwal sholat akurat | Surah & Ayat lengkap | Koleksi doa harian | Kalender Hijriah |
| Multi-kota Indonesia | Audio murotal | Hadist Bukhari | Konversi tanggal |
| Update real-time | Terjemahan & tafsir | Hadist Arbain | Event Islam |
</div>
---
## š¦ Installation
```bash
npm install cloudku-murotal
```
```bash
yarn add cloudku-murotal
```
---
## š Quick Start
```javascript
import MurotalAPI from 'cloudku-murotal';
const api = new MurotalAPI();
const prayer = await api.getPrayerTimes('1', '2024-01-01');
const ayah = await api.getRandomAyah();
const doa = await api.getRandomDoa();
```
<details>
<summary>š Click to see response examples</summary>
```javascript
{
jadwal: {
tanggal: '2024-01-01',
imsak: '04:30',
subuh: '04:40',
terbit: '06:05',
dhuha: '06:30',
dzuhur: '12:10',
ashar: '15:25',
maghrib: '18:15',
isya: '19:30'
}
}
```
</details>
---
## šÆ Usage Methods
### š§ ES Modules (Recommended)
```javascript
import MurotalAPI from 'cloudku-murotal';
const api = new MurotalAPI();
```
### š¦ CommonJS
```javascript
const { MurotalAPI } = require('cloudku-murotal');
const api = new MurotalAPI();
```
### š Browser
```html
<script type="module">
import MurotalAPI from './node_modules/cloudku-murotal/index.mjs';
const api = new MurotalAPI();
</script>
```
---
## š API Reference
### š Prayer Times & Location
<table>
<tr><th>Method</th><th>Parameters</th><th>Description</th></tr>
<tr><td><code>getCities()</code></td><td>-</td><td>š List semua kota Indonesia</td></tr>
<tr><td><code>searchCities(query)</code></td><td>string</td><td>š Cari kota berdasarkan nama</td></tr>
<tr><td><code>getPrayerTimes(id, date)</code></td><td>string, string</td><td>ā° Jadwal sholat harian</td></tr>
<tr><td><code>getPrayerTimesByMonth(id, month, year)</code></td><td>string, number, number</td><td>š
Jadwal sholat bulanan</td></tr>
</table>
### š
Islamic Calendar
<table>
<tr><th>Method</th><th>Parameters</th><th>Description</th></tr>
<tr><td><code>getTodayHijriDate()</code></td><td>-</td><td>š Tanggal Hijriah hari ini</td></tr>
<tr><td><code>getHijriDate(date)</code></td><td>string</td><td>š Konversi Masehi ke Hijriah</td></tr>
</table>
### š Asmaul Husna
<table>
<tr><th>Method</th><th>Parameters</th><th>Description</th></tr>
<tr><td><code>getAllHusna()</code></td><td>-</td><td>š 99 Asmaul Husna lengkap</td></tr>
<tr><td><code>getRandomHusna()</code></td><td>-</td><td>š² Asmaul Husna acak</td></tr>
<tr><td><code>getHusnaByNumber(id)</code></td><td>number</td><td>š¢ Berdasarkan urutan 1-99</td></tr>
</table>
### š Holy Quran
<table>
<tr><th>Method</th><th>Parameters</th><th>Description</th></tr>
<tr><td><code>getSurahList()</code></td><td>-</td><td>š 114 Surah Al-Quran</td></tr>
<tr><td><code>getSurahByNumber(id)</code></td><td>number</td><td>š Surah berdasarkan nomor</td></tr>
<tr><td><code>getRandomSurah()</code></td><td>-</td><td>š² Surah acak</td></tr>
<tr><td><code>getAyahByNumber(id)</code></td><td>number</td><td>š Ayat berdasarkan nomor global</td></tr>
<tr><td><code>getSingleAyah(surat, ayat)</code></td><td>number, number</td><td>šÆ Ayat spesifik</td></tr>
<tr><td><code>getAyahRange(surat, start, end)</code></td><td>number, number, number</td><td>š Range ayat dalam surah</td></tr>
<tr><td><code>getJuz(id)</code></td><td>number</td><td>š Juz 1-30</td></tr>
<tr><td><code>getRandomAyah()</code></td><td>-</td><td>š² Ayat acak</td></tr>
<tr><td><code>getAllThemes()</code></td><td>-</td><td>š·ļø Tema-tema Al-Quran</td></tr>
<tr><td><code>getAyahByTheme(id)</code></td><td>number</td><td>š Ayat berdasarkan tema</td></tr>
</table>
### 𤲠Prayers & Hadith
<table>
<tr><th>Method</th><th>Parameters</th><th>Description</th></tr>
<tr><td><code>getDoaSources()</code></td><td>-</td><td>š Sumber-sumber doa</td></tr>
<tr><td><code>searchDoa(query)</code></td><td>string</td><td>š Cari doa berdasarkan kata kunci</td></tr>
<tr><td><code>getRandomDoa()</code></td><td>-</td><td>š² Doa acak</td></tr>
<tr><td><code>getRandomHadistArbain()</code></td><td>-</td><td>š² Hadist Arbain acak</td></tr>
<tr><td><code>getRandomHadistBukhari()</code></td><td>-</td><td>š² Hadist Bukhari acak</td></tr>
</table>
---
## š” Examples
### šļø Get Prayer Times for Jakarta
```javascript
const cities = await api.getCities();
const jakartaId = cities.find(city => city.lokasi === 'Jakarta').id;
const todayPrayer = await api.getPrayerTimes(jakartaId, '2024-01-01');
```
### š Read Random Quran Verse
```javascript
const randomAyah = await api.getRandomAyah();
console.log(`${randomAyah.surat.nama} - Ayat ${randomAyah.nomor_ayat}`);
console.log(randomAyah.ar);
console.log(randomAyah.tr);
```
### 𤲠Daily Prayer Collection
```javascript
const morningPrayer = await api.searchDoa('pagi');
const randomDua = await api.getRandomDoa();
const hadith = await api.getRandomHadistBukhari();
```
### š
Islamic Calendar Integration
```javascript
const hijriToday = await api.getTodayHijriDate();
const convertedDate = await api.getHijriDate('2024-01-01');
console.log(`Today in Hijri: ${hijriToday.hijri}`);
```
### š Asmaul Husna Display
```javascript
const allNames = await api.getAllHusna();
const randomName = await api.getRandomHusna();
const specificName = await api.getHusnaByNumber(1);
```
### āļø Custom Configuration
```javascript
const api = new MurotalAPI('https://cloudku.us.kg');
```
---
## š”ļø Error Handling
```javascript
try {
const result = await api.getPrayerTimes('1', '2024-01-01');
console.log('ā
Success:', result);
} catch (error) {
console.error('ā API Error:', error.message);
if (error.code === 'NETWORK_ERROR') {
console.log('š Retrying in 5 seconds...');
}
}
```
---
## š§ Requirements
<div align="center">
| Environment | Version | Status |
|:---:|:---:|:---:|
| **Node.js** | 20+ | ā
Supported |
| **Browser** | ES6+ | ā
Supported |
| **TypeScript** | 4.5+ | ā
Compatible |
</div>
---
## š¤ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
1. Fork the project
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
---
## š Project Stats
<div align="center">



</div>
---
## š License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
<div align="center">
**š Quick Links**
[](https://github.com/cloudkuimages)
[](https://npmjs.com/package/cloudku-murotal)
[](https://github.com/cloudkuimages)
**Made with ā¤ļø by [AlfiDev](https://github.com/cloudkuimages)**
*Bringing Islamic resources to developers worldwide* š
</div>
---
## šÆ Roadmap
- [ ] TypeScript definitions
- [ ] GraphQL support
- [ ] Offline caching
- [ ] React hooks package
- [ ] Vue.js plugin
- [ ] CLI tool
- [ ] WebSocket real-time updates
---
<div align="center">
*If this package helps your project, please consider giving it a ā on GitHub!*
</div>