Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I drafted a content parser for TTS written in java (based on the jsoup library).
The parser should be ok, but the code in general is very much work-in-progress. I tried the parser with a couple of articles, seemed to work pretty much like current JS-based parser.
Main advantages:
That means the TTS service may be made to work completely by itself (just feed it the article ID).
The UI can pull metadata from the service (currently it's the opposite).
Disadvantages:
There is also an XPath-ranges-based highlighting/focusing implemented, since java parser can't provide pixel-based offsets. As an optimization, the UI part could get and store pixel-based offsets by itself.
Despite the fact that the parser itself is pretty much done, there's still a lot work to do: the whole UI <-> service interaction should be redone. Preferably, that horrendous
TtsData
and co. logic should be moved to the service, and the UI should just pull all the TTS information from the service.