Maintenance, error handling

This commit is contained in:
Wyrrrd
2023-05-15 13:52:11 +02:00
parent ecd689ab6a
commit a81d56fe7d
2 changed files with 29 additions and 14 deletions
+7 -6
View File
@@ -1,6 +1,6 @@
**📢 This repo is maintained and up to date.** **📢 This repo is maintained and up to date.**
<sup>(If it ever gets abandoned, this date will be far in the past: <i>April 2, 2023</i> )</sup> <sup>(If it ever gets abandoned, this date will be far in the past: <i>May 14, 2023</i> )</sup>
--- ---
@@ -10,16 +10,17 @@ Share files and URLs on Android into Hydrus Client API
## 🛠️ Setup ## 🛠️ Setup
- Download [HTTP Shortcuts](https://http-shortcuts.rmy.ch/) - Download [HTTP Shortcuts](https://http-shortcuts.rmy.ch/)
- Under "Import / Export", choose "Import from URL", enter<br>`https://github.com/Wyrrrd/send-to-hydrus/releases/latest/download/shortcuts.zip` - Under "Import / Export", choose "Import from URL", enter<br>`https://github.com/Wyrrrd/send-to-hydrus/releases/latest/download/shortcuts.zip`
- Set variable `hydrus_url` to your Hydrus Client API URL - On first use, this will ask for your Hydrus URL and walk you through API key generation, but you can also set the variables `hydrus_url` and `hydrus_api_key` manually
- Perform request or set variable `hydrus_api_key` to your API key (needs file and URL permissions)
## ⬆️ Upgrade ## 🔑 Permissions
If you are using the older, URL-only version, your API key will not have the file permission. To fix this, remove the API key in Hydrus and then create or request a new one. The API key needs file and URL permissions for this to work its magic.
If you are using the older, URL-only version, your API key will not have the file permission. To fix this, remove the API key in Hydrus and clear the variable `hydrus_api_key`. On next use, this will help you setup a new API key with the correct permissions.
## 🤲 Usage ## 🤲 Usage
### Easy way (this is what you are here for) ### Easy way (this is what you are here for)
- Share the URL from whatever menu you normally use, as if you would send it to a friend. - Share the URL or file from whatever menu you normally use, as if you would send it to a friend.
- Choose "HTTP Shortcuts" from the apps list. - Choose "HTTP Shortcuts" from the apps list.
- ... - ...
- Profit (?) - Profit (?)
+22 -8
View File
@@ -1,11 +1,21 @@
{ {
"categories": [ "categories": [
{ {
"background": "color\u003d#8886C8",
"id": "2d3ab593-ca66-47f5-9506-c3d211b2657d", "id": "2d3ab593-ca66-47f5-9506-c3d211b2657d",
"name": "Shortcuts", "name": "Hydrus",
"shortcuts": [ "shortcuts": [
{
"codeOnPrepare": "if (getVariable(/*[variable]*/\"790c08b8-6204-4f7f-8e8e-e6a4806017bc\"/*[/variable]*/) \u003d\u003d \"\") {\n setVariable(/*[variable]*/\"790c08b8-6204-4f7f-8e8e-e6a4806017bc\"/*[/variable]*/, prompt(\"Please enter your Hydrus ClientAPI URL\"));\n}\n\nif (getVariable(/*[variable]*/\"790c08b8-6204-4f7f-8e8e-e6a4806017bc\"/*[/variable]*/) \u003d\u003d \"\") {\n showToast(\"Hydrus ClientAPI URL still empty, aborting.\");\n abort();\n}\n\nif (getVariable(/*[variable]*/\"2c7bf1c2-dabd-41fd-b572-8a67575f07c7\"/*[/variable]*/) \u003d\u003d \"\") {\n if (confirm(\"If you want to request an API key, please start the \u0027API request\u0027 dialogue in Hydrus, then press OK. If you want to enter your API key manually, press Cancel.\")) {\n executeShortcut(/*[shortcut]*/\"b20986e7-40c5-4287-81c9-7a32f7f41913\"/*[/shortcut]*/);\n } else {\n setVariable(/*[variable]*/\"2c7bf1c2-dabd-41fd-b572-8a67575f07c7\"/*[/variable]*/, promptPassword(\"Please enter your Hydrus API key\"));\n }\n}\n\nif (getVariable(/*[variable]*/\"2c7bf1c2-dabd-41fd-b572-8a67575f07c7\"/*[/variable]*/) \u003d\u003d \"\") {\n showToast(\"Hydrus API key still empty, aborting.\");\n abort();\n}",
"description": "Asks for Hydrus URL and API key",
"executionType": "scripting",
"iconName": "custom-icon_04e0e038-6af2-4bce-91fd-bece7728a1d3.png",
"id": "15a66167-d819-431d-a616-46d36bafaa88",
"name": "Setup Hydrus Variables"
},
{ {
"bodyContent": "{\n \"url\" : \"{{4d098304-464a-4c2a-9e5e-e43b68c13814}}\",\n \"destination_page_name\" : \"phone url import\"\n}", "bodyContent": "{\n \"url\" : \"{{4d098304-464a-4c2a-9e5e-e43b68c13814}}\",\n \"destination_page_name\" : \"phone url import\"\n}",
"codeOnPrepare": "executeShortcut(/*[shortcut]*/\"15a66167-d819-431d-a616-46d36bafaa88\"/*[/shortcut]*/);",
"codeOnSuccess": "setVariable(/*[variable]*/\"2c7bf1c2-dabd-41fd-b572-8a67575f07c7\"/*[/variable]*/, JSON.parse(response.body).access_key);", "codeOnSuccess": "setVariable(/*[variable]*/\"2c7bf1c2-dabd-41fd-b572-8a67575f07c7\"/*[/variable]*/, JSON.parse(response.body).access_key);",
"contentType": "application/json", "contentType": "application/json",
"description": "Request an API key from Hydrus", "description": "Request an API key from Hydrus",
@@ -23,12 +33,13 @@
}, },
{ {
"bodyContent": "{\n \"url\" : \"{{4d098304-464a-4c2a-9e5e-e43b68c13814}}\",\n \"destination_page_name\" : \"phone url import\"\n}", "bodyContent": "{\n \"url\" : \"{{4d098304-464a-4c2a-9e5e-e43b68c13814}}\",\n \"destination_page_name\" : \"phone url import\"\n}",
"codeOnPrepare": "executeShortcut(/*[shortcut]*/\"15a66167-d819-431d-a616-46d36bafaa88\"/*[/shortcut]*/);",
"codeOnSuccess": "var toast \u003d \"API key is valid.\\n\"\nvar url \u003d JSON.parse(response.body).basic_permissions.includes(0)\nvar file \u003d JSON.parse(response.body).basic_permissions.includes(1)\n\nif (!url \u0026\u0026 !file) {\n toast +\u003d \"All permissions missing!\";\n} else if (!url) {\n toast +\u003d \"URL permission missing!\";\n} else if (!file) {\n toast +\u003d \"File permission missing!\";\n}\n\nshowToast(toast);", "codeOnSuccess": "var toast \u003d \"API key is valid.\\n\"\nvar url \u003d JSON.parse(response.body).basic_permissions.includes(0)\nvar file \u003d JSON.parse(response.body).basic_permissions.includes(1)\n\nif (!url \u0026\u0026 !file) {\n toast +\u003d \"All permissions missing!\";\n} else if (!url) {\n toast +\u003d \"URL permission missing!\";\n} else if (!file) {\n toast +\u003d \"File permission missing!\";\n}\n\nshowToast(toast);",
"contentType": "application/json", "contentType": "application/json",
"description": "Verifies API key with Hydrus", "description": "Verifies API key with Hydrus",
"headers": [ "headers": [
{ {
"id": "d1eb5ba6-051a-4b44-91cb-dacda569be9d", "id": "291d20d2-9729-4d65-9fa7-96cba40981cb",
"key": "Hydrus-Client-API-Access-Key", "key": "Hydrus-Client-API-Access-Key",
"value": "{{2c7bf1c2-dabd-41fd-b572-8a67575f07c7}}" "value": "{{2c7bf1c2-dabd-41fd-b572-8a67575f07c7}}"
} }
@@ -45,12 +56,13 @@
"url": "{{790c08b8-6204-4f7f-8e8e-e6a4806017bc}}/verify_access_key" "url": "{{790c08b8-6204-4f7f-8e8e-e6a4806017bc}}/verify_access_key"
}, },
{ {
"codeOnPrepare": "executeShortcut(/*[shortcut]*/\"15a66167-d819-431d-a616-46d36bafaa88\"/*[/shortcut]*/);",
"codeOnSuccess": "var toast \u003d \"File \"\nvar status \u003d JSON.parse(response.body).status\n\nswitch (status) {\n case 1:\n toast +\u003d \"was successfully imported.\";\n break;\n case 2:\n toast +\u003d \"already in database.\";\n break;\n case 3:\n toast +\u003d \"previously deleted.\";\n break;\n case 4:\n toast +\u003d \"failed to import.\";\n break;\n case 7:\n toast +\u003d \"vetoed.\";\n break;\n}\n\nshowToast(toast);", "codeOnSuccess": "var toast \u003d \"File \"\nvar status \u003d JSON.parse(response.body).status\n\nswitch (status) {\n case 1:\n toast +\u003d \"was successfully imported.\";\n break;\n case 2:\n toast +\u003d \"already in database.\";\n break;\n case 3:\n toast +\u003d \"previously deleted.\";\n break;\n case 4:\n toast +\u003d \"failed to import.\";\n break;\n case 7:\n toast +\u003d \"vetoed.\";\n break;\n}\n\nshowToast(toast);",
"contentType": "application/octet-stream", "contentType": "application/octet-stream",
"description": "Sends a file to Hydrus", "description": "Sends a file to Hydrus",
"headers": [ "headers": [
{ {
"id": "ea2f7272-29a1-4608-b0db-cfe804ff08f7", "id": "220ca30b-27e0-4d2f-b4dc-88a76f492dee",
"key": "Hydrus-Client-API-Access-Key", "key": "Hydrus-Client-API-Access-Key",
"value": "{{2c7bf1c2-dabd-41fd-b572-8a67575f07c7}}" "value": "{{2c7bf1c2-dabd-41fd-b572-8a67575f07c7}}"
} }
@@ -63,7 +75,7 @@
"responseHandling": { "responseHandling": {
"failureOutput": "simple", "failureOutput": "simple",
"successMessage": "File was sent to Hydrus.", "successMessage": "File was sent to Hydrus.",
"successOutput": "none", "successOutput": "message",
"uiType": "toast" "uiType": "toast"
}, },
"retryPolicy": "wait_for_internet", "retryPolicy": "wait_for_internet",
@@ -71,11 +83,12 @@
}, },
{ {
"bodyContent": "{\n \"url\" : \"{{4d098304-464a-4c2a-9e5e-e43b68c13814}}\",\n \"destination_page_name\" : \"phone url import\"\n}", "bodyContent": "{\n \"url\" : \"{{4d098304-464a-4c2a-9e5e-e43b68c13814}}\",\n \"destination_page_name\" : \"phone url import\"\n}",
"codeOnPrepare": "executeShortcut(/*[shortcut]*/\"15a66167-d819-431d-a616-46d36bafaa88\"/*[/shortcut]*/);",
"contentType": "application/json", "contentType": "application/json",
"description": "Sends a URL to Hydrus", "description": "Sends a URL to Hydrus",
"headers": [ "headers": [
{ {
"id": "ea7dead9-05ee-4494-9ab3-67d0606428be", "id": "0d5b861f-5ad7-4fb2-8661-ed856a540134",
"key": "Hydrus-Client-API-Access-Key", "key": "Hydrus-Client-API-Access-Key",
"value": "{{2c7bf1c2-dabd-41fd-b572-8a67575f07c7}}" "value": "{{2c7bf1c2-dabd-41fd-b572-8a67575f07c7}}"
} }
@@ -105,13 +118,14 @@
}, },
{ {
"id": "2c7bf1c2-dabd-41fd-b572-8a67575f07c7", "id": "2c7bf1c2-dabd-41fd-b572-8a67575f07c7",
"key": "hydrus_api_key" "key": "hydrus_api_key",
"value": ""
}, },
{ {
"id": "790c08b8-6204-4f7f-8e8e-e6a4806017bc", "id": "790c08b8-6204-4f7f-8e8e-e6a4806017bc",
"key": "hydrus_url", "key": "hydrus_url",
"value": "\u003cEnter your client api url here\u003e" "value": ""
} }
], ],
"version": 56 "version": 59
} }