335 источников времени намаза

Каждый региональный муфтият публикует свой расчёт fajr/isha — свой угол, свою поправку, иногда фикс-интервалы. Мы собрали 335 нормализованных источников в 27 волн. Все источники имеют единую схему (slug, authority, region_code, madhhab, fajr_angle, isha_angle, isha_interval, shafaq, website, method_id).

«Разница между муфтиятом в Дакке и в Касабланке может достигать 38 минут для fajr в июне. Вопрос не в правде, а в том, какую конвенцию вы приняли».

Волны миграции (27 штук)

Волны 1–10

Россия, СНГ

DUMRF (Москва, Саратов, Ярославль), TsDUM, Татарстан, Башкирия, Дагестан, Чечня, Ингушетия, Кабардино-Балкария, Карачаево-Черкесия, Адыгея, Казахстан, Узбекистан, Кыргызстан, Таджикистан, Туркменистан, Азербайджан

Волны 11–14

Турция, Балканы

Diyanet (Turkey + 81 провинция), BosniaMufti, AlbaniaKMSh, KosovaBIK, MuslimMontenegro, SerbiaIZ, SkopjeIVZ, Bulgaria GlavnoMuftijstvo

Волны 15–17

Залив + Левант

UAE (DubaiAwqaf, AbuDhabiGAIAE), GDIA Saudi, Umm al-Qura, Qatar AwqafMinistry, Kuwait AwqafMinistry, Bahrain JAFFARI, Oman MoERA, Jordan AwqafMinistry, Lebanon DarAlFatwa

Волны 18–20

Северная Африка

Morocco Habous, Algeria MinAffairsReligieuses, Tunisia AffairesReligieuses, Libya Awqaf, Egypt DarAlIfta, Sudan Ministry, Mauritania Ministry

Волны 21–23

SE Asia

Malaysia JAKIM + 14 state muftis, Indonesia Kemenag + provincial, Singapore MUIS, Brunei KHEU, Thailand SheikhulIslam, Philippines NCMF, Cambodia Mufti

Волны 24–27

Subcontinent + West

Pakistan CII, Bangladesh IslamicFoundation, India Deoband/Barelvi/SC, UK MCB, USA ISNA+FCNA, Canada CCMW, France CFCM, Germany ZMD, South Africa MJC, Australia ANIC

Эндпоинты (требуют API-ключ)

GET /v1/providers/

Весь каталог 335 записей + meta (authority, region, website)

GET /v1/providers/{slug}

Полная карточка одного провайдера

GET /v1/providers/by-region/{region_code}

Фильтр по ISO-коду страны

GET /v1/providers/{slug}/times

Рассчитать время намаза по конкретному провайдеру для точки

GET /v1/sources-compare

Сравнить N провайдеров бок о бок на одной дате

GET /v1/divergence

Вывести диапазон разброса (min–max) и stddev по пулу источников

Как нормализован каталог

Исходные источники разные: некоторые публикуют PDF с таблицами времени для своих городов, другие — фикс-углы, третьи — свой API. Мы нормализовали всё в единый tuple-каталог:

Provider(
    slug="diyanet-turkey",
    authority="Türkiye Diyanet İşleri Başkanlığı",
    region_code="tr",
    madhhab="hanafi",
    fajr_angle=18.0,
    isha_angle=17.0,
    isha_interval=None,
    shafaq="general",
    website="https://namazvakitleri.diyanet.gov.tr",
    method_id="TURKEY",
)

Это позволяет для любого провайдера вызвать те же adhanpy-функции с подставленными углами — время намаза получается вычислимо, а не фиксированно для одной точки.

Для провайдеров с фиксированным городом (например, местечковые муфтияты с одной mosque) есть флаг base_city — при запросе с далёкого lat/lon возвращается предупреждение.