/joplin-api

:snake: :book: Joplin API

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Joplin Api

Joplin API

The API of Joplin Editor in Python 3.6+

## requirements

Installation

git clone  https://github.com/foxmask/joplin-api
cd joplin-api 
pip install -e .

Using Joplin API

Have a look at tests/test_folder.py and test/test_ping.py

basically

import asyncio
from joplin_api import JoplinApi
joplin = JoplinApi(token='my token')

async def ping_me():
    await joplin.ping()

loop = asyncio.get_event_loop()
try:
    loop.run_until_complete(ping_me())
finally:
    loop.close()

create a folder

import asyncio
from joplin_api import JoplinApi
joplin = JoplinApi(token='my token')

async def new_folder():
    folder = 'TEST FOLDER1'
    res = await joplin.create_folder(folder=folder)

loop = asyncio.get_event_loop()
try:
    loop.run_until_complete(new_folder())
finally:
    loop.close()

create a note

import asyncio
from joplin_api import JoplinApi
joplin = JoplinApi(token='my token')

async def new_note(get_token):
    # 1 - create a folder
    res = await joplin.create_folder(folder='MY FOLDER')
    data = res.json()
    parent_id = data['id']
    # 2 - create a note with tag
    body = '# title 1\n ## subtitle \n ```python\npython --version\n```'
    assert type(body) is str
    kwargs = {'tags': 'tag1, tag2'}
    await joplin.create_note(title="MY NOTE", body=body,
                             parent_id=parent_id, **kwargs)

loop = asyncio.get_event_loop()
try:
    loop.run_until_complete(new_note())
finally:
    loop.close()

Python 3.7

with python 3.7 replace

loop = asyncio.get_event_loop()
try:
    loop.run_until_complete(new_note())
finally:
    loop.close()

by

asyncio.run(new_note())

Tests

install pytest by

pip install -r requirements-dev.txt

then, before starting the Unit Test, you will need to set the Token line 10 of tests/conftest.py file

and run

pytest