Skip to main content

API, tools and utilities for working with KockatyKalendar.sk

Project description

Latest PyPI version

API, nástroje a utiltky pre prácu a integráciu s Kockatým Kalendárom pre Python.

Inštalácia

Základná verzia tejto knižnice sa dá nainštalovať pomocou pip:

pip install kockatykalendar

Ak plánujete používať JSON API Kockatého Kalendára, použite:

pip install kockatykalendar[api]

Ak plánujete použiť Django integráciu pre Kockatý Kalendár, použite:

pip install kockatykalendar[django]

Ak chcete obe veci, nainštalujte si kockatykalendar[api,django].

Udalosti v kalendári

kockatykalendar poskytuje Python reprezentáciu udalostí z Kockatého Kalendára. Možno ju využiť na prácu s udalosťami v kalendári ale aj ich tvorbu.

from datetime import date
from kockatykalendar.events import Event, EventType, EventScience, EventContestant

event = Event()
event._id = "ksp-sus-1"
event.name = "KSP sústredenie"
event.type = EventType.SUSTREDENIE
event.sciences = [EventScience.INF]
event.date.start = date(2020, 12, 13)
event.date.end = date(2020, 12, 20)
event.contestants.min = EventContestant(EventContestant.SchoolType.STREDNA, 1)
event.contestants.min = EventContestant(EventContestant.SchoolType.STREDNA, 4)
event.places = ["TBD"]
event.organizers = ["trojsten"]
event.link = "https://ksp.sk/akcie/sustredenia/"
print(event.to_json())

event = Event.from_json(...)

API

Súčasťou kockatykalendar je aj prístup do JSON API Kockatého Kalendára.

from kockatykalendar.api import get_events, get_current_dataset, get_available_datasets

get_available_datasets()
# [
#   Dataset(start_year=2020,
#           end_year=2021,
#           school_year="2020/2021",
#           filename="2020_21.json"),
#   ...
# ]

get_current_dataset()
# Dataset(start_year=2020,
#         end_year=2021,
#         school_year="2020/2021",
#         filename="2020_21.json")

get_events(dataset) # Dataset môže byť: Dataset, filename alebo celá URL.
# [
#   Event,
#   ...
# ]

Django integrácia

Zatiaľ iba draft, ešte pracujeme na všetkých detailoch implementácie.

Organizátori môžu poskytovať svoje udalosti do Kockatého Kalendára aj prostredníctvom endpointu na ich stránkach. V prípade Djanga si stačí zadefinovať jeden alebo viac generátorov, ktoré budú tvoriť obsah kalendára:

from kockatykalendar.generators import CalendarGenerator
from kockatykalendar.events import Event, EventType, EventScience

class NaseSeminareGenerator(CalendarGenerator):
    def items(self):
        return Seminar.objects.all()

    def event(self, item):
        return Event(
            _id="seminar-%d" % item.id,
            name=item.name,
            sciences=[EventScience.MAT],
            type=EventType.SEMINAR,
            oragnizers=["trojsten"],
            places=["online"],
            date=Event.Dates(start=item.start, end=item.end)
        )

Generátor nie je závislý na Djangu, možno ho použiť aj s inými frameworkami, pokiaľ sa dodrží formát výstupu. Následne treba pridať view do URLconf-u:

from kockatykalendar.django import kockatykalendar_json

path("kkalendar.json", kockatykalendar_json, {"generators": [NaseSeminareGenerator()]})

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

kockatykalendar-0.1.2.tar.gz (6.3 kB view hashes)

Uploaded Source

Supported by

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