arz_api.models.category_object

  1from requests import Response
  2from typing import TYPE_CHECKING
  3from arz_api.consts import MAIN_URL
  4
  5if TYPE_CHECKING:
  6    from arz_api import ArizonaAPI
  7
  8
  9class Category:
 10    def __init__(self, API: 'ArizonaAPI', id: int, title: str, pages_count: int) -> None:
 11        self.API = API
 12        self.id = id
 13        """**ID категории**"""
 14        self.title = title
 15        """**Название категории**"""
 16        self.pages_count = pages_count
 17        """**Количество страниц в категории**"""
 18        self.url = f"{MAIN_URL}/forums/{self.id}/"
 19        """Ссылка на объект"""
 20
 21
 22    def create_thread(self, title: str, message_html: str, discussion_type: str = 'discussion', watch_thread: int = 1) -> Response:
 23        """Создать тему в категории
 24
 25        Attributes:
 26            title (str): Название темы
 27            message_html (str): Содержание темы. Рекомендуется использование HTML
 28            discussion_type (str): - Тип темы | Возможные варианты: 'discussion' - обсуждение (по умолчанию), 'article' - статья, 'poll' - опрос (необяз.)
 29            watch_thread (str): - Отслеживать ли тему. По умолчанию True (необяз.)
 30        
 31        Returns:
 32            Объект Response модуля requests
 33
 34        Todo:
 35            Cделать возврат ID новой темы
 36        """
 37
 38        return self.API.create_thread(self.id, title, message_html, discussion_type, watch_thread)
 39    
 40
 41    def get_parent_category(self) -> 'Category':
 42        """Получить родительский раздел
 43
 44        Attributes:
 45            thread_id (int): ID темы
 46        
 47        Returns:
 48            Объект Catrgory, в котормо создана тема
 49        """
 50
 51        return self.API.get_parent_category_of_category(self.id)
 52
 53
 54    def set_read(self) -> Response:
 55        """Отметить категорию как прочитанную
 56        
 57        Returns:
 58            Объект Response модуля requests
 59        """
 60
 61        return self.API.set_read_category(self.id)
 62    
 63
 64    def watch(self, notify: str, send_alert: bool = True, send_email: bool = False, stop: bool = False) -> Response:
 65        """Настроить отслеживание категории
 66
 67        Attributes:
 68            notify (str): Объект отслеживания. Возможные варианты: "thread", "message", ""
 69            send_alert (bool): - Отправлять ли уведомления на форуме. По умолчанию True (необяз.)
 70            send_email (bool): - Отправлять ли уведомления на почту. По умолчанию False (необяз.)
 71            stop (bool): - Принудительное завершение отслеживания. По умолчанию False (необяз.)
 72
 73        Returns:
 74            Объект Response модуля requests    
 75        """
 76
 77        return self.API.watch_category(self.id, notify, send_alert, send_email, stop)
 78    
 79
 80    def get_threads(self, page: int = 1) -> dict:
 81        """Получить темы из раздела
 82
 83        Attributes:
 84            page (int): Cтраница для поиска. По умолчанию 1 (необяз.)
 85            
 86        Returns:
 87            Словарь (dict), состоящий из списков закрепленных ('pins') и незакрепленных ('unpins') тем
 88        """
 89
 90        return self.API.get_threads(self.id, page)
 91
 92
 93    def get_categories(self) -> list:
 94        """Получить дочерние категории из раздела
 95        
 96        Returns:
 97            Список (list), состоящий из ID дочерних категорий раздела
 98        """
 99
100        return self.API.get_categories(self.id)
class Category:
 10class Category:
 11    def __init__(self, API: 'ArizonaAPI', id: int, title: str, pages_count: int) -> None:
 12        self.API = API
 13        self.id = id
 14        """**ID категории**"""
 15        self.title = title
 16        """**Название категории**"""
 17        self.pages_count = pages_count
 18        """**Количество страниц в категории**"""
 19        self.url = f"{MAIN_URL}/forums/{self.id}/"
 20        """Ссылка на объект"""
 21
 22
 23    def create_thread(self, title: str, message_html: str, discussion_type: str = 'discussion', watch_thread: int = 1) -> Response:
 24        """Создать тему в категории
 25
 26        Attributes:
 27            title (str): Название темы
 28            message_html (str): Содержание темы. Рекомендуется использование HTML
 29            discussion_type (str): - Тип темы | Возможные варианты: 'discussion' - обсуждение (по умолчанию), 'article' - статья, 'poll' - опрос (необяз.)
 30            watch_thread (str): - Отслеживать ли тему. По умолчанию True (необяз.)
 31        
 32        Returns:
 33            Объект Response модуля requests
 34
 35        Todo:
 36            Cделать возврат ID новой темы
 37        """
 38
 39        return self.API.create_thread(self.id, title, message_html, discussion_type, watch_thread)
 40    
 41
 42    def get_parent_category(self) -> 'Category':
 43        """Получить родительский раздел
 44
 45        Attributes:
 46            thread_id (int): ID темы
 47        
 48        Returns:
 49            Объект Catrgory, в котормо создана тема
 50        """
 51
 52        return self.API.get_parent_category_of_category(self.id)
 53
 54
 55    def set_read(self) -> Response:
 56        """Отметить категорию как прочитанную
 57        
 58        Returns:
 59            Объект Response модуля requests
 60        """
 61
 62        return self.API.set_read_category(self.id)
 63    
 64
 65    def watch(self, notify: str, send_alert: bool = True, send_email: bool = False, stop: bool = False) -> Response:
 66        """Настроить отслеживание категории
 67
 68        Attributes:
 69            notify (str): Объект отслеживания. Возможные варианты: "thread", "message", ""
 70            send_alert (bool): - Отправлять ли уведомления на форуме. По умолчанию True (необяз.)
 71            send_email (bool): - Отправлять ли уведомления на почту. По умолчанию False (необяз.)
 72            stop (bool): - Принудительное завершение отслеживания. По умолчанию False (необяз.)
 73
 74        Returns:
 75            Объект Response модуля requests    
 76        """
 77
 78        return self.API.watch_category(self.id, notify, send_alert, send_email, stop)
 79    
 80
 81    def get_threads(self, page: int = 1) -> dict:
 82        """Получить темы из раздела
 83
 84        Attributes:
 85            page (int): Cтраница для поиска. По умолчанию 1 (необяз.)
 86            
 87        Returns:
 88            Словарь (dict), состоящий из списков закрепленных ('pins') и незакрепленных ('unpins') тем
 89        """
 90
 91        return self.API.get_threads(self.id, page)
 92
 93
 94    def get_categories(self) -> list:
 95        """Получить дочерние категории из раздела
 96        
 97        Returns:
 98            Список (list), состоящий из ID дочерних категорий раздела
 99        """
100
101        return self.API.get_categories(self.id)
Category(API: arz_api.api.ArizonaAPI, id: int, title: str, pages_count: int)
11    def __init__(self, API: 'ArizonaAPI', id: int, title: str, pages_count: int) -> None:
12        self.API = API
13        self.id = id
14        """**ID категории**"""
15        self.title = title
16        """**Название категории**"""
17        self.pages_count = pages_count
18        """**Количество страниц в категории**"""
19        self.url = f"{MAIN_URL}/forums/{self.id}/"
20        """Ссылка на объект"""
API
id

ID категории

title

Название категории

pages_count

Количество страниц в категории

url

Ссылка на объект

def create_thread( self, title: str, message_html: str, discussion_type: str = 'discussion', watch_thread: int = 1) -> requests.models.Response:
23    def create_thread(self, title: str, message_html: str, discussion_type: str = 'discussion', watch_thread: int = 1) -> Response:
24        """Создать тему в категории
25
26        Attributes:
27            title (str): Название темы
28            message_html (str): Содержание темы. Рекомендуется использование HTML
29            discussion_type (str): - Тип темы | Возможные варианты: 'discussion' - обсуждение (по умолчанию), 'article' - статья, 'poll' - опрос (необяз.)
30            watch_thread (str): - Отслеживать ли тему. По умолчанию True (необяз.)
31        
32        Returns:
33            Объект Response модуля requests
34
35        Todo:
36            Cделать возврат ID новой темы
37        """
38
39        return self.API.create_thread(self.id, title, message_html, discussion_type, watch_thread)

Создать тему в категории

Attributes:
  • title (str): Название темы
  • message_html (str): Содержание темы. Рекомендуется использование HTML
  • discussion_type (str): - Тип темы | Возможные варианты: 'discussion' - обсуждение (по умолчанию), 'article' - статья, 'poll' - опрос (необяз.)
  • watch_thread (str): - Отслеживать ли тему. По умолчанию True (необяз.)
Returns:

Объект Response модуля requests

Todo:

Cделать возврат ID новой темы

def get_parent_category(self) -> Category:
42    def get_parent_category(self) -> 'Category':
43        """Получить родительский раздел
44
45        Attributes:
46            thread_id (int): ID темы
47        
48        Returns:
49            Объект Catrgory, в котормо создана тема
50        """
51
52        return self.API.get_parent_category_of_category(self.id)

Получить родительский раздел

Attributes:
  • thread_id (int): ID темы
Returns:

Объект Catrgory, в котормо создана тема

def set_read(self) -> requests.models.Response:
55    def set_read(self) -> Response:
56        """Отметить категорию как прочитанную
57        
58        Returns:
59            Объект Response модуля requests
60        """
61
62        return self.API.set_read_category(self.id)

Отметить категорию как прочитанную

Returns:

Объект Response модуля requests

def watch( self, notify: str, send_alert: bool = True, send_email: bool = False, stop: bool = False) -> requests.models.Response:
65    def watch(self, notify: str, send_alert: bool = True, send_email: bool = False, stop: bool = False) -> Response:
66        """Настроить отслеживание категории
67
68        Attributes:
69            notify (str): Объект отслеживания. Возможные варианты: "thread", "message", ""
70            send_alert (bool): - Отправлять ли уведомления на форуме. По умолчанию True (необяз.)
71            send_email (bool): - Отправлять ли уведомления на почту. По умолчанию False (необяз.)
72            stop (bool): - Принудительное завершение отслеживания. По умолчанию False (необяз.)
73
74        Returns:
75            Объект Response модуля requests    
76        """
77
78        return self.API.watch_category(self.id, notify, send_alert, send_email, stop)

Настроить отслеживание категории

Attributes:
  • notify (str): Объект отслеживания. Возможные варианты: "thread", "message", ""
  • send_alert (bool): - Отправлять ли уведомления на форуме. По умолчанию True (необяз.)
  • send_email (bool): - Отправлять ли уведомления на почту. По умолчанию False (необяз.)
  • stop (bool): - Принудительное завершение отслеживания. По умолчанию False (необяз.)
Returns:

Объект Response модуля requests

def get_threads(self, page: int = 1) -> dict:
81    def get_threads(self, page: int = 1) -> dict:
82        """Получить темы из раздела
83
84        Attributes:
85            page (int): Cтраница для поиска. По умолчанию 1 (необяз.)
86            
87        Returns:
88            Словарь (dict), состоящий из списков закрепленных ('pins') и незакрепленных ('unpins') тем
89        """
90
91        return self.API.get_threads(self.id, page)

Получить темы из раздела

Attributes:
  • page (int): Cтраница для поиска. По умолчанию 1 (необяз.)
Returns:

Словарь (dict), состоящий из списков закрепленных ('pins') и незакрепленных ('unpins') тем

def get_categories(self) -> list:
 94    def get_categories(self) -> list:
 95        """Получить дочерние категории из раздела
 96        
 97        Returns:
 98            Список (list), состоящий из ID дочерних категорий раздела
 99        """
100
101        return self.API.get_categories(self.id)

Получить дочерние категории из раздела

Returns:

Список (list), состоящий из ID дочерних категорий раздела