udemy-userAPI 0.3.4__py3-none-any.whl → 0.3.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- __version__ = '0.3.4'
1
+ __version__ = '0.3.5'
2
2
  __lib_name__ = 'udemy_userAPI' # local name
3
3
  __repo_name__ = 'udemy-userAPI'
4
4
  __autor__ = 'PauloCesar-dev404'
udemy_userAPI/api.py CHANGED
@@ -66,7 +66,7 @@ def get_pssh(init_url):
66
66
  from .authenticate import UdemyAuth
67
67
  auth = UdemyAuth()
68
68
  if not auth.verif_login():
69
- raise LoginException("Seção expirada!")
69
+ raise LoginException("Sessão expirada!")
70
70
  res = requests.get(init_url, headers=HEADERS_octet_stream)
71
71
  if not res.ok:
72
72
  return
@@ -134,7 +134,7 @@ def extract(pssh, license_token):
134
134
  from .authenticate import UdemyAuth
135
135
  auth = UdemyAuth()
136
136
  if not auth.verif_login():
137
- raise LoginException("Seção expirada!")
137
+ raise LoginException("Sessão expirada!")
138
138
  license_url = (f"https://www.udemy.com/api-2.0/media-license-server/validate-auth-token?drm_type=widevine"
139
139
  f"&auth_token={license_token}")
140
140
  session_id = cdm.open()
@@ -163,7 +163,7 @@ def get_mpd_file(mpd_url):
163
163
  from .authenticate import UdemyAuth
164
164
  auth = UdemyAuth()
165
165
  if not auth.verif_login():
166
- raise LoginException("Seção expirada!")
166
+ raise LoginException("Sessão expirada!")
167
167
  try:
168
168
  # Faz a solicitação GET com os cabeçalhos
169
169
  response = requests.get(mpd_url, headers=HEADERS_USER)
@@ -240,7 +240,7 @@ def get_add_files(course_id: int):
240
240
  from .authenticate import UdemyAuth
241
241
  auth = UdemyAuth()
242
242
  if not auth.verif_login():
243
- raise LoginException("Seção expirada!")
243
+ raise LoginException("Sessão expirada!")
244
244
  url = (f'https://www.udemy.com/api-2.0/courses/{course_id}/subscriber-curriculum-items/?page_size=2000&fields['
245
245
  f'lecture]=title,object_index,is_published,sort_order,created,asset,supplementary_assets,is_free&fields['
246
246
  f'quiz]=title,object_index,is_published,sort_order,type&fields[practice]=title,object_index,is_published,'
@@ -312,7 +312,7 @@ def get_links(course_id: int, id_lecture: int):
312
312
  from .authenticate import UdemyAuth
313
313
  auth = UdemyAuth()
314
314
  if not auth.verif_login():
315
- raise LoginException("Seção expirada!")
315
+ raise LoginException("Sessão expirada!")
316
316
  try:
317
317
  # Faz a solicitação GET com os cabeçalhos
318
318
  response = requests.get(get, headers=HEADERS_USER)
@@ -360,7 +360,7 @@ def get_external_liks(course_id: int, id_lecture, asset_id):
360
360
  from .authenticate import UdemyAuth
361
361
  auth = UdemyAuth()
362
362
  if not auth.verif_login():
363
- raise LoginException("Seção expirada!")
363
+ raise LoginException("Sessão expirada!")
364
364
  url = (f'https://www.udemy.com/api-2.0/users/me/subscribed-courses/{course_id}/lectures/{id_lecture}/'
365
365
  f'supplementary-assets/{asset_id}/?fields[asset]=external_url')
366
366
  try:
@@ -561,7 +561,7 @@ def lecture_infor(course_id: int, id_lecture: int):
561
561
  from .authenticate import UdemyAuth
562
562
  auth = UdemyAuth()
563
563
  if not auth.verif_login():
564
- raise LoginException("Seção expirada!")
564
+ raise LoginException("Sessão expirada!")
565
565
  edpoint = (f"https://www.udemy.com/api-2.0/users/me/subscribed-courses/{course_id}/lectures/{id_lecture}/?"
566
566
  f"fields[asset]=media_license_token")
567
567
  r = requests.get(edpoint, headers=HEADERS_USER)
@@ -592,7 +592,7 @@ def assets_infor(course_id: int, id_lecture: int, assets_id: int):
592
592
  from .authenticate import UdemyAuth
593
593
  auth = UdemyAuth()
594
594
  if not auth.verif_login():
595
- raise LoginException("Seção expirada!")
595
+ raise LoginException("Sessão expirada!")
596
596
  endpoint = (f'https://www.udemy.com/api-2.0/assets/{assets_id}/?fields[asset]=@min,status,delayed_asset_message,'
597
597
  f'processing_errors,body&course_id={course_id}&lecture_id={id_lecture}')
598
598
  r = requests.get(endpoint, headers=HEADERS_USER)
@@ -89,7 +89,11 @@ class UdemyAuth:
89
89
  return False
90
90
  else:
91
91
  if 'error: 111' in resp.text:
92
- raise Upstreamconnecterror(message='Erro no servidor remoto!')
92
+ raise Upstreamconnecterror(message=
93
+ 'Erro ao se comunicar com o servidor remoto!')
94
+ elif 'upstream connect error or disconnect/reset before headers. reset reason: connection timeout' in resp.text:
95
+ raise Upstreamconnecterror(""
96
+ "Ocorreu uma falha de tempo de resposta!")
93
97
  else:
94
98
  raise LoginException(f"Erro Ao obter login : {resp.text}")
95
99
  except requests.ConnectionError as e:
@@ -116,7 +120,7 @@ class UdemyAuth:
116
120
  """
117
121
  try:
118
122
  if self.verif_login():
119
- raise UserWarning("Atenção, você já possui uma seção válida!")
123
+ raise UserWarning("Atenção, você já possui uma Sessão válida!")
120
124
  s = cloudscraper.create_scraper()
121
125
  r = s.get(
122
126
  "https://www.udemy.com/join/signup-popup/",
@@ -222,7 +226,7 @@ class UdemyAuth:
222
226
  from .api import J
223
227
  try:
224
228
  if self.verif_login():
225
- raise UserWarning("Atenção, você já possui uma seção válida!")
229
+ raise UserWarning("Atenção, você já possui uma Sessão válida!")
226
230
  # Inicializa uma sessão com proteção contra Cloudflare
227
231
  session = cloudscraper.create_scraper()
228
232
 
udemy_userAPI/bultins.py CHANGED
@@ -76,7 +76,7 @@ class Files:
76
76
  from .authenticate import UdemyAuth
77
77
  auth = UdemyAuth()
78
78
  if not auth.verif_login():
79
- raise LoginException("Seção expirada!")
79
+ raise LoginException("Sessão expirada!")
80
80
  download_urls = []
81
81
  for files in self.__data:
82
82
  lecture_id = files.get('lecture_id', None)
@@ -418,7 +418,7 @@ class Course:
418
418
 
419
419
  for chapter in self.__data.values():
420
420
  for index, video in enumerate(chapter.get('videos_in_chapter', [])):
421
- section = f"{chapter.get('title_chapter')}" # Adicionar numeração da seção
421
+ section = f"{chapter.get('title_chapter')}" # Adicionar numeração da Sessão
422
422
  title = video.get('video_title')
423
423
  id_lecture = video.get('lecture_id')
424
424
  id_asset = video.get('asset_id')
@@ -430,7 +430,7 @@ class Course:
430
430
  'section_order': section_order
431
431
  }
432
432
  videos.append(dt)
433
- section_order += 1 # Incrementar o número da seção após processar os vídeos do capítulo
433
+ section_order += 1 # Incrementar o número da Sessão após processar os vídeos do capítulo
434
434
  return videos
435
435
 
436
436
  def get_details_lecture(self, lecture_id: int) -> Lecture:
udemy_userAPI/sections.py CHANGED
@@ -12,7 +12,7 @@ def get_courses_plan(tipe: str) -> list:
12
12
  from .authenticate import UdemyAuth
13
13
  auth = UdemyAuth()
14
14
  if not auth.verif_login():
15
- raise LoginException("Seção expirada!")
15
+ raise LoginException("Sessão expirada!")
16
16
  courses_data = []
17
17
  if tipe == 'default':
18
18
  response = requests.get(f"https://www.udemy.com/api-2.0/users/me/subscribed-courses/?page_size=1000"
@@ -69,7 +69,7 @@ def get_details_courses(course_id):
69
69
  from .authenticate import UdemyAuth
70
70
  auth = UdemyAuth()
71
71
  if not auth.verif_login():
72
- raise LoginException("Seção expirada!")
72
+ raise LoginException("Sessão expirada!")
73
73
  response = requests.get(
74
74
  f"https://www.udemy.com/api-2.0/courses/{course_id}/subscriber-curriculum-items/?"
75
75
  f"caching_intent=True&fields%5Basset%5D=title%2Cfilename%2Casset_type%2Cstatus%2Ctime_estimation%2"
@@ -105,7 +105,7 @@ def get_course_infor(course_id):
105
105
  from .authenticate import UdemyAuth
106
106
  auth = UdemyAuth()
107
107
  if not auth.verif_login():
108
- raise LoginException("Seção expirada!")
108
+ raise LoginException("Sessão expirada!")
109
109
  end_point = (
110
110
  f'https://www.udemy.com/api-2.0/courses/{course_id}/?fields[course]=title,context_info,primary_category,'
111
111
  'primary_subcategory,avg_rating_recent,visible_instructors,locale,estimated_content_length,'
udemy_userAPI/udemy.py CHANGED
@@ -20,7 +20,7 @@ class Udemy:
20
20
  """
21
21
  self.__headers = HEADERS_USER
22
22
  if not verif_login:
23
- raise LoginException("Seção expirada!")
23
+ raise LoginException("Sessão expirada!")
24
24
 
25
25
  @staticmethod
26
26
  def my_subscribed_courses_by_plan() -> list[dict]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: udemy_userAPI
3
- Version: 0.3.4
3
+ Version: 0.3.5
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
@@ -19,7 +19,7 @@ Requires-Dist: pywidevine
19
19
  # udemy-userAPI
20
20
 
21
21
 
22
- ![Versão](https://img.shields.io/badge/version-0.3.4-orange)
22
+ ![Versão](https://img.shields.io/badge/version-0.3.5-orange)
23
23
  ![Licença](https://img.shields.io/badge/license-MIT-orange)
24
24
  [![Sponsor](https://img.shields.io/badge/💲Donate-yellow)](https://paulocesar-dev404.github.io/me-apoiando-online/)
25
25
  [![Sponsor](https://img.shields.io/badge/Documentation-green)](https://github.com/PauloCesar-dev404/udemy-userAPI/blob/main/docs/iniciando.md)
@@ -11,19 +11,19 @@ m3u8_analyzer/__init__.py,sha256=v7CiVqsCq2YH347C-QR1kHPJtXFFdru8qole3E9adCY,217
11
11
  m3u8_analyzer/__version__.py,sha256=YP3yT87ZKrU3eARUUdQ_pg4xAXLGfBXjH4ZgEoZSq1I,25
12
12
  m3u8_analyzer/exeptions.py,sha256=fK6bU3YxNSbfsPmCp4yudUvmwy_g6dj2KwIkH0dW4LI,3672
13
13
  udemy_userAPI/__init__.py,sha256=BPle89xE_CMTKKe_Lw6jioYLgpH-q_Lpho2S-n1PIUA,206
14
- udemy_userAPI/__version__.py,sha256=Y5EswWnkEFqX77VlVabBYEHq1PF_ah5ZrWim3K_4g-s,405
15
- udemy_userAPI/api.py,sha256=U47bxTkdqVgAwxOvHpOV7alzVnEEgpxygBYrnkH7x50,24277
16
- udemy_userAPI/authenticate.py,sha256=tUeHkIUIlvBlSKyymvPjgYAzpalpYuO7gCFrwld5V8s,13885
17
- udemy_userAPI/bultins.py,sha256=YLaiGqzHKK7HAgmw7wrgbev1Uq3dHAsU-j1vb3kQn_A,16428
14
+ udemy_userAPI/__version__.py,sha256=KF4FqN0B8354CyIinRZ2T7-t4ct6rTtcrMnH_iJeu4c,405
15
+ udemy_userAPI/api.py,sha256=oDVylMQ6CsMeJ7V7FKdjjjvY0GrHHqJdVMTTptQmSiE,24277
16
+ udemy_userAPI/authenticate.py,sha256=RZb8R4fjmXEZFn8-RgCEOiPVgc6KpUglR_NcN2lgxiM,14242
17
+ udemy_userAPI/bultins.py,sha256=HzLiGLfLPY_wGe9mHOHWcTRMJA5ssJ7lhFX-k6jG7qo,16428
18
18
  udemy_userAPI/exeptions.py,sha256=kfnPdZpqYY8nd0gnl6_Vh-MIz-XupmmbRPIuFnyXupk,692
19
- udemy_userAPI/sections.py,sha256=qyD8GwU4AR9ezL1wgQOC3HopExk72L-vp49LJZQl8XI,5474
20
- udemy_userAPI/udemy.py,sha256=nCx7czlGPgkqaIB-E1RVO1IGTS_G9yZWhBBhMHyt45I,2920
19
+ udemy_userAPI/sections.py,sha256=oP3jvbsWocemqhzzOAOoeL7ICF1f4gNvjL4FJBt47pE,5474
20
+ udemy_userAPI/udemy.py,sha256=SpK0LI4hjO45nZDz5waw-Py-d0uulBb28TVjltyWBxM,2920
21
21
  udemy_userAPI/.cache/.udemy_userAPI,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  udemy_userAPI/mpd_analyzer/__init__.py,sha256=i3JVWyvcFLaj5kPmx8c1PgjsLht7OUIQQClD4yqYbo8,102
23
23
  udemy_userAPI/mpd_analyzer/bin.wvd,sha256=1rAJdCc120hQlX9qe5KUS628eY2ZHYxQSmyhGNefSzo,2956
24
24
  udemy_userAPI/mpd_analyzer/mpd_parser.py,sha256=PgUkHc5x8FTuXFCuYkWPZr9TaO_nsKalb02EFYl_zeA,8926
25
- udemy_userAPI-0.3.4.dist-info/LICENSE,sha256=l4jdKYt8gSdDFOGr09vCKnMn_Im55XIcQKqTDEtFfNs,1095
26
- udemy_userAPI-0.3.4.dist-info/METADATA,sha256=IEu2-1E9wnR9zwn0KsViLF7dNwAigH4rBHsNEj5cgJ8,1438
27
- udemy_userAPI-0.3.4.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
28
- udemy_userAPI-0.3.4.dist-info/top_level.txt,sha256=ijTINaSDRKhdahY_X7dmSRFTxBIwQErWv9ATCG55mog,14
29
- udemy_userAPI-0.3.4.dist-info/RECORD,,
25
+ udemy_userAPI-0.3.5.dist-info/LICENSE,sha256=l4jdKYt8gSdDFOGr09vCKnMn_Im55XIcQKqTDEtFfNs,1095
26
+ udemy_userAPI-0.3.5.dist-info/METADATA,sha256=o1owEF5J71y7GTa1Q9pBbaiVL4IRQ7LqWKyCRwUKABY,1438
27
+ udemy_userAPI-0.3.5.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
28
+ udemy_userAPI-0.3.5.dist-info/top_level.txt,sha256=ijTINaSDRKhdahY_X7dmSRFTxBIwQErWv9ATCG55mog,14
29
+ udemy_userAPI-0.3.5.dist-info/RECORD,,