squat / drae

A RESTful API for el Diccionario de la Real Academia Española
MIT License
65 stars 18 forks source link

Accent mark handling #6

Open clvLabs opened 5 years ago

clvLabs commented 5 years ago

When searching for words with accent marks, there's an odd behaviour:

$ docker run squat/drae define ficción
[{"word":"ficción","etymology":"Del lat. fictio, -ōnis.","definitions":[{"category":"nombre femenino","definition":"Acción y efecto de fingir","origin":[],"notes":[],"examples":[]},{"category":"nombre femenino","definition":"Invención cosa fingida","origin":[],"notes":[],"examples":[]},{"category":"nombre femenino","definition":"Clase de obras literarias o cinematográficas generalmente narrativas que tratan de sucesos y personajes imaginarios","origin":[],"notes":[],"examples":["Obra, libro de ficción."]}],"variations":[{"definitions":[{"category":"nombre femenino","definition":"ficción que introduce o autoriza la ley o la jurisprudencia en favor de alguien como cuando al hijo concebido se le tiene por nacido","origin":["Derecho"],"notes":[],"examples":[]},{"category":"","definition":"ciencia ficción","origin":[],"notes":[],"examples":[]}],"variation":"ficción de derecho, o ficción legal"}]}]

$ docker run squat/drae define ficcion
[{"word":"ficcion","etymology":"Del lat. fictio, -ōnis.","definitions":[{"category":"nombre femenino","definition":"Acción y efecto de fingir","origin":[],"notes":[],"examples":[]},{"category":"nombre femenino","definition":"Invención cosa fingida","origin":[],"notes":[],"examples":[]},{"category":"nombre femenino","definition":"Clase de obras literarias o cinematográficas generalmente narrativas que tratan de sucesos y personajes imaginarios","origin":[],"notes":[],"examples":["Obra, libro de ficción."]}],"variations":[{"definitions":[{"category":"nombre femenino","definition":"ficción que introduce o autoriza la ley o la jurisprudencia en favor de alguien como cuando al hijo concebido se le tiene por nacido","origin":["Derecho"],"notes":[],"examples":[]},{"category":"","definition":"ciencia ficción","origin":[],"notes":[],"examples":[]}],"variation":"ficción de derecho, o ficción legal"}]}]

$ docker run squat/drae define fíccion
[{"word":"fíccion","etymology":"Del lat. fictio, -ōnis.","definitions":[{"category":"nombre femenino","definition":"Acción y efecto de fingir","origin":[],"notes":[],"examples":[]},{"category":"nombre femenino","definition":"Invención cosa fingida","origin":[],"notes":[],"examples":[]},{"category":"nombre femenino","definition":"Clase de obras literarias o cinematográficas generalmente narrativas que tratan de sucesos y personajes imaginarios","origin":[],"notes":[],"examples":["Obra, libro de ficción."]}],"variations":[{"definitions":[{"category":"nombre femenino","definition":"ficción que introduce o autoriza la ley o la jurisprudencia en favor de alguien como cuando al hijo concebido se le tiene por nacido","origin":["Derecho"],"notes":[],"examples":[]},{"category":"","definition":"ciencia ficción","origin":[],"notes":[],"examples":[]}],"variation":"ficción de derecho, o ficción legal"}]}]

Peekin'round the code found that the word used to generate the returned object is the same received by parameter - define.go:127

func scrape(url string, word string) ([]*Entry, error) {
// ...
            entries[k] = &Entry{
                Word:        word,
                Etymology:   etymology,
                Definitions: defs,
                Variations:  vars,
            }
// ...
    return entries, nil
}

Haven't gone thru the scraping details, but I guess the correct word spelling will be in the returned document.

It would be a very nice feature to have (I use drae very frequently) since sometimes I don't feel confident about having the spelling right even if I check the dictionary (so I have to go to the official site)

BTW, thanks a lot for drae!!!!

clvLabs commented 5 years ago

It goes even further...

$ docker run squat/drae define mono             
[{"word":"mono","etymology":"De mona1, y este quizá acort. de maimona, f. de maimón1 'mico'.","definitions":[{"category":"adjetivo coloquial","definition":"Dicho de una persona De aspecto agradable ...

$ docker run squat/drae define monete
[{"word":"monete","etymology":"De mona1, y este quizá acort. de maimona, f. de maimón1 'mico'.","definitions":[{"category":"adjetivo coloquial","definition":"Dicho de una persona De aspecto agradable ...
squat commented 4 years ago

@clvLabs so sorry I missed this notification from last year 😱! What would you like to see as the handling for this case? Should draw warn that the spelling has been corrected? Thank you for filing this issue :))

squat commented 4 years ago

Ah, or simply replace the "word" field with the corrected one returned by RAE :+1: