oooo
parent
2c8abf7158
commit
c9e3f4e416
|
|
@ -7,7 +7,7 @@ gitlab() (
|
||||||
|
|
||||||
get() {
|
get() {
|
||||||
local url="$1"
|
local url="$1"
|
||||||
local blob="$2"
|
local blob="$(echo "$2" | base64 --decode)"
|
||||||
|
|
||||||
local project="$(_url_to_project_root "$url" | head -n 1)"
|
local project="$(_url_to_project_root "$url" | head -n 1)"
|
||||||
project="$(urlencode "$project")"
|
project="$(urlencode "$project")"
|
||||||
|
|
@ -82,7 +82,11 @@ gitlab() (
|
||||||
local file="$(echo "$b64_file" | base64 --decode)"
|
local file="$(echo "$b64_file" | base64 --decode)"
|
||||||
file="${file#$root}"
|
file="${file#$root}"
|
||||||
file="${file#/}"
|
file="${file#/}"
|
||||||
echo "$file" | base64
|
case "${file##*.}" in
|
||||||
|
md|txt )
|
||||||
|
echo "$file" | base64
|
||||||
|
;;
|
||||||
|
esac
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,13 @@ test___expand() {
|
||||||
'https://gitlab-app.eng.qops.net/api/v4/projects/project/repository/tree?recursive=true&path=dir' )
|
'https://gitlab-app.eng.qops.net/api/v4/projects/project/repository/tree?recursive=true&path=dir' )
|
||||||
echo '[
|
echo '[
|
||||||
{"id": "a", "name": "dir2", "type": "tree", "path": "dir/dir2", "mode": "040000"},
|
{"id": "a", "name": "dir2", "type": "tree", "path": "dir/dir2", "mode": "040000"},
|
||||||
{"id": "b", "name": "blob", "type": "blob", "path": "dir/blob", "mode": "100644"}
|
{"id": "b", "name": "blob.md", "type": "blob", "path": "dir/blob.md", "mode": "100644"}
|
||||||
]'
|
]'
|
||||||
;;
|
;;
|
||||||
'https://gitlab-app.eng.qops.net/api/v4/projects/project/repository/tree?recursive=true&path=dir/dir2' )
|
'https://gitlab-app.eng.qops.net/api/v4/projects/project/repository/tree?recursive=true&path=dir/dir2' )
|
||||||
echo '[
|
echo '[
|
||||||
{"id": "c", "name": "blob2", "type": "blob", "path": "dir/dir2/blob2", "mode": "100644"}
|
{"id": "c", "name": "blob2.txt", "type": "blob", "path": "dir/dir2/blob2.txt", "mode": "100644"},
|
||||||
|
{"id": "c", "name": "blob3.jpg", "type": "blob", "path": "dir/dir2/blob3.jpg", "mode": "100644"}
|
||||||
]'
|
]'
|
||||||
;;
|
;;
|
||||||
* )
|
* )
|
||||||
|
|
@ -24,9 +25,9 @@ test___expand() {
|
||||||
local dir2blob2=false
|
local dir2blob2=false
|
||||||
local others=0
|
local others=0
|
||||||
for result in \$(__expand project dir); do
|
for result in \$(__expand project dir); do
|
||||||
if echo \$result | base64 --decode | grep -q ^blob$; then
|
if echo \$result | base64 --decode | grep -q ^blob.md$; then
|
||||||
blob=true
|
blob=true
|
||||||
elif echo \$result | base64 --decode | grep -q ^dir2.blob2$; then
|
elif echo \$result | base64 --decode | grep -q ^dir2.blob2.txt$; then
|
||||||
dir2blob2=true
|
dir2blob2=true
|
||||||
else
|
else
|
||||||
others=\$((others+1))
|
others=\$((others+1))
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ config() {
|
||||||
set -e
|
set -e
|
||||||
export CACHE="${CACHE:-"$(mktemp -d)"}"
|
export CACHE="${CACHE:-"$(mktemp -d)"}"
|
||||||
mkdir -p "$CACHE"
|
mkdir -p "$CACHE"
|
||||||
export CACHE_DURATION=$((60*5))
|
export CACHE_DURATION=$((60*50))
|
||||||
export NOTEA_ADDR="${NOTEA_ADDR:-"http://localhost:3000"}"
|
export NOTEA_ADDR="${NOTEA_ADDR:-"http://localhost:3000"}"
|
||||||
export GITLAB_PAT="$GITLAB_PAT"
|
export GITLAB_PAT="$GITLAB_PAT"
|
||||||
source ./gitlab.sh
|
source ./gitlab.sh
|
||||||
|
|
@ -72,8 +72,13 @@ crawl_with() {
|
||||||
|
|
||||||
local expanded=($($backend expand "$crawlable_source"))
|
local expanded=($($backend expand "$crawlable_source"))
|
||||||
log expand $crawlable_source:
|
log expand $crawlable_source:
|
||||||
for i in $(seq 1 "${#expanded[@]}"); do
|
for i in $(seq 1 $(("${#expanded[@]}"-1))); do
|
||||||
log " $(echo ${expanded[i]} | base64 --decode)"
|
local title="$(echo "${expanded[i]}" | base64 --decode)"
|
||||||
|
CONTENT="$($backend get "$crawlable_source" "${expanded[i]}")" \
|
||||||
|
ID="$(echo "$crawlable_source/$title" | base64)" \
|
||||||
|
PID="$(echo $json | jq -r .id)" \
|
||||||
|
TITLE="$title" \
|
||||||
|
notea put
|
||||||
done
|
done
|
||||||
|
|
||||||
log not impl crawl with
|
log not impl crawl with
|
||||||
|
|
@ -81,15 +86,10 @@ crawl_with() {
|
||||||
}
|
}
|
||||||
|
|
||||||
is_crawlable() {
|
is_crawlable() {
|
||||||
|
local crawlable_source="$(extract_crawlable_source "$*")"
|
||||||
# https://unix.stackexchange.com/questions/181254/how-to-use-grep-and-cut-in-script-to-obtain-website-urls-from-an-html-file
|
# https://unix.stackexchange.com/questions/181254/how-to-use-grep-and-cut-in-script-to-obtain-website-urls-from-an-html-file
|
||||||
local url_pattern="(http|https)://[a-zA-Z0-9./?=_%:-]*"
|
local url_pattern="(http|https)://[a-zA-Z0-9./?=_%:-]*"
|
||||||
if echo "$*" | tr -d '\n' | grep -E "^[ ]*$url_pattern[ ]*$"; then
|
echo "$crawlable_source" | grep -q -E "^[ ]*$url_pattern[ ]*$"
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
if echo "$*" | head -n 1 | grep -E "^[ ]*_source_: $url_pattern[ ]*$"; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
return 1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rewrite() {
|
rewrite() {
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,40 @@ notea() (
|
||||||
ncurl $NOTEA_ADDR/api/notes/$1
|
ncurl $NOTEA_ADDR/api/notes/$1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
put() {
|
||||||
|
set -u
|
||||||
|
local ret=0
|
||||||
|
if ! _put "$@"; then
|
||||||
|
ret=1
|
||||||
|
fi
|
||||||
|
set +u
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
|
||||||
|
_put() {
|
||||||
|
local xsrf_key="xsrf-token"
|
||||||
|
local contains_tokens="$(ncurl -i $NOTEA_ADDR/api)"
|
||||||
|
local xsrf_token="$(echo "$contains_tokens" | grep -o '"csrfToken":[^,]*' | tr ':' '\n' | jq -r . | tail -n 1)"
|
||||||
|
local xsrf_cookie="$(echo "$contains_tokens" | grep ^set.cookie: | sed 's/^set.cookie: //' | tr ';' '\n' | head -n 1)"
|
||||||
|
local request="$(echo '{
|
||||||
|
"content": '$(echo "$CONTENT" | jq -Rs)',
|
||||||
|
"deleted": 0,
|
||||||
|
"id": '$(echo "$ID" | jq -R)',
|
||||||
|
"pid": '$(echo "$PID" | jq -R)',
|
||||||
|
"pinned": 0,
|
||||||
|
"shared": 0,
|
||||||
|
"title": '$(echo "$TITLE" | jq -R)'
|
||||||
|
}' | jq -c .)"
|
||||||
|
ncurl \
|
||||||
|
-X POST \
|
||||||
|
-H "$xsrf_key: $xsrf_token" \
|
||||||
|
-b "$xsrf_cookie" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "$request" \
|
||||||
|
$NOTEA_ADDR/api/notes \
|
||||||
|
| grep -q "$ID"
|
||||||
|
}
|
||||||
|
|
||||||
"$@"
|
"$@"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue