~foosoft/anki-connect

591171016336948894b2234fa795ddd64b6316e7 — Yannick Mau 4 years ago dc8494f
Add url download option to storeMediaFile
2 files changed, 33 insertions(+), 7 deletions(-)

M README.md
M plugin/__init__.py
M README.md => README.md +24 -3
@@ 1494,9 1494,10 @@ guarantee that your application continues to function properly in the future.

*   **storeMediaFile**

    Stores a file with the specified base64-encoded contents inside the media folder. To prevent Anki from removing
    files not used by any cards (e.g. for configuration files), prefix the filename with an underscore. These files are
    still synchronized to AnkiWeb.
    Stores a file with the specified base64-encoded contents inside the media folder. alternatively you can specify a
    url from where the file shell be downloaded. If both field `data` and `url` are provided, the `data` field will be
    used. To prevent Anki from removing files not used by any cards (e.g. for configuration files), prefix the filename 
    with an underscore. These files are still synchronized to AnkiWeb.

    *Sample request*:
    ```json


@@ 1522,6 1523,26 @@ guarantee that your application continues to function properly in the future.
    ```
    Hello world!
    ```
    
    *Sample request*:
    ```json
    {
        "action": "storeMediaFile",
        "version": 6,
        "params": {
            "filename": "_hello.txt",
            "url": "https://url.to.file"
        }
    }
    ```

    *Sample result*:
    ```json
    {
        "result": null,
        "error": null
    }
    ```

*   **retrieveMediaFile**


M plugin/__init__.py => plugin/__init__.py +9 -4
@@ 421,10 421,15 @@ class AnkiConnect:


    @util.api()
    def storeMediaFile(self, filename, data):
        self.deleteMediaFile(filename)
        self.media().writeData(filename, base64.b64decode(data))

    def storeMediaFile(self, filename, data=None, url=None):
        if data:
            self.deleteMediaFile(filename)
            self.media().writeData(filename, base64.b64decode(data))
        elif url:
            downloadedData = util.download(url)
            self.media().writeData(filename, downloadedData)
        else:
            raise Exception('You must either provide a "data" or a "url" field.')

    @util.api()
    def retrieveMediaFile(self, filename):

Do not follow this link