From 797c8e64ec78ff5a210a823c202ee6b06c43bb14 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Fri, 13 Jan 2023 13:44:31 +0000 Subject: [PATCH] Improve Zotero API demo --- ...essage_ tm-http-request Example Zotero.tid | 66 ++++++++++++++----- .../tiddlers/messages/config-zotero-group.tid | 2 + 2 files changed, 52 insertions(+), 16 deletions(-) create mode 100644 editions/tw5.com/tiddlers/messages/config-zotero-group.tid diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Zotero.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Zotero.tid index 0a05ca6e1..d01b6aadb 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Zotero.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Zotero.tid @@ -1,6 +1,16 @@ title: WidgetMessage: tm-http-request Example - Zotero tags: $:/tags/Macro +\define select-zotero-group() +Specify the Zotero group ID to import +<$edit-text tiddler="$:/config/zotero-group" tag="input"/> or +<$select tiddler="$:/config/zotero-group"> + + + + +\end + \define zotero-save-item(item) <$action-createtiddler $basetitle={{{ =[[_zotero_import ]] =[jsonget[key]] =[[ ]] =[jsonget[title]] +[join[]] }}} @@ -8,6 +18,9 @@ tags: $:/tags/Macro tags="$:/tags/ZoteroImport" > <$action-setmultiplefields $tiddler=<> $fields="[jsonindexes[]addprefix[zotero-]]" $values="[jsonindexes[]] :map[jsongetelse[.XXXXX.]]"/> + <$list filter="[jsonindexes[creators]]" variable="creatorIndex"> + <$action-setmultiplefields $tiddler=<> $fields="[jsonget[creators],,[creatorType]addprefix[zotero-]]" $values="[jsonget[creators],,[lastName]] [jsonget[creators],,[firstName]] +[join[, ]] :else[jsonget[creators],,[name]] "/> + \end zotero-save-item @@ -40,32 +53,53 @@ tags: $:/tags/Macro \end progress \define request-url() -https://api.zotero.org/groups/27508/items/?format=json&sort=title +\rules only transcludeinline transcludeblock filteredtranscludeinline filteredtranscludeblock +https://api.zotero.org/groups/{{$:/config/zotero-group}}/items/ \end request-url -<$action-sendmessage - $message="tm-http-request" - url={{{ [setquerystring[start],<__start__>setquerystring[limit],<__limit__>] }}} - method="GET" - header-accept="application/json" - bind-status="$:/temp/zotero/status" - bind-progress="$:/temp/zotero/progress" - oncompletion=<> - onprogress=<> - var-start=<<__start__>> - var-limit=<<__limit__>> -/> +<$wikify name="url" text=<>> + <$action-sendmessage + $message="tm-http-request" + url=<> + method="GET" + query-format="json" + query-sort="title" + query-start=<<__start__>> + query-limit=<<__limit__>> + header-accept="application/json" + bind-status="$:/temp/zotero/status" + bind-progress="$:/temp/zotero/progress" + oncompletion=<> + onprogress=<> + var-start=<<__start__>> + var-limit=<<__limit__>> + /> + \end \define zotero-actions() -<$macrocall $name="zotero-get-items" start="0" limit="5"/> +<$macrocall $name="zotero-get-items" start="0" limit="50"/> \end + +<> + <$button actions=<>> -Call Zotero +Start import from Zotero group -Tiddlers: +<$list filter="[tag[$:/tags/ZoteroImport]limit[1]]" variable="ignore"> + +!! Imported Tiddlers + +<$button> +<$action-deletetiddler $filter="[tag[$:/tags/ZoteroImport]]"/> +Delete these tiddlers + + +Export: <$macrocall $name="exportButton" exportFilter="[tag[$:/tags/ZoteroImport]]" lingoBase="$:/language/Buttons/ExportTiddlers/"/> + +
    <$list filter="[tag[$:/tags/ZoteroImport]]"> diff --git a/editions/tw5.com/tiddlers/messages/config-zotero-group.tid b/editions/tw5.com/tiddlers/messages/config-zotero-group.tid new file mode 100644 index 000000000..2215c496a --- /dev/null +++ b/editions/tw5.com/tiddlers/messages/config-zotero-group.tid @@ -0,0 +1,2 @@ +title: $:/config/zotero-group +text: 4813312 \ No newline at end of file