Skip to main content

A simple mawaqit scraper for creating Calendar events and Alexa integration.

Project description

Mawaqit Alexa

A Python library to scrape prayer times from Mawaqit and generate iCalendar (.ics) files for integration with calendar apps and Alexa.

Features

  • Scrape prayer times from any mosque on Mawaqit
  • Generate iCalendar (.ics) files with prayer time events
  • Support for both Arabic and English prayer names
  • Configurable alarm notifications before prayer times
  • CSV data provider for offline/exported data
  • TTL-based caching to avoid excessive requests

Installing

To install the library, you can run the following command:

pip install mawaqit_alexa

Usage

Basic Example

import datetime
import os
from typing import Literal

from mawaqit_alexa.data_provider.scraping_mawaqit_provider import ScrapingMawaqitProvider
from mawaqit_alexa.services.calendar_generator import MawaqitCalendarGenerator

# Configure parameters
alarm_before_minutes = 15  # Alarm 15 minutes before prayer
summary_prefix = ''  # Optional prefix for event summary

# Set the mawaqit mosque URL
data_url = 'https://mawaqit.net/fr/grande-mosquee-de-paris'

# Fetch prayer times
api_mawaqit_provider = ScrapingMawaqitProvider(data_url)
year_calendar = api_mawaqit_provider.get_current_year_calendar()
mosque_name = api_mawaqit_provider.masjid_endpoint
current_year = datetime.datetime.now().year

# Choose language: 'ar' for Arabic, 'en' for English
language: Literal['ar', 'en'] = 'ar'

# Set output file path
output_file = f'./data/out/{mosque_name}_{language}_{alarm_before_minutes}_{current_year}.ics'
output_file = os.path.join(os.getcwd(), output_file)

# Create the calendar
MawaqitCalendarGenerator.create_mawaqit_calendar(
    year_calendar=year_calendar,
    year=current_year,
    output_file=output_file,
    time_zone='Europe/Paris',
    language=language,
    alarm_before_minutes=alarm_before_minutes,
    summary_prefix=summary_prefix
)

Using CSV Data Provider

If you have exported prayer times data from Mawaqit, you can use the CSV provider:

from mawaqit_alexa.data_provider.csv_mawaqit_provider import CsvMawaqitProvider

data_folder = './data/Nantes'
csv_provider = CsvMawaqitProvider(data_folder)
year_calendar = csv_provider.get_current_year_calendar()

Configuration

The create_mawaqit_calendar function accepts the following parameters:

  • year_calendar: The prayer times calendar data
  • year: The calendar year
  • output_file: Path to save the generated .ics file
  • time_zone: Timezone for the calendar events (default: 'Europe/Paris')
  • language: Language for prayer names - 'en', 'ar', or 'fr' (default: 'en')
  • alarm_before_minutes: Minutes before prayer time to trigger an alarm (default: 15)
  • summary_prefix: Prefix to add to calendar event summaries (default: '')

License

MIT License - see LICENSE file for details.

Author

Ahmad SAID - GitHub

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mawaqit_alexa-1.0.6.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mawaqit_alexa-1.0.6-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file mawaqit_alexa-1.0.6.tar.gz.

File metadata

  • Download URL: mawaqit_alexa-1.0.6.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mawaqit_alexa-1.0.6.tar.gz
Algorithm Hash digest
SHA256 1c8eeda6d5bfbb53214961c569004650f779253e37cc80632384401bc15fdd74
MD5 a5eeab6c39ec92c147b174c8f2f8e34d
BLAKE2b-256 e377c91bbfb8d2b3d742fba0c9294f3d04e0d5e790e106e90f6656ab5697927b

See more details on using hashes here.

Provenance

The following attestation bundles were made for mawaqit_alexa-1.0.6.tar.gz:

Publisher: wheels.yml on Ahmad-Said/mawaqit_alexa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mawaqit_alexa-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: mawaqit_alexa-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mawaqit_alexa-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 9a9359105e6dfb30779d05795d34f743ad0c472f8c65c604fe933e24f1a36555
MD5 ea3217b334ccc1ee49cb9dbe9b16fe4b
BLAKE2b-256 b1b147f4d308ff925fb0380ba239530a17995a9280bc16bd9154f5ed5d29bb22

See more details on using hashes here.

Provenance

The following attestation bundles were made for mawaqit_alexa-1.0.6-py3-none-any.whl:

Publisher: wheels.yml on Ahmad-Said/mawaqit_alexa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page