8 Commits

Author SHA1 Message Date
fbt
3cfdcb1209 How long has that been there, wtf
Signed-off-by: fbt <fbt@fleshless.org>
2019-11-23 22:45:55 +03:00
fbt
ad256e83e3 Use jq
Signed-off-by: fbt <fbt@fleshless.org>
2019-11-23 09:58:19 +03:00
fbt
3a48f36d43 Use jq
Signed-off-by: fbt <fbt@fleshless.org>
2019-11-23 09:57:58 +03:00
fbt
01478630e8 no more api/2
Signed-off-by: fbt <fbt@fleshless.org>
2019-11-23 09:37:09 +03:00
fbt
a31d8b8963 album control also moved
Signed-off-by: fbt <fbt@fleshless.org>
2019-11-23 08:19:12 +03:00
fbt
0dafaaf15b The upload endpoint moved
Signed-off-by: fbt <fbt@fleshless.org>
2019-11-23 07:18:51 +03:00
fbt
466050972d shrink moved too
Signed-off-by: fbt <fbt@fleshless.org>
2019-11-23 06:52:41 +03:00
fbt
99735444f3 notification control
Signed-off-by: fbt <fbt@fleshless.org>
2019-11-22 14:43:04 +03:00
2 changed files with 25 additions and 22 deletions

View File

@@ -16,7 +16,7 @@ ufw
ufw can upload files to 8fw.me, shorten urls and show you your ip. ufw can upload files to 8fw.me, shorten urls and show you your ip.
Call ufw -h for help. Call ufw -h for help.
Dependencies: curl, jshon Dependencies: curl, jq
ufwd ufwd
---- ----

45
ufw
View File

@@ -33,6 +33,8 @@ usage() {
-d|--description # Supply a description. -d|--description # Supply a description.
-D|--screenshot-delay <num> # Delay the shot by <num> seconds. -D|--screenshot-delay <num> # Delay the shot by <num> seconds.
-p|--public # Make the file public. -p|--public # Make the file public.
-n|--no-notify # Don't send immediate notifications for this upload.
--notify # Force a notification for this upload.
-u|--shorten <URL> # Generate a shortlink from URL. -u|--shorten <URL> # Generate a shortlink from URL.
-S|--short-url # Get a shortlink when uploading a file. -S|--short-url # Get a shortlink when uploading a file.
-P|--page-url # Get a link to the file page instead of a direct one. -P|--page-url # Get a link to the file page instead of a direct one.
@@ -49,7 +51,6 @@ usage() {
cfg_url_regex cfg_url_regex
cfg_tmp_dir cfg_tmp_dir
cfg_service_url cfg_service_url
cfg_api_path
EOF EOF
} }
@@ -76,12 +77,12 @@ get_max_filesize() {
get_album_id() { get_album_id() {
declare api_response api_status api_status_message declare api_response api_status api_status_message
api_response=$( curl -fsL "$cfg_service_url/$cfg_api_path/album?a=new&name=$1&format=json&secret=$secret" ) api_response=$( curl -fsL "$cfg_service_url/albumctl.json?m=new&name=$1&secret=$secret" )
get_api_status <<< "$api_response" get_api_status <<< "$api_response"
if (( api_status == 200 )); then if (( api_status == 200 )); then
album_id=$( jshon -e data -e album -e id -u <<< "$api_response" ) album_id=$( jq -r '.data.album.id' <<< "$api_response" )
misc_curl_args+=( -F album_id="$album_id" ) misc_curl_args+=( -F album_id="$album_id" )
else else
printf 'Error [album]: %s %s\n' "$api_status" "$api_status_message" printf 'Error [album]: %s %s\n' "$api_status" "$api_status_message"
@@ -109,7 +110,7 @@ upload() {
get_max_filesize || { return 1; } get_max_filesize || { return 1; }
curl --max-filesize "$max_filesize_bytes" -skL "$target" > "$file" curl --max-filesize "$max_filesize_bytes" -sL "$target" > "$file"
curl_result=$? curl_result=$?
if (( curl_result )); then if (( curl_result )); then
@@ -142,29 +143,30 @@ upload() {
-F flag_private="$flag_private" \ -F flag_private="$flag_private" \
-F secret="$secret" \ -F secret="$secret" \
-F tags="$tags" \ -F tags="$tags" \
-F notify="$flag_notify" \
-F submit="" \ -F submit="" \
"${misc_curl_args[@]}" \ "${misc_curl_args[@]}" \
-A 'zerofiles.org upload script' \ -A 'zerofiles.org upload script' \
"$cfg_service_url/$cfg_api_path/upload" ) "$cfg_service_url/maw.json" )
if (( flag_shortlink )); then if (( flag_shortlink )); then
if (( flag_directlink )); then if (( flag_directlink )); then
file_url_request='short_url_direct'
else
file_url_request='short_url' file_url_request='short_url'
else
file_url_request='page_short_url'
fi fi
else else
if (( flag_directlink )); then file_url_request='url'
file_url_request='direct_url'
else
file_url_request='page_url'
fi
fi fi
get_api_status <<< "$api_response" get_api_status <<< "$api_response"
if (( api_status == 200 )); then if (( api_status == 200 )); then
file_link=$( jshon -e data -e file -e "$file_url_request" -u <<< "$api_response" ) file_link=$( jq -r ".data.${file_url_request}" <<< "$api_response" )
(( flag_shortlink )) || {
(( flag_directlink )) || file_link="${file_link#*.}"
}
printf '%s\n' "$file_link" printf '%s\n' "$file_link"
@@ -181,13 +183,12 @@ upload() {
get_shortlink() { get_shortlink() {
declare url=$1 api_response api_status api_status_message declare url=$1 api_response api_status api_status_message
api_response=$( curl -sL "$cfg_service_url/$cfg_api_path/url?a=add&url=${url}&format=json&secret=$secret" ) api_response=$( curl -sL "$cfg_service_url/shrink.json?url=${url}&secret=$secret" )
get_api_status <<< "$api_response" get_api_status <<< "$api_response"
if (( api_status == 200 )); then if (( api_status == 200 )); then
read -r short_url real_url < <( read -r short_url real_url < <(
jshon -e data -e URL -e shorturl -u <<< "$api_response" jq -r '.data.short_url' <<< "$api_response"
) )
printf '%s\n' "$short_url" printf '%s\n' "$short_url"
@@ -220,7 +221,7 @@ take_screenshot() {
get_api_status() { get_api_status() {
read -d '' -r api_status api_status_message < <( read -d '' -r api_status api_status_message < <(
jshon -e status -e code -u -p -e message -u jq -r '.status.code, .status.message'
) )
if ! (( api_status == 200 )); then if ! (( api_status == 200 )); then
@@ -251,7 +252,7 @@ get_my_ip() {
get_api_status <<< "$api_response" get_api_status <<< "$api_response"
if (( api_status == 200 )); then if (( api_status == 200 )); then
my_ip=$( jshon -e data -e ip -u <<< "$api_response" ) my_ip=$( jq -r '.data.ip' <<< "$api_response" )
printf '%s\n' "$my_ip" printf '%s\n' "$my_ip"
else else
printf 'Error: %s %s\n' "$api_status" "$api_status_message" printf 'Error: %s %s\n' "$api_status" "$api_status_message"
@@ -261,7 +262,7 @@ get_my_ip() {
login() { login() {
declare api_response declare api_response
api_response=$( curl -sl "$cfg_service_url/$cfg_api_path/get_login_token?login=$login&format=json" ) api_response=$( curl -sl "$cfg_service_url/token_request.json?login=$login" )
if get_api_status <<< "$api_response"; then if get_api_status <<< "$api_response"; then
printf 'Check your email.\n' printf 'Check your email.\n'
@@ -306,7 +307,7 @@ set_argv() {
} }
main() { main() {
declare args file target flag_private flag_rm flag_scn flag_scn_fullscreen cfg_scn_delay declare args file target flag_private flag_rm flag_scn flag_scn_fullscreen cfg_scn_delay flag_notify
declare flag_shortlink=0 declare flag_shortlink=0
# Defaults for XDG # Defaults for XDG
@@ -323,7 +324,6 @@ main() {
cfg_service_url='https://8fw.me' cfg_service_url='https://8fw.me'
cfg_screenshot_ext='png' cfg_screenshot_ext='png'
cfg_max_filesize='200M' cfg_max_filesize='200M'
cfg_api_path='/api/2'
flag_shortlink=0 flag_shortlink=0
flag_directlink=1 flag_directlink=1
@@ -358,6 +358,9 @@ main() {
-P|--page-url) flag_directlink=0;; -P|--page-url) flag_directlink=0;;
-q|--quiet) flag_quiet=1;; -q|--quiet) flag_quiet=1;;
--notify) flag_notify=1;;
--no-notify|-n) flag_notify=0;;
-F|--fullscreen) -F|--fullscreen)
flag_scn='1' flag_scn='1'
flag_scn_fullscreen='1' flag_scn_fullscreen='1'