Skip to content

Commit

Permalink
feat: Update Films.py and add Staff.py controller
Browse files Browse the repository at this point in the history
- Update Films.py to handle month validation and fix return statement
- Add Staff.py controller to work with movie staff information
- Define methods to get film staff information
- Update class documentation for KpFilms in Films.py
  • Loading branch information
Gokujo committed May 25, 2024
1 parent f7bcd6a commit 26f2947
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 2 deletions.
6 changes: 4 additions & 2 deletions NotKinoPoiskAPI/Controller/Films.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,15 @@


class KpFilms(NKPA):
"""
Класс для работы непосредственно с Endpoint /films с API неофициального кинопоиска
"""

def __init__(api_key: Optional[str] = None, proxy: Optional[Any] = None, user_agent: Optional[str] = None,
headers: Optional[dict] = None,
session: Optional[Session] = None, timeout: int = 5):
super().__init__(api_key, proxy, user_agent, headers, session, timeout)


def get_film(self, film_id: int) -> Film:
"""
Метод для получения информации о фильме
Expand Down Expand Up @@ -256,4 +258,4 @@ def get_releases(self, year: int, month: Union[PremiereMonth, int], page: int =
if month < 1 or month > 12:
raise ValueError('month must be in range 1 to 12')
month = PremiereMonth(month).name
return self.get_data(self.get_api_url('films/releases', '2.1', year=year, month=month, page=page))
return self.get_data(self.get_api_url('films/releases', '2.1', year=year, month=month, page=page))
28 changes: 28 additions & 0 deletions NotKinoPoiskAPI/Controller/Staff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
from typing import Optional, Any

from requests import Session

from NotKinoPoiskAPI.Controller.NKPA import NKPA
from NotKinoPoiskAPI.Responses.StaffResponse import StaffResponse


class KpStaff(NKPA):
"""
Класс для работы с сотрудниками фильмов и сериалов. Эндпоийнт /staff
"""
def __init__(api_key: Optional[str] = None, proxy: Optional[Any] = None, user_agent: Optional[str] = None,
headers: Optional[dict] = None,
session: Optional[Session] = None, timeout: int = 5):
super().__init__(api_key, proxy, user_agent, headers, session, timeout)

def get_staff(self, film_id: int) -> list[StaffResponse]:
"""
Метод для получения информации о сотрудниках фильма
/api/v2.2/films/{id}/staff
:param film_id: ID фильма.
:return list[StaffResponse]
"""
return self.get_data(self.get_api_url('staff', '1', filmId=film_id))



0 comments on commit 26f2947

Please sign in to comment.