drae icon indicating copy to clipboard operation
drae copied to clipboard

Accent mark handling

Open clvLabs opened this issue 5 years ago • 3 comments

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"}]}]
  • In the first search (ficción), everything works as expected
  • In the second search (ficcion) the accent mark has been omitted and the search engine manages to find it anyway :+1: . But the returned object includes the wrong spelling in the word field
  • In the third example (fíccion) a wrong accent mark has been added and the same thing happens

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 avatar Apr 27 '19 14:04 clvLabs