udemy-userAPI 0.3.9__tar.gz → 0.3.10__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (25) hide show
  1. {udemy_userapi-0.3.9/udemy_userAPI.egg-info → udemy_userapi-0.3.10}/PKG-INFO +1 -1
  2. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI/__version__.py +1 -1
  3. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI/bultins.py +115 -4
  4. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10/udemy_userAPI.egg-info}/PKG-INFO +1 -1
  5. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/LICENSE +0 -0
  6. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/MANIFEST.in +0 -0
  7. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/README.md +0 -0
  8. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/README_PYPI.md +0 -0
  9. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/setup.cfg +0 -0
  10. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/setup.py +0 -0
  11. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI/.cache/.udemy_userAPI +0 -0
  12. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI/__init__.py +0 -0
  13. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI/api.py +0 -0
  14. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI/authenticate.py +0 -0
  15. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI/exeptions.py +0 -0
  16. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI/mpd_analyzer/__init__.py +0 -0
  17. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI/mpd_analyzer/bin.wvd +0 -0
  18. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI/mpd_analyzer/mpd_parser.py +0 -0
  19. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI/sections.py +0 -0
  20. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI/udemy.py +0 -0
  21. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI.egg-info/SOURCES.txt +0 -0
  22. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI.egg-info/dependency_links.txt +0 -0
  23. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI.egg-info/not-zip-safe +0 -0
  24. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI.egg-info/requires.txt +0 -0
  25. {udemy_userapi-0.3.9 → udemy_userapi-0.3.10}/udemy_userAPI.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: udemy_userAPI
3
- Version: 0.3.9
3
+ Version: 0.3.10
4
4
  Summary: Obtenha detalhes de cursos que o usuário esteja inscrito da plataforma Udemy,usando o EndPoint de usuário o mesmo que o navegador utiliza para acessar e redenrizar os cursos.
5
5
  Author: PauloCesar-dev404
6
6
  Author-email: paulocesar0073dev404@gmail.com
@@ -1,4 +1,4 @@
1
- __version__ = '0.3.9'
1
+ __version__ = '0.3.10'
2
2
  __lib_name__ = 'udemy_userAPI' # local name
3
3
  __repo_name__ = 'udemy-userAPI'
4
4
  __autor__ = 'PauloCesar-dev404'
@@ -49,7 +49,6 @@ class DRM:
49
49
  except Exception as e:
50
50
  raise Exception(f"Não foi possível obter as chaves!\n{e}")
51
51
 
52
-
53
52
  class Files:
54
53
  def __init__(self, files: list[dict], id_course):
55
54
  """
@@ -104,6 +103,112 @@ class Files:
104
103
  'data-file': da['download_urls']}
105
104
  download_urls.append(dt_file)
106
105
  return download_urls
106
+ class Caption:
107
+ """Representa uma legenda."""
108
+
109
+ def __init__(self, caption: dict):
110
+ """
111
+ Inicializa uma instância de Caption.
112
+
113
+ Args:
114
+ caption (dict): Dados da legenda.
115
+ """
116
+ self._caption = caption
117
+
118
+ @property
119
+ def locale(self) -> str:
120
+ """Retorna o idioma."""
121
+ return self._caption.get('video_label', '')
122
+
123
+ @property
124
+ def status(self) -> str:
125
+ """Retorna o status da legenda 1 ou 0"""
126
+ return self._caption.get('status')
127
+
128
+ @property
129
+ def title(self) -> str:
130
+ """Retorna o título da legenda."""
131
+ return self._caption.get('title', '')
132
+
133
+ @property
134
+ def created(self) -> str:
135
+ """Retorna a data de criação da legenda."""
136
+ return self._caption.get('created', '')
137
+
138
+ @property
139
+ def id(self) -> int:
140
+ """Retorna o ID da legenda."""
141
+ return self._caption.get('id', 0)
142
+
143
+ @property
144
+ def url(self) -> str:
145
+ """Retorna a URL da legenda."""
146
+ return self._caption.get('url', '')
147
+
148
+ @property
149
+ def content(self) -> str:
150
+ """Obtém o conteúdo da legenda."""
151
+ if self.url:
152
+ r = requests.get(headers=HEADERS_USER, url=self.url)
153
+ if r.status_code == 200:
154
+ return r.text
155
+ else:
156
+ raise ConnectionError(
157
+ f'status_code: {r.status_code}, Não foi possível obter o conteúdo da legenda!'
158
+ )
159
+ else:
160
+ raise FileNotFoundError(
161
+ 'Não foi possível obter a URL da legenda!'
162
+ )
163
+
164
+ class Captions:
165
+ """Gerencia as legendas de um vídeo."""
166
+
167
+ def __init__(self, caption_data: list):
168
+ """
169
+ Inicializa uma instância de Captions.
170
+
171
+ Args:
172
+ caption_data (list): Dados das legendas.
173
+ """
174
+ self._caption_data = caption_data
175
+
176
+ def languages(self) -> list[dict]:
177
+ """Retorna a lista de idiomas disponíveis na aula."""
178
+ langs = []
179
+ for caption in self._caption_data:
180
+ locale_id = caption.get('locale_id', '')
181
+ video_label = caption.get('video_label','')
182
+ if locale_id:
183
+ langs.append({'locale_id': locale_id,'locale':video_label})
184
+ return langs
185
+
186
+ def get_lang(self, locale_id: str) -> Caption:
187
+ """
188
+ Obtém a legenda para o idioma especificado.
189
+
190
+
191
+ Args:
192
+ locale_id (str): ID do idioma,pode ser obtido no método -> 'languages'
193
+
194
+ Returns:
195
+ Caption: Objeto Caption.
196
+
197
+ Raises:
198
+ FileNotFoundError: Se o idioma não estiver disponível na aula.
199
+ """
200
+ is_t = False
201
+ cpt = {}
202
+ for caption in self._caption_data:
203
+ if locale_id == caption.get('locale_id'):
204
+ is_t = True
205
+ cpt = caption
206
+ if not is_t:
207
+ raise FileNotFoundError(
208
+ 'Esse idioma não está disponível nessa aula!'
209
+ )
210
+ c = Caption(caption=cpt)
211
+ return c
107
212
 
108
213
  class Quiz:
109
214
  """Representa um quiz.
@@ -244,14 +349,20 @@ class Lecture:
244
349
  return self.__asset.get('media_sources',[])
245
350
 
246
351
  @property
247
- def get_captions(self) -> list:
352
+ def get_captions(self) -> Captions:
248
353
  """
249
354
  Obtém as legendas.
250
355
 
251
356
  Returns:
252
- list: Uma lista contendo as legendas.
357
+ Captions: Objeto para gerenciar as legendas.
253
358
  """
254
- return self.__asset.get('captions',[])
359
+ if self.__asset.get('captions', []):
360
+ c = Captions(caption_data=self.__asset.get('captions', []))
361
+ return c
362
+ else:
363
+ raise FileNotFoundError(
364
+ 'Não foi encontrada legendas nessa aula!'
365
+ )
255
366
 
256
367
  @property
257
368
  def get_external_url(self) -> list:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: udemy_userAPI
3
- Version: 0.3.9
3
+ Version: 0.3.10
4
4
  Summary: Obtenha detalhes de cursos que o usuário esteja inscrito da plataforma Udemy,usando o EndPoint de usuário o mesmo que o navegador utiliza para acessar e redenrizar os cursos.
5
5
  Author: PauloCesar-dev404
6
6
  Author-email: paulocesar0073dev404@gmail.com
File without changes
File without changes
File without changes
File without changes