arz_api.models.thread_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.models.member_object import Member
  7    from arz_api.models.category_object import Category
  8    from arz_api import ArizonaAPI
  9
 10
 11class Thread:
 12    def __init__(self, API: 'ArizonaAPI', id: int, creator: 'Member', create_date: int, title: str, prefix: str, content: str, html_content: str, pages_content: int, thread_post_id: int, is_closed: bool) -> None:
 13        self.API = API
 14        self.id = id
 15        """**ID темы**"""
 16        self.creator = creator
 17        """**Объект Member создателя темы**"""
 18        self.create_date = create_date
 19        """**Дата создания темы в UNIX**"""
 20        self.title = title
 21        """**Заголовок темы**"""
 22        self.prefix = prefix
 23        """**Префикс темы**"""
 24        self.content = content
 25        """**Текст из темы**"""
 26        self.content_html = html_content
 27        """**Сырой контент темы**"""
 28        self.pages_count = pages_content
 29        """**Количество страниц с ответами в теме**"""
 30        self.is_closed = is_closed
 31        """**Закрыта ли тема**"""
 32        self.thread_post_id = thread_post_id
 33        """**ID сообщения темы (post_id)**"""
 34        self.url = f"{MAIN_URL}/threads/{self.id}/"
 35        """Ссылка на объект"""
 36    
 37
 38    def answer(self, message_html: str) -> Response:
 39        """Оставить сообщение в теме
 40
 41        Attributes:
 42            message_html (str): Cодержание ответа. Рекомендуется использование HTML
 43        
 44        Returns:
 45            Объект Response модуля requests
 46        """
 47
 48        return self.API.answer_thread(self.id, message_html)
 49
 50
 51    def watch(self, email_subscribe: bool = False, stop: bool = False) -> Response:
 52        """Изменить статус отслеживания темы
 53
 54        Attributes:
 55            email_subscribe (bool): Отправлять ли уведомления на почту. По умолчанию False (необяз.)
 56            stop (bool): - Принудительно прекратить отслеживание. По умолчанию False (необяз.)
 57        
 58        Returns:
 59            Объект Response модуля requests
 60        """
 61
 62        return self.API.watch_thread(self.id, email_subscribe, stop)
 63    
 64
 65    def delete(self, reason: str, hard_delete: bool = False) -> Response:
 66        """Удалить тему
 67
 68        Attributes:
 69            reason (str): Причина для удаления
 70            hard_delete (bool): Полное удаление сообщения. По умолчанию False (необяз.)
 71            
 72        Returns:
 73            Объект Response модуля requests
 74        """
 75
 76        return self.API.delete_thread(self.id, reason, hard_delete)
 77    
 78
 79    def edit(self, message_html: str) -> Response:
 80        """Отредактировать содержимое темы
 81
 82        Attributes:
 83            message_html (str): Новое содержимое ответа. Рекомендуется использование HTML
 84        
 85        Returns:
 86            Объект Response модуля requests
 87        """
 88
 89        return self.API.edit_thread(self.id, message_html)
 90
 91
 92    def edit_info(self, title: str = None, prefix_id: int = None, sticky: bool = True, opened: bool = True) -> Response:
 93        """Изменить заголовок и/или префикс темы
 94
 95        Attributes:
 96            title (str): Новое название
 97            prefix_id (int): Новый ID префикса
 98            sticky (bool): Закрепить (True - закреп / False - не закреп)
 99            opened (bool): Открыть/закрыть тему (True - открыть / False - закрыть)
100        
101        Returns:
102            Объект Response модуля requests
103        """
104
105        return self.API.edit_thread_info(self.id, title, prefix_id, sticky, opened)
106    
107
108    def get_posts(self, page: int = 1) -> list:
109        """Получить все ID сообщений из темы на странице
110
111        Attributes:
112            page (int): Cтраница для поиска. По умолчанию 1 (необяз.)
113        
114        Returns:
115            Список (list), состоящий из ID всех сообщений на странице
116        """
117
118        return self.API.get_thread_posts(self.id, page)
119
120
121    def react(self, reaction_id: int = 1) -> Response:
122        """Поставить реакцию на тему
123
124        Attributes:
125            reaction_id (int): ID реакции. По умолчанию 1 (необяз.)
126            
127        Returns:
128            Объект Response модуля requests
129        """
130
131        return self.API.react_thread(self.id, reaction_id)
132    
133
134    def get_category(self) -> 'Category':
135        """Получить родительский раздел раздела
136        
137        Returns:
138            Объект Catrgory, в котором создан раздел
139        """
140
141        return self.API.get_thread_category(self.id)
class Thread:
 12class Thread:
 13    def __init__(self, API: 'ArizonaAPI', id: int, creator: 'Member', create_date: int, title: str, prefix: str, content: str, html_content: str, pages_content: int, thread_post_id: int, is_closed: bool) -> None:
 14        self.API = API
 15        self.id = id
 16        """**ID темы**"""
 17        self.creator = creator
 18        """**Объект Member создателя темы**"""
 19        self.create_date = create_date
 20        """**Дата создания темы в UNIX**"""
 21        self.title = title
 22        """**Заголовок темы**"""
 23        self.prefix = prefix
 24        """**Префикс темы**"""
 25        self.content = content
 26        """**Текст из темы**"""
 27        self.content_html = html_content
 28        """**Сырой контент темы**"""
 29        self.pages_count = pages_content
 30        """**Количество страниц с ответами в теме**"""
 31        self.is_closed = is_closed
 32        """**Закрыта ли тема**"""
 33        self.thread_post_id = thread_post_id
 34        """**ID сообщения темы (post_id)**"""
 35        self.url = f"{MAIN_URL}/threads/{self.id}/"
 36        """Ссылка на объект"""
 37    
 38
 39    def answer(self, message_html: str) -> Response:
 40        """Оставить сообщение в теме
 41
 42        Attributes:
 43            message_html (str): Cодержание ответа. Рекомендуется использование HTML
 44        
 45        Returns:
 46            Объект Response модуля requests
 47        """
 48
 49        return self.API.answer_thread(self.id, message_html)
 50
 51
 52    def watch(self, email_subscribe: bool = False, stop: bool = False) -> Response:
 53        """Изменить статус отслеживания темы
 54
 55        Attributes:
 56            email_subscribe (bool): Отправлять ли уведомления на почту. По умолчанию False (необяз.)
 57            stop (bool): - Принудительно прекратить отслеживание. По умолчанию False (необяз.)
 58        
 59        Returns:
 60            Объект Response модуля requests
 61        """
 62
 63        return self.API.watch_thread(self.id, email_subscribe, stop)
 64    
 65
 66    def delete(self, reason: str, hard_delete: bool = False) -> Response:
 67        """Удалить тему
 68
 69        Attributes:
 70            reason (str): Причина для удаления
 71            hard_delete (bool): Полное удаление сообщения. По умолчанию False (необяз.)
 72            
 73        Returns:
 74            Объект Response модуля requests
 75        """
 76
 77        return self.API.delete_thread(self.id, reason, hard_delete)
 78    
 79
 80    def edit(self, message_html: str) -> Response:
 81        """Отредактировать содержимое темы
 82
 83        Attributes:
 84            message_html (str): Новое содержимое ответа. Рекомендуется использование HTML
 85        
 86        Returns:
 87            Объект Response модуля requests
 88        """
 89
 90        return self.API.edit_thread(self.id, message_html)
 91
 92
 93    def edit_info(self, title: str = None, prefix_id: int = None, sticky: bool = True, opened: bool = True) -> Response:
 94        """Изменить заголовок и/или префикс темы
 95
 96        Attributes:
 97            title (str): Новое название
 98            prefix_id (int): Новый ID префикса
 99            sticky (bool): Закрепить (True - закреп / False - не закреп)
100            opened (bool): Открыть/закрыть тему (True - открыть / False - закрыть)
101        
102        Returns:
103            Объект Response модуля requests
104        """
105
106        return self.API.edit_thread_info(self.id, title, prefix_id, sticky, opened)
107    
108
109    def get_posts(self, page: int = 1) -> list:
110        """Получить все ID сообщений из темы на странице
111
112        Attributes:
113            page (int): Cтраница для поиска. По умолчанию 1 (необяз.)
114        
115        Returns:
116            Список (list), состоящий из ID всех сообщений на странице
117        """
118
119        return self.API.get_thread_posts(self.id, page)
120
121
122    def react(self, reaction_id: int = 1) -> Response:
123        """Поставить реакцию на тему
124
125        Attributes:
126            reaction_id (int): ID реакции. По умолчанию 1 (необяз.)
127            
128        Returns:
129            Объект Response модуля requests
130        """
131
132        return self.API.react_thread(self.id, reaction_id)
133    
134
135    def get_category(self) -> 'Category':
136        """Получить родительский раздел раздела
137        
138        Returns:
139            Объект Catrgory, в котором создан раздел
140        """
141
142        return self.API.get_thread_category(self.id)
Thread( API: arz_api.api.ArizonaAPI, id: int, creator: arz_api.models.member_object.Member, create_date: int, title: str, prefix: str, content: str, html_content: str, pages_content: int, thread_post_id: int, is_closed: bool)
13    def __init__(self, API: 'ArizonaAPI', id: int, creator: 'Member', create_date: int, title: str, prefix: str, content: str, html_content: str, pages_content: int, thread_post_id: int, is_closed: bool) -> None:
14        self.API = API
15        self.id = id
16        """**ID темы**"""
17        self.creator = creator
18        """**Объект Member создателя темы**"""
19        self.create_date = create_date
20        """**Дата создания темы в UNIX**"""
21        self.title = title
22        """**Заголовок темы**"""
23        self.prefix = prefix
24        """**Префикс темы**"""
25        self.content = content
26        """**Текст из темы**"""
27        self.content_html = html_content
28        """**Сырой контент темы**"""
29        self.pages_count = pages_content
30        """**Количество страниц с ответами в теме**"""
31        self.is_closed = is_closed
32        """**Закрыта ли тема**"""
33        self.thread_post_id = thread_post_id
34        """**ID сообщения темы (post_id)**"""
35        self.url = f"{MAIN_URL}/threads/{self.id}/"
36        """Ссылка на объект"""
API
id

ID темы

creator

Объект Member создателя темы

create_date

Дата создания темы в UNIX

title

Заголовок темы

prefix

Префикс темы

content

Текст из темы

content_html

Сырой контент темы

pages_count

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

is_closed

Закрыта ли тема

thread_post_id

ID сообщения темы (post_id)

url

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

def answer(self, message_html: str) -> requests.models.Response:
39    def answer(self, message_html: str) -> Response:
40        """Оставить сообщение в теме
41
42        Attributes:
43            message_html (str): Cодержание ответа. Рекомендуется использование HTML
44        
45        Returns:
46            Объект Response модуля requests
47        """
48
49        return self.API.answer_thread(self.id, message_html)

Оставить сообщение в теме

Attributes:
  • message_html (str): Cодержание ответа. Рекомендуется использование HTML
Returns:

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

def watch( self, email_subscribe: bool = False, stop: bool = False) -> requests.models.Response:
52    def watch(self, email_subscribe: bool = False, stop: bool = False) -> Response:
53        """Изменить статус отслеживания темы
54
55        Attributes:
56            email_subscribe (bool): Отправлять ли уведомления на почту. По умолчанию False (необяз.)
57            stop (bool): - Принудительно прекратить отслеживание. По умолчанию False (необяз.)
58        
59        Returns:
60            Объект Response модуля requests
61        """
62
63        return self.API.watch_thread(self.id, email_subscribe, stop)

Изменить статус отслеживания темы

Attributes:
  • email_subscribe (bool): Отправлять ли уведомления на почту. По умолчанию False (необяз.)
  • stop (bool): - Принудительно прекратить отслеживание. По умолчанию False (необяз.)
Returns:

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

def delete(self, reason: str, hard_delete: bool = False) -> requests.models.Response:
66    def delete(self, reason: str, hard_delete: bool = False) -> Response:
67        """Удалить тему
68
69        Attributes:
70            reason (str): Причина для удаления
71            hard_delete (bool): Полное удаление сообщения. По умолчанию False (необяз.)
72            
73        Returns:
74            Объект Response модуля requests
75        """
76
77        return self.API.delete_thread(self.id, reason, hard_delete)

Удалить тему

Attributes:
  • reason (str): Причина для удаления
  • hard_delete (bool): Полное удаление сообщения. По умолчанию False (необяз.)
Returns:

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

def edit(self, message_html: str) -> requests.models.Response:
80    def edit(self, message_html: str) -> Response:
81        """Отредактировать содержимое темы
82
83        Attributes:
84            message_html (str): Новое содержимое ответа. Рекомендуется использование HTML
85        
86        Returns:
87            Объект Response модуля requests
88        """
89
90        return self.API.edit_thread(self.id, message_html)

Отредактировать содержимое темы

Attributes:
  • message_html (str): Новое содержимое ответа. Рекомендуется использование HTML
Returns:

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

def edit_info( self, title: str = None, prefix_id: int = None, sticky: bool = True, opened: bool = True) -> requests.models.Response:
 93    def edit_info(self, title: str = None, prefix_id: int = None, sticky: bool = True, opened: bool = True) -> Response:
 94        """Изменить заголовок и/или префикс темы
 95
 96        Attributes:
 97            title (str): Новое название
 98            prefix_id (int): Новый ID префикса
 99            sticky (bool): Закрепить (True - закреп / False - не закреп)
100            opened (bool): Открыть/закрыть тему (True - открыть / False - закрыть)
101        
102        Returns:
103            Объект Response модуля requests
104        """
105
106        return self.API.edit_thread_info(self.id, title, prefix_id, sticky, opened)

Изменить заголовок и/или префикс темы

Attributes:
  • title (str): Новое название
  • prefix_id (int): Новый ID префикса
  • sticky (bool): Закрепить (True - закреп / False - не закреп)
  • opened (bool): Открыть/закрыть тему (True - открыть / False - закрыть)
Returns:

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

def get_posts(self, page: int = 1) -> list:
109    def get_posts(self, page: int = 1) -> list:
110        """Получить все ID сообщений из темы на странице
111
112        Attributes:
113            page (int): Cтраница для поиска. По умолчанию 1 (необяз.)
114        
115        Returns:
116            Список (list), состоящий из ID всех сообщений на странице
117        """
118
119        return self.API.get_thread_posts(self.id, page)

Получить все ID сообщений из темы на странице

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

Список (list), состоящий из ID всех сообщений на странице

def react(self, reaction_id: int = 1) -> requests.models.Response:
122    def react(self, reaction_id: int = 1) -> Response:
123        """Поставить реакцию на тему
124
125        Attributes:
126            reaction_id (int): ID реакции. По умолчанию 1 (необяз.)
127            
128        Returns:
129            Объект Response модуля requests
130        """
131
132        return self.API.react_thread(self.id, reaction_id)

Поставить реакцию на тему

Attributes:
  • reaction_id (int): ID реакции. По умолчанию 1 (необяз.)
Returns:

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

def get_category(self) -> arz_api.models.category_object.Category:
135    def get_category(self) -> 'Category':
136        """Получить родительский раздел раздела
137        
138        Returns:
139            Объект Catrgory, в котором создан раздел
140        """
141
142        return self.API.get_thread_category(self.id)

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

Returns:

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