Skip to content

kggx/pyventim

Repository files navigation

Testing Documentation Contributor Covenant Python PyPI Latest Release PyPI Downloads Coverage


Note

Consider the whole project as unstable until version 1.0.0 is reached.

pyventim

A Python module to fetch usable data with a reverse engineered Eventim API.

Description

The Eventim API has some public endpoints but also hidden data in the HTML responses. The project goal is to provide away to fetch this data with simple to use python objecs.

Important

Be aware that the APIs of Eventim can change without notice and therefore break the module.

Getting Started

Dependencies

  • Python >= 3.10
  • Requests >= 2.31.0
  • lxml >= 5.2.2
  • Pydantic >= 2.7.0

Installing

pip install pyventim

Quick start

To find attractions we can use the exploration endpoint:

import pyventim

# Create the Eventim class
eventim = pyventim.Eventim()

# Returns an iterator that fetches all pages off the search endpoint.
attractions = eventim.explore_attractions(search_term="Landmvrks")

# We can loop over each attraction. The module handles fetching pages automatically.
for attraction in attractions:
    print(attraction["attractionId"], attraction["name"])

Next we use the product group endpoint to fetch events for our attraction and get the events of the html endpoint.

# We loop over each product group and fetch the events automatically.
for product_group in eventim.explore_product_groups(search_term="Landmvrks"):
    product_group_id = product_group["productGroupId"]
    for event in eventim.get_product_group_events_from_calendar(product_group_id):
        print(event["title"], event["eventDate"], event["price"], event["ticketAvailable"], sep=" | ")

For a more detailed information please refer to the documentation.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Code of conduct

Please follow our code of conduct.

Finding help

The code documentation can be found here. However if you encounter a unexpected behaviour: Feel free to open an issue.

Contributing

All contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome.

If youre looking to work on the pyventim codebase:

  1. Fork the repository.
  2. Make your changes and follow common code practices as well as Python PEP standards.
  3. Open a merge request and follow the instructions.
  4. Be awesome!

For bug reports: Please head over to the issues page.

As contributors and maintainers to this project, you are expected to abide by pyeventim' code of conduct. More information can be found at: Contributor Code of Conduct

Thank you!

Thank you for contributing to this project!

Maintainers

*Preferred method of contact.

Acknowledgments