feat: Rewrite to use the Diyanet API

This commit is contained in:
abdus committed 2026-02-21 01:50:59 +03:00
1 parent 43d4560fbb
commit 73316d4e62
17 files changed
+637 -9198

No files matched your search

+410
View File
@@ -0,0 +1,410 @@
openapi: 3.0.3
info:
title: Diyanet Namaz Vaktim API
version: 1.0.0
description: |
OpenAPI spec derived from decompiled Android app usage.
Base URL and endpoints reflect what the client calls.
servers:
- url: https://namazvakti.diyanet.gov.tr/api
security:
- basicAuth: []
tags:
- name: PrayerTimes
- name: Locations
- name: Content
- name: Mosques
components:
securitySchemes:
basicAuth:
type: http
scheme: basic
schemas:
ResultMessage:
type: object
properties:
messageType:
type: integer
nullable: true
messageContent:
type: string
nullable: true
messageCode:
type: integer
nullable: true
PrayerTime:
type: object
properties:
imsak:
type: string
nullable: true
gunes:
type: string
nullable: true
ogle:
type: string
nullable: true
ikindi:
type: string
nullable: true
aksam:
type: string
nullable: true
yatsi:
type: string
nullable: true
gunes_dogus:
type: string
nullable: true
gunes_batis:
type: string
nullable: true
kible_saati:
type: string
nullable: true
hicri_tarih_uzun:
type: string
nullable: true
hicri_tarih_kisa:
type: string
nullable: true
miladi_tarih_uzun:
type: string
nullable: true
miladi_tarih_uzun_Iso8601:
type: string
nullable: true
miladi_tarih_kisa_Iso8601:
type: string
nullable: true
imsak_bg:
type: string
nullable: true
gunes_bg:
type: string
nullable: true
ogle_bg:
type: string
nullable: true
ikindi_bg:
type: string
nullable: true
aksam_bg:
type: string
nullable: true
yatsi_bg:
type: string
nullable: true
ayin_sekli_url:
type: string
nullable: true
MyLocation:
type: object
description: Location object returned under "konum".
properties:
konum_Id:
type: integer
nullable: true
timezone:
type: string
nullable: true
additionalProperties: true
ResultLocation:
type: object
properties:
konum:
$ref: '#/components/schemas/MyLocation'
namazVakti:
type: array
items:
$ref: '#/components/schemas/PrayerTime'
ResultLocationResponse:
type: object
properties:
success:
type: boolean
resultMessage:
$ref: '#/components/schemas/ResultMessage'
resultObject:
$ref: '#/components/schemas/ResultLocation'
serverTime:
type: string
example:
success: true
resultMessage:
messageType: 1
messageContent: Namaz vakitleri başarıyla oluşturuldu
messageCode: 200
resultObject:
konum:
konum_Id: 9340
timezone: Europe/Istanbul
namazVakti:
- imsak: "2026-02-19T06:19:00.0000000+03:00"
gunes: "2026-02-19T07:43:00.0000000+03:00"
ogle: "2026-02-19T13:20:00.0000000+03:00"
ikindi: "2026-02-19T16:18:00.0000000+03:00"
aksam: "2026-02-19T18:47:00.0000000+03:00"
yatsi: "2026-02-19T20:06:00.0000000+03:00"
gunes_dogus: "2026-02-19T07:50:00.0000000+03:00"
gunes_batis: "2026-02-19T18:40:00.0000000+03:00"
kible_saati: "2026-02-19T11:44:00.0000000+03:00"
hicri_tarih_uzun: 1 Ramazan 1447
hicri_tarih_kisa: 1.9.1447
miladi_tarih_uzun: 19 Şubat 2026 Perşembe
miladi_tarih_uzun_Iso8601: "2026-02-19T00:00:00.0000000+03:00"
miladi_tarih_kisa_Iso8601: 19.02.2026
imsak_bg: "https://namazvakti.diyanet.gov.tr/api/images/main_imsak.png?v=6"
gunes_bg: "https://namazvakti.diyanet.gov.tr/api/images/main_gunes.png?v=6"
ogle_bg: "https://namazvakti.diyanet.gov.tr/api/images/main_ogle.png?v=6"
ikindi_bg: "https://namazvakti.diyanet.gov.tr/api/images/main_ikindi.png?v=6"
aksam_bg: "https://namazvakti.diyanet.gov.tr/api/images/main_aksam.png?v=6"
yatsi_bg: "https://namazvakti.diyanet.gov.tr/api/images/main_yatsi.png?v=6"
ayin_sekli_url: "https://namazvakti.diyanet.gov.tr/images/r1.gif"
serverTime: "20/02/2026 - 23:03"
PrayerTimeVersion:
type: object
additionalProperties: true
PrayerTimeVersionResponse:
type: object
properties:
success:
type: boolean
resultMessage:
$ref: '#/components/schemas/ResultMessage'
resultObject:
$ref: '#/components/schemas/PrayerTimeVersion'
serverTime:
type: string
CityInfo:
type: object
additionalProperties: true
CityInfoResponse:
type: object
properties:
success:
type: boolean
resultMessage:
$ref: '#/components/schemas/ResultMessage'
resultObject:
type: array
items:
$ref: '#/components/schemas/CityInfo'
serverTime:
type: string
Mosque:
type: object
additionalProperties: true
MosquesResponse:
type: object
properties:
success:
type: boolean
resultMessage:
$ref: '#/components/schemas/ResultMessage'
resultObject:
type: array
items:
$ref: '#/components/schemas/Mosque'
serverTime:
type: string
SearchLocation:
type: object
properties:
cityID:
type: integer
cityNameTR:
type: string
stateNameTR:
type: string
countryNameTR:
type: string
cityNameEN:
type: string
stateNameEN:
type: string
countryNameEN:
type: string
latitude:
type: number
format: double
longitude:
type: number
format: double
SearchLocationsResults:
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/SearchLocation'
SearchLocationsResponse:
type: object
properties:
success:
type: boolean
resultMessage:
$ref: '#/components/schemas/ResultMessage'
resultObject:
$ref: '#/components/schemas/SearchLocationsResults'
serverTime:
type: string
example:
success: true
resultMessage:
messageType: 1
messageContent: İlçeler başarıyla listelendi
messageCode: 200
resultObject:
results:
- cityID: 9340
cityNameTR: İZNİK
stateNameTR: BURSA
countryNameTR: TÜRKİYE
cityNameEN: IZNIK
stateNameEN: BURSA
countryNameEN: TÜRKİYE
latitude: 40.429
longitude: 29.711
serverTime: "20/02/2026 - 23:01"
VersesHadithsPrayersArrays:
type: object
additionalProperties: true
VersesHadithsPrayersResponse:
type: object
properties:
success:
type: boolean
resultMessage:
$ref: '#/components/schemas/ResultMessage'
resultObject:
$ref: '#/components/schemas/VersesHadithsPrayersArrays'
serverTime:
type: string
paths:
/NamazVakti/Aylik:
get:
tags: [PrayerTimes]
summary: Get monthly prayer times
description: |
Returns monthly prayer times for a location.
Provide either ilceId or latitude/longitude.
parameters:
- in: query
name: ilceId
schema:
type: integer
required: false
- in: query
name: latitude
schema:
type: number
format: double
required: false
- in: query
name: longitude
schema:
type: number
format: double
required: false
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ResultLocationResponse'
/Version:
get:
tags: [PrayerTimes]
summary: Get prayer time version
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PrayerTimeVersionResponse'
/Search/GetByName:
get:
tags: [Locations]
summary: Search locations by name
parameters:
- in: query
name: searchText
schema:
type: string
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SearchLocationsResponse'
/ilce/GetByCoordinat:
get:
tags: [Locations]
summary: Get city/district info by coordinates
parameters:
- in: query
name: latitude
schema:
type: number
format: double
required: true
- in: query
name: longitude
schema:
type: number
format: double
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CityInfoResponse'
/Cami/GetByCoordinat:
get:
tags: [Mosques]
summary: Get mosques near coordinates
parameters:
- in: query
name: latitude
schema:
type: number
format: double
required: true
- in: query
name: longitude
schema:
type: number
format: double
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/MosquesResponse'
/AyetDuaHadis/GetAll:
get:
tags: [Content]
summary: Get verses, hadiths, and prayers
parameters:
- in: query
name: dil
schema:
type: string
required: true
description: Language code (e.g., tr)
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/VersesHadithsPrayersResponse'