Skip to content

Commit d98eb93

Browse files
committed
Reestructurado el algoritmo de obtención de las definiciones de un término. Actualizado el archivo README.md. Modificado el archivo BuildVars.py para reflejar el cambio de versión a la 2.0.
1 parent 59ed2c9 commit d98eb93

File tree

3 files changed

+25
-43
lines changed

3 files changed

+25
-43
lines changed

README.md

+6
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@ El único atajo disponible por el momento en este complemento, es la combinació
3434

3535
## Registro de cambios.
3636

37+
### Versión 2.0.
38+
39+
* Reestructurado el código del complemento para mejorar la obtención de todas las acepciones del término introducido, así como la obtención de los sinónimos y antónimos de cada acepción desde la web de la Real Academia Española.
40+
* Eliminada la consulta externa a wordreference.com a fin de obtener los sinónimos y antónimos.
41+
* Modificado el archivo README.md a fin de reflejar el cambio de versión y las últimas correcciones realizadas.
42+
3743
### Versión 1.3.2.3.
3844

3945
* Actualizada la compatibilidad de DLEChecker con NVDA 2023.1.0.

addon/globalPlugins/DLEChecker/__init__.py

+17-41
Original file line numberDiff line numberDiff line change
@@ -210,23 +210,24 @@ def mostrarDialogoResultado(mensaje):
210210
bs = BeautifulSoup(datos, 'html.parser')
211211
message = _("Definiciones de la palabra {palabra}").format(palabra=palabra) + "\n\n"
212212

213-
articulos = bs.find_all('article')
213+
definiciones = bs.find_all('p', class_="j")
214214

215-
if len(articulos) > 0:
216-
for articulo in articulos:
217-
if articulo.find('table', class_='cnj'):
218-
continue
219-
220-
message += articulo.header.get_text() + "\n"
221-
222-
for parrafo in articulo.find_all('p'):
223-
message += parrafo.get_text() + "\n"
224-
message += "\n"
225-
226-
while message[-1] == '\n':
227-
message = message.rstrip()
228-
229-
message = self.obtenerSinonimosYAntonimos(palabra, message)
215+
if definiciones:
216+
for definicion in definiciones:
217+
sinonimos = definicion.find('div', class_="sin-header sin-inline")
218+
219+
if not sinonimos:
220+
message += definicion.get_text().strip()+"\n\n"
221+
else:
222+
sinonimos.extract()
223+
filas = sinonimos.find_all('tr')
224+
message += definicion.get_text().strip()+"\n"
225+
226+
for fila in filas:
227+
message += fila.get_text().strip()+"\n"
228+
229+
message += "\n"
230+
230231
else:
231232
gui.messageBox(_("No existen definiciones en el Diccionario de la Lengua Española para la palabra introducida. Revisa la ortografía."), caption = _("¡Error!"), style = wx.ICON_ERROR)
232233
return
@@ -236,31 +237,6 @@ def mostrarDialogoResultado(mensaje):
236237
wx.CallAfter(mostrarDialogoError, _("Error al intentar obtener la definición de la palabra. Comprueba la ortografía, así como que la palabra existe."))
237238
return
238239

239-
def obtenerSinonimosYAntonimos(self, palabra, mensaje):
240-
url = "https://wordreference.com/sinonimos/" + request.quote(palabra)
241-
req = request.Request(url, data=None, headers={"User-Agent": "Mozilla/5.0"})
242-
243-
try:
244-
html = request.urlopen(req)
245-
datos = html.read().decode('utf-8')
246-
bs = BeautifulSoup(datos, 'html.parser')
247-
248-
div = bs.find('div', class_="trans esp clickable")
249-
lista_sinonimos = div.ul
250-
251-
mensaje += "\n\nSinónimos: "
252-
253-
for sinonimo in lista_sinonimos:
254-
if sinonimo.get_text() == "":
255-
continue
256-
257-
mensaje += sinonimo.get_text() + "\n"
258-
259-
except:
260-
mensaje += "\n😕 No existen sinónimos ni antónimos definidos para esta palabra, o quizá la página esté sufriendo problemas técnicos."
261-
262-
return mensaje
263-
264240
def limpiarTexto(self, texto):
265241
cadenaResultante = ""
266242

buildVars.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
# Translators: Long description to be shown for this add-on on add-on information from add-ons manager
2020
"addon_description": _("""Este complemento busca la definición de la palabra seleccionada en el diccionario de la Real Academia Española."""),
2121
# version
22-
"addon_version": "1.3.2.4",
22+
"addon_version": "2.0",
2323
# Author(s)
2424
"addon_author": "Antonio Cascales <[email protected]>",
2525
# URL for the add-on documentation support
@@ -29,7 +29,7 @@
2929
# Minimum NVDA version supported (e.g. "2018.3.0", minor version is optional)
3030
"addon_minimumNVDAVersion": "2019.3.0",
3131
# Last NVDA version supported/tested (e.g. "2018.4.0", ideally more recent than minimum version)
32-
"addon_lastTestedNVDAVersion": "2023.1.0",
32+
"addon_lastTestedNVDAVersion": "2024.1.0",
3333
# Add-on update channel (default is None, denoting stable releases, and for development releases, use "dev"; do not change unless you know what you are doing)
3434
"addon_updateChannel": None,
3535
}

0 commit comments

Comments
 (0)