diff options
| -rw-r--r-- | README.md | 28 | ||||
| -rw-r--r-- | ext/bg/background.html | 1 | ||||
| -rw-r--r-- | ext/bg/js/options-form.js | 20 | ||||
| -rw-r--r-- | ext/bg/js/options.js | 6 | ||||
| -rw-r--r-- | ext/bg/js/yomichan.js | 3 | ||||
| -rw-r--r-- | ext/bg/options.html | 18 | ||||
| -rw-r--r-- | ext/manifest.json | 5 | 
7 files changed, 17 insertions, 64 deletions
| @@ -48,12 +48,8 @@ works, please see the [Yomichan Import](https://foosoft.net/projects/yomichan-im  ## Anki Integration ##  Yomichan features automatic flashcard creation for [Anki](http://ankisrs.net/), a free application designed to help you -retain knowledge. While the [AnkiConnect](https://foosoft.net/projects/anki-connect/) plugin offers the best experience, -it is also possible to create flashcards through [AnkiWeb](https://ankiweb.net/), provided you already have an account. - -### Using AnkiConnect ### - -Installing the AnkiConnect plugin for Anki is the preferred way of enabling automatic flashcard creation in Yomichan. +retain knowledge. This functionality requires prior installation of the +[AnkiConnect](https://foosoft.net/projects/anki-connect/) plugin. The installation process can be done in three steps:  1.  Open the *Install Add-on* dialog by selecting *Tools* > *Add-ons* > *Browse & Install* in Anki.  2.  Input *2055492159* into the text box labeled *Code* and press the *OK* button to proceed. @@ -61,19 +57,6 @@ Installing the AnkiConnect plugin for Anki is the preferred way of enabling auto  When using AnkiConnect, Anki must be kept running in the background for automatic flashcard creation to function. -### Using AnkiWeb ### - -Yomichan is able to create flashcards directly on AnkiWeb, assuming you have [registered an -account](https://ankiweb.net/account/register). While this method can be convenient as it does not require Anki to be -running to running in the background, some features are not supported due to technical limitations: - -*   Preventing the creation of duplicate flashcards. -*   Embedding audio in flashcards via the `{audio}` marker. - -Your AnkiWeb login information must specified on the options page to make use of automatic flashcard creation.  Note -that AnkiWeb will temporarily block your IP address if there are too many login attempts; if this happens, just try -again after waiting for about an hour. -  ### Flashcard Configuration ###  Before flashcards can be automatically created through Yomichan, Anki must be configured as follows: @@ -117,6 +100,13 @@ Before flashcards can be automatically created through Yomichan, Anki must be co  ## Frequently Asked Questions ## +*   **What happened to AnkiWeb integration? Why was it removed?** + +    The author of Anki wants to maintain tight control of AnkiWeb by restricting automated web requests, while at the +    same time not providing an API for adding or removing flash cards. As circumventing these restrictions led to +    account restrictions placed on users of this extension, I was forced to remove this feature. Note that it is still +    possible to automatically generate flashcards with the AnkiConnect plugin. +  *   **Is it possible to use Yomichan with files saved locally on my computer?**      It in order to be able use Yomichan with local files, you must first tick the *Allow access to file URLs* checkbox diff --git a/ext/bg/background.html b/ext/bg/background.html index 49fc6d0f..3ecfa3dc 100644 --- a/ext/bg/background.html +++ b/ext/bg/background.html @@ -4,7 +4,6 @@      <script src="../lib/handlebars.min.js"></script>      <script src="../lib/dexie.min.js"></script>      <script src="../lib/wanakana.min.js"></script> -    <script src="js/ankiweb.js"></script>      <script src="js/ankiconnect.js"></script>      <script src="js/ankinull.js"></script>      <script src="js/templates.js"></script> diff --git a/ext/bg/js/options-form.js b/ext/bg/js/options-form.js index 957f4ce5..8cffb2f7 100644 --- a/ext/bg/js/options-form.js +++ b/ext/bg/js/options-form.js @@ -40,8 +40,6 @@ function getFormValues() {          optsNew.scanLength = parseInt($('#scan-length').val(), 10);          optsNew.ankiMethod = $('#anki-method').val(); -        optsNew.ankiUsername = $('#anki-username').val(); -        optsNew.ankiPassword = $('#anki-password').val();          optsNew.ankiCardTags = $('#anki-card-tags').val().split(/[,; ]+/);          optsNew.sentenceExtent = parseInt($('#sentence-extent').val(), 10);          optsNew.ankiTermDeck = $('#anki-term-deck').val(); @@ -68,13 +66,8 @@ function getFormValues() {  function updateVisibility(opts) {      switch (opts.ankiMethod) { -        case 'ankiweb': -            $('#anki-general').show(); -            $('.anki-login').show(); -            break;          case 'ankiconnect':              $('#anki-general').show(); -            $('.anki-login').hide();              break;          default:              $('#anki-general').hide(); @@ -104,8 +97,6 @@ $(document).ready(() => {          $('#scan-length').val(opts.scanLength);          $('#anki-method').val(opts.ankiMethod); -        $('#anki-username').val(opts.ankiUsername); -        $('#anki-password').val(opts.ankiPassword);          $('#anki-card-tags').val(opts.ankiCardTags.join(' '));          $('#sentence-extent').val(opts.sentenceExtent); @@ -433,16 +424,7 @@ function onOptionsChanged(e) {          return saveOptions(optsNew).then(() => {              yomichan().setOptions(optsNew);              updateVisibility(optsNew); - -            const loginChanged = -                optsNew.ankiUsername !== optsOld.ankiUsername || -                optsNew.ankiPassword !== optsOld.ankiPassword; - -            if (loginChanged && optsNew.ankiMethod === 'ankiweb') { -                showAnkiError(null); -                showAnkiSpinner(true); -                return anki().logout().then(() => populateAnkiDeckAndModel(optsNew)); -            } else if (optsNew.ankiMethod !== optsOld.ankiMethod) { +            if (optsNew.ankiMethod !== optsOld.ankiMethod) {                  showAnkiError(null);                  showAnkiSpinner(true);                  return populateAnkiDeckAndModel(optsNew); diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js index 822f5a16..2f0bd189 100644 --- a/ext/bg/js/options.js +++ b/ext/bg/js/options.js @@ -45,8 +45,6 @@ function sanitizeOptions(options) {          dictionaries: {},          ankiMethod: 'disabled', -        ankiUsername: '', -        ankiPassword: '',          ankiCardTags: ['yomichan'],          sentenceExtent: 200, @@ -64,6 +62,10 @@ function sanitizeOptions(options) {          }      } +    if (options.ankiMethod === 'ankiweb') { +        options.ankiMethod = 'disabled'; +    } +      return options;  } diff --git a/ext/bg/js/yomichan.js b/ext/bg/js/yomichan.js index 41b55352..2cdcf1c8 100644 --- a/ext/bg/js/yomichan.js +++ b/ext/bg/js/yomichan.js @@ -95,9 +95,6 @@ class Yomichan {          this.options = options;          switch (options.ankiMethod) { -            case 'ankiweb': -                this.anki = new AnkiWeb(options.ankiUsername, options.ankiPassword); -                break;              case 'ankiconnect':                  this.anki = new AnkiConnect();                  break; diff --git a/ext/bg/options.html b/ext/bg/options.html index bc0302a2..6bf6fb7b 100644 --- a/ext/bg/options.html +++ b/ext/bg/options.html @@ -128,9 +128,8 @@                  <p class="help-block">                      Yomichan features automatic flashcard creation for <a href="http://ankisrs.net/">Anki</a>, a free application -                    designed to help you retain knowledge. While the <a href="https://foosoft.net/projects/anki-connect/">AnkiConnect</a> plugin -                    offers the best experience, it is also possible to create flashcards through <a href="https://ankiweb.net/">AnkiWeb</a>, -                    provided you already have an account. +                    designed to help you retain knowledge. This functionality requires prior installation of the +                    <a href="https://foosoft.net/projects/anki-connect/">AnkiConnect</a> plugin.                  </p>                  <div class="alert alert-danger" id="anki-error"> @@ -143,23 +142,10 @@                      <select class="form-control" id="anki-method">                          <option value="disabled">Disabled (no auto flashcard creation)</option>                          <option value="ankiconnect">AnkiConnect (requires the AnkiConnect plugin)</option> -                        <option value="ankiweb">AnkiWeb (requires an account on AnkiWeb)</option>                      </select>                  </div>                  <div id="anki-general"> -                    <div class="row"> -                        <div class="form-group anki-login col-xs-6"> -                            <label for="anki-username">Username</label> -                            <input type="text" id="anki-username" class="form-control anki-credential"> -                        </div> - -                        <div class="form-group anki-login col-xs-6"> -                            <label for="anki-password">Password</label> -                            <input type="password" id="anki-password" class="form-control anki-credential"> -                        </div> -                    </div> -                      <div class="form-group">                          <label for="anki-card-tags">Card tags (comma or space separated)</label>                          <input type="text" id="anki-card-tags" class="form-control"> diff --git a/ext/manifest.json b/ext/manifest.json index 9bb01c21..90663696 100644 --- a/ext/manifest.json +++ b/ext/manifest.json @@ -1,7 +1,7 @@  {      "manifest_version": 2,      "name": "Yomichan", -    "version": "1.0.1", +    "version": "1.0.3",      "description": "Japanese dictionary with Anki integration",      "icons": {"16": "img/icon16.png", "48": "img/icon48.png", "128": "img/icon128.png"}, @@ -25,11 +25,8 @@          "page": "bg/options.html"      },      "permissions": [ -        "webRequest", -        "webRequestBlocking",          "file://*/*",          "http://127.0.0.1/*", -        "https://ankiweb.net/*",          "storage"      ],      "web_accessible_resources": [ |