Git Product home page Git Product logo

salat-cli's Introduction

Salat npm version

PLEASE SUPPORT THIS REPO WITH A STAR ⭐🌟💫

Description

Daily prayer time in all the cities in Morocco , directly in your terminal, at the tip of your fingers

A stupid simple Command line utility to get the daily prayers time for all the citiy in Morocco

The source of the data is the Moroccan Ministery Website

Getting started

npx salat [cityName]

Please note that if the cityName contains space of ' you need to use quotes, example

npx salat "el jadida"
npx salat "L'msid"

City List

This is an exhaustive list of the supported cities :

  • Agadir
  • Ahfir
  • Ain Aouda
  • Aïn Chaïr
  • Ait El Kak
  • Ait Ourir
  • Akayouar
  • Akdal Amelchil
  • Akdez
  • Akhefnir
  • Akka
  • Aknoul
  • Akoudal Amelchil Midelt
  • Amkala
  • Amsmrir
  • Araich
  • Arbaoua
  • Arfoud
  • Asa
  • Askin
  • Asoul
  • Assila
  • Azemmour
  • Azilal
  • Azrou
  • Bab Bared
  • Ben Ahmed
  • Ben Slimane
  • Bengrir
  • Beni Adrar
  • Beni Ansar
  • Beni Mellal
  • Beni Tejit
  • Berkane
  • Berrchid
  • Bir Anzaran
  • Bir Kandour
  • Bouanan
  • Bouarfa
  • Bouikra
  • Bouizkaren
  • Boujdour
  • Boukrae
  • Boulmane
  • Boumalen Dadas
  • Bourd
  • Bouskoura
  • Bouznika
  • Casablanca
  • Chefchaouan
  • Chichaoua
  • Dakhla
  • Debdou
  • Demnat
  • Deryouche
  • El Brouj
  • El Gara
  • El Hajeb
  • El Jabha
  • El Jadida
  • El Kasba
  • El Mahbes
  • El Menzel
  • Enif
  • Erich
  • Errachidia
  • Essaouira
  • Ezak
  • Fem Lehsan
  • Fem Zkid
  • Ferkhana
  • Fes
  • Fezouane
  • Figuig
  • Fnideq
  • Fquih Ben Salah
  • Geltat Zamour
  • Guelmim
  • Guercif
  • Hoceima
  • Igherem
  • Ikes
  • Imelchil
  • Imin Telat
  • Imntanout
  • Imouzzer Kandar
  • Jerada
  • Kalaat Megouna
  • Kalaat Sraghna
  • Kares
  • Kariat Ba Mohammed
  • Kasbah Tadla
  • Katara
  • Kelmima
  • Kénitra
  • Ketama
  • Khemis Sidi Abd Jelil
  • Khemis Zemamra
  • Khémissat
  • Khenifra
  • Khouribga
  • Ksar El Kebir
  • Ksar El Sghir
  • Ksar Ich
  • L'msid
  • Laayoune
  • Laayoune Sidi Mellouk
  • Lagouira
  • Marrakech
  • Martil
  • Mediek
  • Meknes
  • Melilla
  • Meskoura
  • Metmata
  • Midelt
  • Misour
  • Mohammedia
  • Moulay Bouaza
  • Moulay Bousselham
  • Moulay Yacoub
  • Nador
  • Oualidia
  • Ouazane
  • Oued Amlil
  • Oued Law
  • Oued Zam
  • Oujda
  • Oulad Ayad
  • Oulad Tayma
  • Oulmes
  • Ourzazate
  • Ousered
  • Rabat
  • Ras Alma
  • Remani
  • Rhamna
  • Ribate El Kheir
  • Risani
  • Safi
  • Saïdia
  • Sebta
  • Sefrou
  • Selouane
  • Settat
  • Sidi Benour
  • Sidi Ghanem
  • Sidi Ifni
  • Sidi Kacém
  • Sidi Slimane
  • Sidi Yahya Gharb
  • Smara
  • Souq Arbiâ Gharb
  • Tafntan
  • Tafougalt
  • Tafraouet
  • Tahla
  • Tahla
  • Talouine
  • Talsint
  • Tamslouhet
  • Tanger
  • Tantan
  • Taounat
  • Taourirt
  • Tarfaya
  • Taroudant
  • Tasltanet
  • Tata
  • Taza
  • Tazarin
  • Tefariti
  • Temnar
  • Tendrara
  • Tenghir
  • Tenjedad
  • Tetouan
  • Tiflet
  • Tindit
  • Tisa
  • Tisenet
  • Tizi Ousli
  • Tiznit
  • Toulkoult
  • Yefrin
  • Yousofia
  • Zagoura
  • Zaouiat Ahansal
  • Zaouiat Moulay Ibrahim
  • Zayou
  • Zerhoune

Alternatively You can also install it globally

# Install

$ npm i -g salat

# Run with default city

$ salat

# Run with custom city

$ salat [cityName]

Output

# The programs prints to the console the prayers' time for the current day in the default city as shown bellow:

screen 1 screen 2 screen 3

Change the default city

  • The default city is ❤️ Marrakech ❤️, set as a value for the DEFAULT_CITY variable in ./constants.js

  • You can change it by replacing Marrakech by your city name according to the values from ./data/cities.json

Help

  • Please keep in mind that this is a work in progress in a very early stages, any help is appreciated and more than welcome.

  • If you think this piece of code is anyhow useful, please feel free to contribute, star ⭐⭐ and share 🙏 🙏

Todo

  • Use a default city
  • Use localstorage-like api for caching purposes
  • Improve performance
  • Add unit tests
  • Add a documentation site
  • Command to set the default city
  • Command to display the list of available cities
  • Command to display the time table for the whole month

License

This project is under the MIT license.

Built With 💖 in Ramadan

salat-cli's People

Contributors

aziham avatar dependabot[bot] avatar kafiln avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

salat-cli's Issues

The list of cities in not updates

The ids do not match the cities in the list anymore.

The up to date version can be extracted from this html element :

<select
  name="ville"
  onchange="location.href=this.options[this.selectedIndex].value;"
  style=""
>
  <option value="horaire-api.php?ville=1">الرباط</option>
  <option value="horaire-api.php?ville=2">الخميسات</option>
  <option value="horaire-api.php?ville=3">تيفلت</option>
  <option value="horaire-api.php?ville=4">الرماني</option>
  <option value="horaire-api.php?ville=5">والماس</option>
  <option value="horaire-api.php?ville=6">بوزنيقة</option>
  <option value="horaire-api.php?ville=7">القنيطرة</option>
  <option value="horaire-api.php?ville=8">سيدي قاسم</option>
  <option value="horaire-api.php?ville=9">سيدي يحيى الغرب</option>
  <option value="horaire-api.php?ville=10">سيدي سليمان</option>
  <option value="horaire-api.php?ville=11">سوق أربعاء الغرب</option>
  <option value="horaire-api.php?ville=12">عرباوة</option>
  <option value="horaire-api.php?ville=13">مولاي بوسلهام</option>
  <option value="horaire-api.php?ville=14">طنجة</option>
  <option value="horaire-api.php?ville=15">تطوان</option>
  <option value="horaire-api.php?ville=16">العرائش</option>
  <option value="horaire-api.php?ville=17">أصيلة</option>
  <option value="horaire-api.php?ville=18">شفشاون</option>
  <option value="horaire-api.php?ville=19">مرتيل</option>
  <option value="horaire-api.php?ville=20">المضيق</option>
  <option value="horaire-api.php?ville=21">القصر الكبير</option>
  <option value="horaire-api.php?ville=22">القصر الصغير</option>
  <option value="horaire-api.php?ville=23">الحسيمة</option>
  <option value="horaire-api.php?ville=24">سبتة</option>
  <option value="horaire-api.php?ville=25">الفنيدق</option>
  <option value="horaire-api.php?ville=26">الجبهة</option>
  <option value="horaire-api.php?ville=27">واد لاو</option>
  <option value="horaire-api.php?ville=28">باب برد</option>
  <option value="horaire-api.php?ville=29">وزان</option>
  <option value="horaire-api.php?ville=30">بوسكور</option>
  <option value="horaire-api.php?ville=31">وجدة</option>
  <option value="horaire-api.php?ville=32">بركان</option>
  <option value="horaire-api.php?ville=33">فكيك</option>
  <option value="horaire-api.php?ville=34">بوعرفة</option>
  <option value="horaire-api.php?ville=35">كرسيف</option>
  <option value="horaire-api.php?ville=36">جرادة</option>
  <option value="horaire-api.php?ville=37">عين الشعير</option>
  <option value="horaire-api.php?ville=38">تاوريرت</option>
  <option value="horaire-api.php?ville=39">الناظور</option>
  <option value="horaire-api.php?ville=40">مليلية</option>
  <option value="horaire-api.php?ville=41">دبدو</option>
  <option value="horaire-api.php?ville=42">سلوان</option>
  <option value="horaire-api.php?ville=43">بني أنصار</option>
  <option value="horaire-api.php?ville=44">فرخانة</option>
  <option value="horaire-api.php?ville=45">تالسينت</option>
  <option value="horaire-api.php?ville=46">تندرارة</option>
  <option value="horaire-api.php?ville=47">العيون الشرقية</option>
  <option value="horaire-api.php?ville=48">بني ادرار</option>
  <option value="horaire-api.php?ville=49">السعيدية</option>
  <option value="horaire-api.php?ville=50">رأس الماء</option>
  <option value="horaire-api.php?ville=51">تافوغالت</option>
  <option value="horaire-api.php?ville=52">فزوان</option>
  <option value="horaire-api.php?ville=53">أحفير</option>
  <option value="horaire-api.php?ville=54">زايو</option>
  <option value="horaire-api.php?ville=55">دريوش</option>
  <option value="horaire-api.php?ville=56">بني تجيت</option>
  <option value="horaire-api.php?ville=57">بوعنان</option>
  <option value="horaire-api.php?ville=58">الدار البيضاء</option>
  <option value="horaire-api.php?ville=59">المحمدية</option>
  <option value="horaire-api.php?ville=60">بن سليمان</option>
  <option value="horaire-api.php?ville=61">سطات</option>
  <option value="horaire-api.php?ville=62">الكارة</option>
  <option value="horaire-api.php?ville=63">البروج</option>
  <option value="horaire-api.php?ville=64">ابن أحمد</option>
  <option value="horaire-api.php?ville=65">برشيد</option>
  <option value="horaire-api.php?ville=66">الجديدة</option>
  <option value="horaire-api.php?ville=67">أزمور</option>
  <option value="horaire-api.php?ville=68">سيدي بنور</option>
  <option value="horaire-api.php?ville=69">خميس الزمامرة</option>
  <option value="horaire-api.php?ville=70">خنيفرة</option>
  <option value="horaire-api.php?ville=71">مولاي بوعزة</option>
  <option value="horaire-api.php?ville=72">زاوية أحنصال</option>
  <option value="horaire-api.php?ville=73">بني ملال</option>
  <option value="horaire-api.php?ville=74">أزيلال</option>
  <option value="horaire-api.php?ville=75">الفقيه بنصالح</option>
  <option value="horaire-api.php?ville=76">دمنات</option>
  <option value="horaire-api.php?ville=77">القصيبة</option>
  <option value="horaire-api.php?ville=78">قصبة تادلة</option>
  <option value="horaire-api.php?ville=79">خريبكة</option>
  <option value="horaire-api.php?ville=80">وادي زم</option>
  <option value="horaire-api.php?ville=81">فاس</option>
  <option value="horaire-api.php?ville=82">صفرو</option>
  <option value="horaire-api.php?ville=83">مولاي يعقوب</option>
  <option value="horaire-api.php?ville=84">بولمان</option>
  <option value="horaire-api.php?ville=85">ميسور</option>
  <option value="horaire-api.php?ville=86">رباط الخير</option>
  <option value="horaire-api.php?ville=87">المنزل بني يازغة</option>
  <option value="horaire-api.php?ville=88">إموزار كندر</option>
  <option value="horaire-api.php?ville=89">تازة</option>
  <option value="horaire-api.php?ville=90">تاونات</option>
  <option value="horaire-api.php?ville=91">أكنول</option>
  <option value="horaire-api.php?ville=92">تيزي وسلي</option>
  <option value="horaire-api.php?ville=93">بورد</option>
  <option value="horaire-api.php?ville=94">تاهلة</option>
  <option value="horaire-api.php?ville=95">تيسة</option>
  <option value="horaire-api.php?ville=96">قرية با محمد</option>
  <option value="horaire-api.php?ville=97">كتامة</option>
  <option value="horaire-api.php?ville=98">واد أمليل</option>
  <option value="horaire-api.php?ville=99">مكناس</option>
  <option value="horaire-api.php?ville=100">يفرن</option>
  <option value="horaire-api.php?ville=101">الحاجب</option>
  <option value="horaire-api.php?ville=102">زرهون</option>
  <option value="horaire-api.php?ville=103">آزرو</option>
  <option value="horaire-api.php?ville=104" selected="selected">مراكش</option>
  <option value="horaire-api.php?ville=105">قلعة السراغنة</option>
  <option value="horaire-api.php?ville=106">الصويرة</option>
  <option value="horaire-api.php?ville=107">شيشاوة</option>
  <option value="horaire-api.php?ville=108">بنجرير</option>
  <option value="horaire-api.php?ville=109">الرحامنة</option>
  <option value="horaire-api.php?ville=110">تمنار</option>
  <option value="horaire-api.php?ville=111">آسفي</option>
  <option value="horaire-api.php?ville=112">الوليدية</option>
  <option value="horaire-api.php?ville=113">اليوسفية</option>
  <option value="horaire-api.php?ville=114">تسلطانت</option>
  <option value="horaire-api.php?ville=115">تامصلوحت</option>
  <option value="horaire-api.php?ville=116">قطارة</option>
  <option value="horaire-api.php?ville=117">أكادير</option>
  <option value="horaire-api.php?ville=118">تارودانت</option>
  <option value="horaire-api.php?ville=119">تزنيت</option>
  <option value="horaire-api.php?ville=120">إغرم</option>
  <option value="horaire-api.php?ville=121">تالوين</option>
  <option value="horaire-api.php?ville=122">تافراوت</option>
  <option value="horaire-api.php?ville=123">طاطا</option>
  <option value="horaire-api.php?ville=124">أقا</option>
  <option value="horaire-api.php?ville=125">فم لحصن</option>
  <option value="horaire-api.php?ville=126">بويكرة</option>
  <option value="horaire-api.php?ville=127">أولاد تايمة</option>
  <option value="horaire-api.php?ville=128">الرشيدية</option>
  <option value="horaire-api.php?ville=129">الريصاني</option>
  <option value="horaire-api.php?ville=130">أرفود</option>
  <option value="horaire-api.php?ville=131">تنديت</option>
  <option value="horaire-api.php?ville=132">كلميمة</option>
  <option value="horaire-api.php?ville=133">إملشيل</option>
  <option value="horaire-api.php?ville=134">تنجداد</option>
  <option value="horaire-api.php?ville=135">الريش</option>
  <option value="horaire-api.php?ville=136">ميدلت</option>
  <option value="horaire-api.php?ville=137">زاكورة</option>
  <option value="horaire-api.php?ville=138">ورزازات</option>
  <option value="horaire-api.php?ville=139">تنغير</option>
  <option value="horaire-api.php?ville=140">هسكورة</option>
  <option value="horaire-api.php?ville=141">قلعة مكونة</option>
  <option value="horaire-api.php?ville=142">أكدز</option>
  <option value="horaire-api.php?ville=143">بومالن دادس</option>
  <option value="horaire-api.php?ville=144">النيف</option>
  <option value="horaire-api.php?ville=145">أسول</option>
  <option value="horaire-api.php?ville=146">أمسمرير</option>
  <option value="horaire-api.php?ville=147">تازارين</option>
  <option value="horaire-api.php?ville=148">سيدي إفني</option>
  <option value="horaire-api.php?ville=149">كلميم</option>
  <option value="horaire-api.php?ville=150">أسا</option>
  <option value="horaire-api.php?ville=151">الزاك</option>
  <option value="horaire-api.php?ville=152">طانطان</option>
  <option value="horaire-api.php?ville=153">بويزكارن</option>
  <option value="horaire-api.php?ville=154">المحبس</option>
  <option value="horaire-api.php?ville=155">لمسيد</option>
  <option value="horaire-api.php?ville=156">العيون</option>
  <option value="horaire-api.php?ville=157">السمارة</option>
  <option value="horaire-api.php?ville=158">بوجدور</option>
  <option value="horaire-api.php?ville=159">طرفاية</option>
  <option value="horaire-api.php?ville=160">تفاريتي</option>
  <option value="horaire-api.php?ville=161">بوكراع</option>
  <option value="horaire-api.php?ville=162">كلتة زمور</option>
  <option value="horaire-api.php?ville=163">أمكالة</option>
  <option value="horaire-api.php?ville=164">أخفنير</option>
  <option value="horaire-api.php?ville=165">الداخلة</option>
  <option value="horaire-api.php?ville=166">الكويرة</option>
  <option value="horaire-api.php?ville=167">أوسرد</option>
  <option value="horaire-api.php?ville=168">بئر كندوز</option>
  <option value="horaire-api.php?ville=169">بئر أنزاران</option>
  <option value="horaire-api.php?ville=301">خميس سيدي عبد الجليل</option>
  <option value="horaire-api.php?ville=302">أولاد عياد</option>
  <option value="horaire-api.php?ville=303">تاهلة</option>
  <option value="horaire-api.php?ville=304">مطماطة</option>
  <option value="horaire-api.php?ville=305">إيمنتانوت</option>
  <option value="horaire-api.php?ville=306">سيدي غانم</option>
  <option value="horaire-api.php?ville=307">تفنتان</option>
  <option value="horaire-api.php?ville=308">آيت القاق</option>
  <option value="horaire-api.php?ville=309">أكدال أملشيل</option>
  <option value="horaire-api.php?ville=310">اكودال املشيل ميدلت</option>
  <option value="horaire-api.php?ville=311">أكايوار</option>
  <option value="horaire-api.php?ville=312">عين العودة</option>
  <option value="horaire-api.php?ville=313">أسكين</option>
  <option value="horaire-api.php?ville=314">آيت ورير</option>
  <option value="horaire-api.php?ville=315">زاوية مولاي ابراهيم</option>
  <option value="horaire-api.php?ville=316">تولكولت</option>
  <option value="horaire-api.php?ville=317">إيكس</option>
  <option value="horaire-api.php?ville=318">كرس</option>
  <option value="horaire-api.php?ville=319">تيسنت</option>
  <option value="horaire-api.php?ville=320">فم زكيد</option>
  <option value="horaire-api.php?ville=321">قصر إيش</option>
  <option value="horaire-api.php?ville=322">إيمين ثلاث</option>
</select>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.