84 lines
2.2 KiB
Nim
84 lines
2.2 KiB
Nim
import std/[asyncdispatch, httpclient]
|
|
import std/json
|
|
import std/options
|
|
import std/strformat
|
|
import jester
|
|
|
|
# type
|
|
# joplin_notebooks* = object
|
|
# id: seq[string]
|
|
# parent_id: seq[string]
|
|
# title: seq[string]
|
|
|
|
|
|
# proc get_joplin_notebooks*(): Future[joplin_notebooks] {.async.} =
|
|
# var j_nb: joplin_notebooks
|
|
# var count = 0
|
|
# var client = newAsyncHttpClient()
|
|
# var json = await client.getContent("http://localhost:41184/folders?token=e5f6644fbf6a97ddc55648dae72b11caecda6c6642d8ce0d3b20129b89b196385737eb908923542c3343649ebbf865b55bda031ab4c3a16edc7723ef2ad77d8f")
|
|
|
|
# let joplin_notebooks_Json = parseJson(json)
|
|
|
|
# for nb in joplin_notebooks_Json["items"]:
|
|
# j_nb.id.add(nb["id"].getstr)
|
|
# j_nb.parent_id.add(nb["parent_id"].getstr)
|
|
# j_nb.title.add(nb["title"].getstr)
|
|
# count += 1
|
|
|
|
# echo joplin_notebooks_Json["has_more"]
|
|
|
|
# return j_nb
|
|
|
|
|
|
# Setup user data
|
|
type
|
|
joplin_notebooks* = object
|
|
id*, parent_id*, title*: seq[string]
|
|
req*: Request
|
|
|
|
proc get_joplin_notebooks*(token:string): Future[joplin_notebooks] {.async.} =
|
|
|
|
# Variables
|
|
var j_nb: joplin_notebooks
|
|
var has_more: bool = true
|
|
var page: int = 1
|
|
var url: string
|
|
var client = newAsyncHttpClient()
|
|
|
|
# make sure to check all pages
|
|
while has_more == true:
|
|
|
|
# request joplin API for notebooks
|
|
url = fmt"http://localhost:41184/folders?page={page}&token={token}"
|
|
var json = await client.getContent(url)
|
|
|
|
# parse jason
|
|
let joplin_notebooks_Json = parseJson(json)
|
|
|
|
# valider qu'il n'y a plus de page
|
|
if not joplin_notebooks_Json["has_more"].getBool:
|
|
has_more = false
|
|
|
|
# store json info into an object
|
|
var count: int = 1
|
|
for nb in joplin_notebooks_Json["items"]:
|
|
j_nb.id.add(nb["id"].getstr)
|
|
j_nb.parent_id.add(nb["parent_id"].getstr)
|
|
j_nb.title.add(nb["title"].getstr)
|
|
count += 1
|
|
|
|
# aller à la page suivante
|
|
page += 1
|
|
|
|
return j_nb
|
|
|
|
|
|
# var all_notebooks = ""
|
|
var nb: joplin_notebooks
|
|
nb = waitFor get_joplin_notebooks("e5f6644fbf6a97ddc55648dae72b11caecda6c6642d8ce0d3b20129b89b196385737eb908923542c3343649ebbf865b55bda031ab4c3a16edc7723ef2ad77d8f")
|
|
# echo nb.title[1]
|
|
|
|
for i in nb.title:
|
|
echo i
|
|
|
|
echo nb.title |