{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "1dc7df1d",
   "metadata": {},
   "source": [
    "# Joplin\n",
    "\n",
    ">[Joplin](https://joplinapp.org/) is an open source note-taking app. Capture your thoughts and securely access them from any device.\n",
    "\n",
    "This notebook covers how to load documents from a `Joplin` database.\n",
    "\n",
    "`Joplin` has a [REST API](https://joplinapp.org/api/references/rest_api/) for accessing its local database. This loader uses the API to retrieve all notes in the database and their metadata. This requires an access token that can be obtained from the app by following these steps:\n",
    "\n",
    "1. Open the `Joplin` app. The app must stay open while the documents are being loaded.\n",
    "2. Go to settings / options and select \"Web Clipper\".\n",
    "3. Make sure that the Web Clipper service is enabled.\n",
    "4. Under \"Advanced Options\", copy the authorization token.\n",
    "\n",
    "You may either initialize the loader directly with the access token, or store it in the environment variable JOPLIN_ACCESS_TOKEN.\n",
    "\n",
    "An alternative to this approach is to export the `Joplin`'s note database to Markdown files (optionally, with Front Matter metadata) and use a Markdown loader, such as ObsidianLoader, to load them."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "007c5cbf",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "from langchain.document_loaders import JoplinLoader"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a1caec59",
   "metadata": {},
   "outputs": [],
   "source": [
    "loader = JoplinLoader(access_token=\"<access-token>\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "b1c30ff7",
   "metadata": {},
   "outputs": [],
   "source": [
    "docs = loader.load()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fa93b965",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
