From af87045037938f78f51d018f51f16adfbd9877a1 Mon Sep 17 00:00:00 2001 From: Hayden Date: Sat, 9 Jan 2021 18:04:53 -0900 Subject: [PATCH] nextcloud migration --- .gitignore | 2 + .vscode/settings.json | 1 + dev/non-working-links.txt | 1 + frontend/src/api/migration.js | 13 + .../Settings/Migration/ChowdownCard.vue | 73 +++++ .../Settings/Migration/NextcloudCard.vue | 69 +++++ .../components/Settings/Migration/index.vue | 66 ++--- mealie/app.py | 1 - mealie/data/debug/last_recipe.json | 127 +++++---- mealie/data/migration/.gitkeep | 0 mealie/routes/migration_routes.py | 25 +- mealie/scratch.py | 0 mealie/services/migrations/chowdown.py | 2 +- mealie/services/migrations/nextcloud.py | 89 ++++++ mealie/services/scrape_services.py | 43 ++- mealie/settings.py | 11 + .../Air Fryer Shrimp/recipe.json | 63 +++++ .../Air Fryer Shrimp/thumb.jpg | Bin 0 -> 5858 bytes .../Chicken Parmigiana/recipe.json | 259 ++++++++++++++++++ .../Chicken Parmigiana/thumb.jpg | Bin 0 -> 10533 bytes .../Skillet Shepherd's Pie/recipe.json | 89 ++++++ .../test/data/nextcloud_recipes/nextcloud.zip | Bin 0 -> 182110 bytes mealie/test/test_nextcloud.py | 43 +++ 23 files changed, 851 insertions(+), 126 deletions(-) create mode 100644 dev/non-working-links.txt create mode 100644 frontend/src/components/Settings/Migration/ChowdownCard.vue create mode 100644 frontend/src/components/Settings/Migration/NextcloudCard.vue create mode 100644 mealie/data/migration/.gitkeep create mode 100644 mealie/scratch.py create mode 100644 mealie/services/migrations/nextcloud.py create mode 100644 mealie/test/data/nextcloud_recipes/Air Fryer Shrimp/recipe.json create mode 100644 mealie/test/data/nextcloud_recipes/Air Fryer Shrimp/thumb.jpg create mode 100644 mealie/test/data/nextcloud_recipes/Chicken Parmigiana/recipe.json create mode 100644 mealie/test/data/nextcloud_recipes/Chicken Parmigiana/thumb.jpg create mode 100644 mealie/test/data/nextcloud_recipes/Skillet Shepherd's Pie/recipe.json create mode 100644 mealie/test/data/nextcloud_recipes/nextcloud.zip create mode 100644 mealie/test/test_nextcloud.py diff --git a/.gitignore b/.gitignore index 7230489b4556..4ec39805fc83 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ mealie/temp/api.html mealie/data/backups/* mealie/data/debug/* mealie/data/img/* +mealie/data/migration/* !mealie/dist/* #Exception to keep folders @@ -19,6 +20,7 @@ mealie/data/img/* !mealie/data/backups/.gitkeep !mealie/data/backups/dev_sample_data* !mealie/data/debug/.gitkeep +!mealie/data/migration/.gitkeep !mealie/data/img/.gitkeep .DS_Store diff --git a/.vscode/settings.json b/.vscode/settings.json index 9c2025d7034e..0445b096ab37 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -11,6 +11,7 @@ "python.discoverTest": true, "python.testing.pytestEnabled": true, "cSpell.enableFiletypes": [ + "!javascript", "!python" ], "python.testing.pytestArgs": [ diff --git a/dev/non-working-links.txt b/dev/non-working-links.txt new file mode 100644 index 000000000000..7de14cfcb732 --- /dev/null +++ b/dev/non-working-links.txt @@ -0,0 +1 @@ +http://www.cookingforkeeps.com/2013/02/05/blue-cheese-stuffed-turkey-meatballs-with-raspberry-balsamic-glaze-2/ \ No newline at end of file diff --git a/frontend/src/api/migration.js b/frontend/src/api/migration.js index 7b8ba1610803..ae2132f57a9f 100644 --- a/frontend/src/api/migration.js +++ b/frontend/src/api/migration.js @@ -6,6 +6,11 @@ const migrationBase = baseURL + "migration/"; const migrationURLs = { chowdownURL: migrationBase + "chowdown/repo/", + nextcloudAvaiable: migrationBase + "nextcloud/available/", + nextcloudImport: (selection) => + `${migrationBase}nextcloud/${selection}/import/`, + nextcloudDelete: (selection) => + `${migrationBase}nextcloud/${selection}/delete/`, }; export default { @@ -15,4 +20,12 @@ export default { store.dispatch("requestRecentRecipes"); return response.data; }, + async getNextcloudImports() { + let response = await apiReq.get(migrationURLs.nextcloudAvaiable); + return response.data; + }, + async importNextcloud(selected) { + let response = await apiReq.post(migrationURLs.nextcloudImport(selected)); + return response.data; + }, }; diff --git a/frontend/src/components/Settings/Migration/ChowdownCard.vue b/frontend/src/components/Settings/Migration/ChowdownCard.vue new file mode 100644 index 000000000000..716b398d06ae --- /dev/null +++ b/frontend/src/components/Settings/Migration/ChowdownCard.vue @@ -0,0 +1,73 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/Settings/Migration/NextcloudCard.vue b/frontend/src/components/Settings/Migration/NextcloudCard.vue new file mode 100644 index 000000000000..0e5980be7f74 --- /dev/null +++ b/frontend/src/components/Settings/Migration/NextcloudCard.vue @@ -0,0 +1,69 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/Settings/Migration/index.vue b/frontend/src/components/Settings/Migration/index.vue index 19fa41653614..1100bd4cfdae 100644 --- a/frontend/src/components/Settings/Migration/index.vue +++ b/frontend/src/components/Settings/Migration/index.vue @@ -2,64 +2,42 @@ Recipe Migration - -

- Currently Chowdown via public Repo URL is the only supported type of - migration -

- - - - - - - - Migrate - - - - -

Failed Recipes

- - - {{ fail }} - - -
- -

Failed Images

- - - {{ fail }} - - -
-
+ + + Chowdown + Nextcloud Recipes + + + + + + + +
+