Commit Graph

70 Commits

Author SHA1 Message Date
toasted-nutbread
096bde44ee
Documentation updates (#2257)
* Document Backend

* Document RequestBuilder

* Document some of AnkiConnect
2022-10-16 22:07:57 -04:00
toasted-nutbread
9ef7f9d383
Clipboard updates (#2254)
* Rename

* Rename vars

* Refactor paste target

* Prevent most CSS url() properties from loading

* Add helper function to clear rich function

* Add useRichText argument

* Update condition for using readText

* Fix indent

* Update CSS
2022-10-15 22:43:12 -04:00
toasted-nutbread
abb3e5d5d0
Audio certificate error notification (#2243)
* Refactor error throwing and change ID

* Show a notification when an audio download fails due to an expired cert
2022-10-05 22:51:15 -04:00
toasted-nutbread
115c3ce3d7
API loadExtensionScripts (#2233)
* Inject MV3 scripts immediately

* Add api.loadExtensionScripts
2022-09-24 16:41:21 -04:00
toasted-nutbread
d3807d88ec
ArrayBufferUtil (#2215)
* Rename StringUtil to ArrayBufferUtil

* Update docs

* Rename file string-util.js to array-buffer-util.js
2022-08-20 12:53:22 -04:00
toasted-nutbread
310303ca1a
Audio download timeout (#2187)
* Add support for an idle timeout when downloading audio

* Update eslint rules

* Pass idleTimeout to the downloader from DisplayAnki

* Add anki.downloadTimeout setting

* Update tests

* Assign _audioDownloadIdleTimeout using settings

* Show info about cancelled downloads

* Handle Firefox bug

* Improve audio errors

* Refactor

* Move functions to RequestBuilder
2022-08-20 11:17:24 -04:00
toasted-nutbread
19bba07a8b
Add support for Anki API key (#2169)
* Update material.css to support password fields

* Support password

* Add "apiKey" setting

* Use apiKey

* Update options if API key changes

* Update tests
2022-05-30 12:03:24 -04:00
toasted-nutbread
331a2e6294
Add support for guiEditNote to view notes (#2143)
* Add AnkiConnect.guiEditNote

* Update _onApiNoteView to first try guiEditNote

* Add setting

* Update noteView API

* Use setting

* Return which mode was used

* Update DisplayGenerator

* Handle errors in DisplayAnki

* Update docs

* Add isErrorUnsupportedAction function

* Add an allowFallback option to noteView

* Disambiguate

* Simplify now that preferredMode isn't used

* Update settings info

* Implement test buttons

* Update styles

* Update status visibility

* Wrap layout

* Update description

* Update date
2022-05-29 21:24:41 -04:00
toasted-nutbread
46fda6e653
Update referenceUrl to include fragment (#2164) 2022-05-29 12:02:31 -04:00
toasted-nutbread
47194926f3
Add an issues page with information about some errors (#2163) 2022-05-28 22:22:15 -04:00
toasted-nutbread
0d82c52a76
HTML page script refactoring (#2162)
* Move some common functionality

* Move setupEnvironmentInfo into ExtensionContentController

* Move background/environment.js to extension/environment.js
2022-05-28 21:57:25 -04:00
toasted-nutbread
4e4fa49b0b
Audio request errors (#2161)
* Generalize _onBeforeSendHeadersAddListener

* Simplify filter assignment

* Use requestId rather than done

* Properly support Firefox addListener without arguments

* Add details to fetchAnonymous errors

* Refactor

* Enable support for no header modifications

* Update MV3 support for error details

* Expose errors in downloadTermAudio

* Throw an error if audio download fails due to potential permissions reasons
2022-05-28 21:55:37 -04:00
toasted-nutbread
fd00a52856
Anki findNotes (#2152)
* Add findNotes API

* Add api.findAnkiNotes
2022-05-21 15:28:44 -04:00
toasted-nutbread
31e20c889e
ESlint JSdoc (#2148)
* Install eslint-plugin-jsdoc

* Initial rules setup

* Update lists

* Use @returns rather than @return

* Remove error throwing code which is never executed

* Fix issues relating to @throws

* General error fixes

* Update Display type documentation

* Various doc fixes

* Fix invalid tuple syntax

* Doc updates

* Remove unused

* Doc updates

* Enable jsdoc/require-returns

* Update rules

* Update remaining rules
2022-05-20 10:28:38 -04:00
toasted-nutbread
ae0ad227c0
Add mode documentation about the types used by Translator (#2147) 2022-05-19 20:16:40 -04:00
toasted-nutbread
f98f5f9395
Improve Anki storeMediaFile (#2084)
* Use the return value of storeMediaFile

* Update documentation
2022-03-13 21:17:41 -04:00
toasted-nutbread
89ac85afd0
Update copyright date (#2062)
* Update eslint settings

* Update 2021 files

* Update other files
2022-02-02 20:43:10 -05:00
toasted-nutbread
8a377cabe6
matchType/deinflect distinction (#2040)
* Pass a "deinflect" option to findTerms

* Update Translator to use deinflect option

* Fix test input options
2021-12-17 17:02:13 -05:00
toasted-nutbread
19ab9df6e4
Replace 'wildcard' parameter with 'matchType' (#2038) 2021-12-17 16:11:19 -05:00
toasted-nutbread
f2102ade4c
Add AccessibilityController class, which dynamically registers (#2024)
and unregisters the google-docs.js content script
2021-11-23 22:23:14 -05:00
toasted-nutbread
d454b52a18
Google Docs accessibility refactor (#2023)
* Skip urlRegex if it's used as a filter

* Add getRequiredContentScriptRegistrationPermissions function

* Add a reentrant check to google-docs.js

* Remove script node

* Move forceGoogleDocsHtmlRendering check into google-docs.js

* Replace document-start.js usage with google-docs.js

* Remove documentStart handling

* Add missing parameter descriptions
2021-11-23 22:08:30 -05:00
toasted-nutbread
ecc994a8bb
ScriptManager updates (#2022)
* Fix spacing

* Add more parameters to injectStylesheet

* Add more parameters to injectScript

* Update ScriptManager to support content script registration

* Add webNavigation as an optional permission
2021-11-23 16:16:13 -05:00
toasted-nutbread
cedf6b25c4
ScriptManager (#2021)
* Create ScriptManager class

* Use ScriptManager in Backend
2021-11-22 19:29:20 -05:00
toasted-nutbread
005f9658d9
Action handler name disambiguation (#2018)
* Disambiguate PopupFactory action handlers

* Update HotkeyHandler action names

* Disambiguate Frontend action handlers

* Disambiguate Display action handlers

* Disambiguate PopupPreviewFrame action handlers

* Disambiguate Yomichan action handlers

* Disambiguate Frontend action handlers

* Disambiguate Display action handlers

* Disambiguate SearchDisplayController action handlers
2021-11-21 15:54:58 -05:00
toasted-nutbread
e3986196e1
Disable background clipboard monitor, mecab, and anki if disabled (#1977) 2021-10-03 16:46:22 -04:00
toasted-nutbread
9899727d7d
Frequency dictionary sort (#1938)
* Add sortDictionary/sortDictionaryOrder options

* Update options

* Add API.getTermFrequencies

* Add settings

* Implement frequency dictionary sorting

* Update test

* Update test data

* Fix handling of undefined rank-based frequencies
2021-09-26 11:08:16 -04:00
toasted-nutbread
6b566e0329
Rename _onDocumentStart => _onApiDocumentStart for consistency (#1939) 2021-09-08 14:49:00 -04:00
toasted-nutbread
0331374241
Dictionary media import improvements (#1926)
* Add base64ToArrayBuffer to StringUtil

* Remove unnecessary media-util.js import

* Run async requirements in serial rather than parallel

* Update API.getMedia handler to convert ArrayBuffer content to base64

* Rename getImageResolution to getImageDetails

* Change parameter order of getImageDetails

* Pre-process and store media as an ArrayBuffer

* Remove MediaUtil.createBlobFromBase64Content

* Fix Anki media injection
2021-09-03 22:33:58 -04:00
toasted-nutbread
87fbb3c01c
Dictionary worker updates (#1914)
* Add support for running getDictionaryCounts via DictionaryWorker

* Run dictionary integrity checks on a separate thread

* Remove api.getDictionaryCounts
2021-08-28 14:30:50 -04:00
toasted-nutbread
69e448a955
Add support for manifest V3 script injection (#1878) 2021-08-07 17:17:53 -04:00
toasted-nutbread
5d4141a429
Google Docs accessibility (#1875)
* Add accessibility option for forcing Google Docs HTML-based rendering

* Update settings

* Send a documentStart message at document start

* Add accessibility script for Google Docs

* Set up accessibility

* Update tests
2021-08-07 12:40:51 -04:00
toasted-nutbread
d5320c71a6
Throw an error when _getProfile doesn't have a matching profile (#1826) 2021-07-13 20:19:48 -04:00
toasted-nutbread
0d16709547
JapaneseUtil updates (#1813)
* Rename test file

* Use shorthand

* Add support checking functions

* Remove convertReading from JapaneseUtil
2021-07-09 17:31:16 -04:00
toasted-nutbread
24ec22b2e1
Text parse updates (#1811)
* Expose more settings to QueryParser

* Rename textParse to parseText

* Refactor

* Convert reading inside QueryParser rather than Backend

* Remove use of readingMode from backend

* Rename

* Update parseText args

* Simplify

* Update results

* Move use of optionsContext

* Run mecab and internal parser in parallel

* Added "dictionary-reading" reading mode

* Update romaji conversion case
2021-07-09 16:05:57 -04:00
toasted-nutbread
1088c17503
Add support for injecting dictionary media into Anki cards (#1805) 2021-07-06 22:00:18 -04:00
toasted-nutbread
df72c3927b
Fix function names (#1803) 2021-07-06 20:07:13 -04:00
toasted-nutbread
057283245e
Add support for definitionless main dictionary (#1729) 2021-06-05 13:35:23 -04:00
toasted-nutbread
c7e6c37095
Fix _getMatchURL missing search and not sanitizing wildcards (#1727) 2021-06-03 19:52:00 -04:00
toasted-nutbread
efd35de67f
Refactor display audio options (#1717)
* Update how options are updated and stored in DisplayAudio

* Add source list

* Improve menus for custom json

* Clear cache after options update

* Move function

* Update public API

* Simplify playing audio from a specific source

* Simplify audio list

* Refactor audio source usage

* Refactoring

* Refactor argument names

* Fix incorrect source usage

* Remove unused

* Remove return value

* Simplify details

* Simplify Anki card audio details

* Update the data that is passed to AudioDownloader

* Simplify schema handling

* Remove unnecessary details
2021-05-30 12:15:07 -04:00
toasted-nutbread
0232325f96
Refactor json audio source (#1711)
* Move sources to the end of audio options object

* Add custom-json audio source type

* Add support for downloading custom-json

* Remove customSourceType
2021-05-26 20:38:15 -04:00
toasted-nutbread
d16739a83a
Json schema validation improvements (#1697)
* Create new JsonSchema class

* Add proxy handler

* Update tests

* Update validation scripts

* Update backend

* Update audio downloader

* Update options util

* Update dictionary importer

* Update json schema file reference

* Remove old json-schema.js

* Rename new json-schema.js

* Update file names

* Rename class
2021-05-22 15:45:20 -04:00
toasted-nutbread
c514bbc4fb
Flags profile conditions (#1647)
* Generalize modifier keys

* Optimize bindings

* Add support for flags

* Add clipboard flag

* Update tests

* Add tests
2021-05-01 15:54:31 -04:00
soriac
ba3f7b3e96
Show any custom tags on words that have anki cards created (#1628)
* Proof-of-concept for showing card tags (#1626)

* Resolved most PR comments:
- Added a snackbar notification when clicking tag button
- Replaced magnifying glass icon with new tag icon
- Button now contains a span w/icon, to use text color
- Removed unnecessary attributes from button
- Backend now returns full noteInfos object
- Frontend now handles filtering tags

* Add options to show/hide tag button & filter tags

* Do not show tags button if, after filtering, we have zero tags.

* Change tags option to enums, optimize tags intersection check & fix code style.

* Update options-util.js to include new tag options.

* Fix wording on new tag setting.

* Add CSS to remove hidden buttons from the display layout.

* getAnkiNoteInfo extra parameter for additional info.

* Add new tag option to tests.

* Remove unnecessary changes related to anki tags option.

* Code style fixes.
2021-04-30 17:57:53 -04:00
toasted-nutbread
512391346b
Translator alphanumeric improvement (#1635)
* Simplify alphanumeric check

* Update option name for clarity
2021-04-28 21:17:05 -04:00
toasted-nutbread
609d4fe334
Replace furigana with reading (#1614)
* Use "reading" instead of "furigana" for reading distribution

* Update tests
2021-04-13 20:32:24 -04:00
toasted-nutbread
20d60a2ba7
Initial safari compatibility (#1609)
* Update environment info to return the 'safari' browser

* Fix popup display on Safari

* Update environment assignment

* Add data-loading-stalled property when loading takes longer than expected

* Add notification when loading has stalled

* Allow getDictionaryInfo invocation on non-privileged contexts

* Update _validatePrivilegedMessageSender

* Don't listen to 'voiceschanged' event unless addEventListener is present

Also expose an event
2021-04-10 23:55:11 -04:00
toasted-nutbread
e14b52ef84
Update dictionary entry terminology (#1592)
* Update terminology

* Update terminology in display.js

* Update terminology in display-audio.js

* Update terminology in text-scanner.js

* Update terminology in backend.js

* Update terminology in mecab.js

* Update terminology in audio-downloader.js

* Update terminology in translator-vm.js

* Update terminology in dictionary-data-util.js

* Update terminology in dictionary-database.js

* Update terminology in japanese-util.js

* Change/upgrade {expression} to {term}

* Update terminology in test-japanese.js

* Update terminology in test-database.js

* Update terminology in anki-templates-controller.js

* Update terminology in anki-note-builder.js

* Update terminology in backend.js

* Update terminology in text-scanner.js

* Update terminology in display.js

* Update terminology in display.js
2021-04-04 16:22:35 -04:00
toasted-nutbread
a9fe2d03b2
Update dictionary settings structure (#1587)
* Update dictionary settings structure to use an array instead of an object

* Update ensureDictionarySettings implementation

* Remove some usage of ObjectPropertyAccessor
2021-04-03 13:02:49 -04:00
toasted-nutbread
299720d799
Fix definitionDetails using expression instead of term (#1562) 2021-03-26 19:57:57 -04:00
toasted-nutbread
4be5c8fd9f
Refactor Translator and dictionary entry format (#1553)
* Update test data

* Move translator.js

* Create new version of Translator

* Update Backend

* Update DictionaryDataUtil

* Update DisplayGenerator

* Create AnkiNoteDataCreator

* Replace AnkiNoteData with AnkiNoteDataCreator

* Update tests

* Remove AnkiNoteData

* Update test data

* Remove translator-old.js

* Add TypeScript interface definitions for the new translator data format
2021-03-25 19:55:31 -04:00