Compare commits

...

4 Commits

Author SHA1 Message Date
decentral1se 6256260057
Ignore test files
continuous-integration/drone/push Build is passing Details
2021-06-16 17:02:46 +02:00
decentral1se f677e27282
Attempt to log more and find correct paths 2021-06-16 17:02:34 +02:00
decentral1se c1b25603a8
Ignore more stuff 2021-06-16 17:02:29 +02:00
decentral1se f66c2e0396
More info from the script 2021-06-16 17:02:23 +02:00
4 changed files with 34 additions and 13 deletions

View File

@ -1,4 +1,5 @@
.envrc
.git
.mypy_cache
.venv
__pycache__
.mypy_cache

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
*.pyc
/__pycache__/
test.py

View File

@ -1,5 +1,6 @@
import logging
from os import environ
from os.path import basename
import owncloud
from fastapi import FastAPI, Request
@ -43,8 +44,11 @@ nextcloud.login(NEXTCLOUD_USER, NEXTCLOUD_APP_PASSWORD)
def create_share(fpath):
if not nextcloud.is_shared(fpath):
info = nextcloud.share_file_with_link(fpath)
fname = basname(fpath)
fpaths = nextcloud.list("/", depth="infinity")
matching = [f.path for f in fpaths if fname in f.path][0]
if not nextcloud.is_shared(matching):
info = nextcloud.share_file_with_link(matching)
return info.get_link()
return None
@ -53,15 +57,23 @@ def create_share(fpath):
async def home(request: Request):
try:
payload = await request.json()
request.app.state.log.info(f"Received: {payload}")
file = payload["file"]
link = create_share(file)
if link:
request.app.state.log.info(f"Shared {file} on {link}")
else:
request.app.state.log.info(f"{file} already shared or failure!")
except Exception:
return {}
request.app.state.log.info("Unable to parse request, bailing out")
return {"detail": "unknown request"}
request.app.state.log.info(f"Received: {payload}")
try:
file = payload["rel_path"]
link = create_share(file)
except Exception:
request.app.state.log.info(f"Failed to share {file}"
return {"detail": "failed to create share"}
if link:
request.app.state.log.info(f"Shared {file} on {link}")
else:
request.app.state.log.info(f"{file} already shared or failure!")
@app.get("/healthz")

View File

@ -1,9 +1,16 @@
#!/bin/bash
FILE="$1"
set -e
ACTORS_USER_ID="$1"
OWNER_USER_ID="$2"
NEXTCLOUD_RELATIVE_PATH="$3"
LOCALLY_AVAILABLE_FILE="$4"
echo "RUNNING: ${FILE}" >> pubspace.log
/usr/bin/curl \
-H "Content-Type: application/json" \
-X GET \
-d "{\"file\":\"${FILE}\"}" \
-d "{\"actor_id\":\"${ACTORS_USER_ID}\", \"owner_id\":\"${OWNER_USER_ID}\", \"rel_path\":\"${NEXTCLOUD_RELATIVE_PATH}\", \"local_path\":\"${LOCALLY_AVAILABLE_PATH}\"}" \
https://publish.lumbung.space