Upload files to ".local/bin"
This commit is contained in:
parent
d17e02fa0f
commit
3e0eaaf829
2 changed files with 102 additions and 0 deletions
48
.local/bin/cslate
Normal file
48
.local/bin/cslate
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
translate() {
|
||||||
|
text="$1"
|
||||||
|
lang="$2"
|
||||||
|
|
||||||
|
case "$lang" in
|
||||||
|
persian|fa|per) lang="fa" ;;
|
||||||
|
german|de|ger) lang="de" ;;
|
||||||
|
french|fr|fre) lang="fr" ;;
|
||||||
|
spanish|es|spa) lang="es" ;;
|
||||||
|
*) lang="$lang" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if command -v jq >/dev/null 2>&1; then
|
||||||
|
translated=$(curl -s "https://libretranslate.de/translate" \
|
||||||
|
-d "q=$text" -d "source=auto" -d "target=$lang" \
|
||||||
|
-H "Content-Type: application/x-www-form-urlencoded" \
|
||||||
|
| jq -r '.translatedText')
|
||||||
|
else
|
||||||
|
translated=$(curl -s "https://libretranslate.de/translate" \
|
||||||
|
-d "q=$text" -d "source=auto" -d "target=$lang" \
|
||||||
|
-H "Content-Type: application/x-www-form-urlencoded" \
|
||||||
|
| sed -n 's/.*"translatedText":"\([^"]*\)".*/\1/p')
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\033[1;34mOriginal:\033[0m %s\n" "$text"
|
||||||
|
printf "\033[1;33mTranslation (%s):\033[0m %s\n" "$lang" "$translated"
|
||||||
|
}
|
||||||
|
|
||||||
|
if ! command -v curl >/dev/null 2>&1; then
|
||||||
|
echo "Error: curl is required" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
-w|--word|-s|--sentence)
|
||||||
|
[ -z "$3" ] && { echo "Usage: $0 [-w|-s] TEXT LANGUAGE" >&2; exit 1; }
|
||||||
|
translate "$2" "$3"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 [-w|-s] TEXT LANGUAGE" >&2
|
||||||
|
echo " -w, --word Translate a word" >&2
|
||||||
|
echo " -s, --sentence Translate a sentence" >&2
|
||||||
|
echo "Example: $0 -w hello persian" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
54
.local/bin/ecop
Normal file
54
.local/bin/ecop
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
#!/usr/bin/env lua
|
||||||
|
|
||||||
|
local args = {...}
|
||||||
|
local tmpfile = os.tmpname()
|
||||||
|
local cmd = table.concat(args, " ")
|
||||||
|
|
||||||
|
-- run the command and write its output to tmpfile
|
||||||
|
local ok = false
|
||||||
|
local output = ""
|
||||||
|
|
||||||
|
do
|
||||||
|
local f = io.popen(cmd, "r")
|
||||||
|
if f then
|
||||||
|
output = f:read("*a")
|
||||||
|
f:close()
|
||||||
|
|
||||||
|
local outFile = io.open(tmpfile, "w")
|
||||||
|
if outFile then
|
||||||
|
outFile:write(output)
|
||||||
|
outFile:close()
|
||||||
|
end
|
||||||
|
|
||||||
|
ok = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if ok then
|
||||||
|
local session = os.getenv("XDG_SESSION_TYPE")
|
||||||
|
if session == "wayland" then
|
||||||
|
local f = io.popen("wl-copy", "w")
|
||||||
|
if f then
|
||||||
|
f:write(output)
|
||||||
|
f:close()
|
||||||
|
end
|
||||||
|
elseif session == "x11" then
|
||||||
|
local f = io.popen("xclip -selection clipboard", "w")
|
||||||
|
if f then
|
||||||
|
f:write(output)
|
||||||
|
f:close()
|
||||||
|
end
|
||||||
|
else
|
||||||
|
io.stderr:write("UNKNOWN SESSION TYPE!! >> " .. tostring(session) .. "\n")
|
||||||
|
os.remove(tmpfile)
|
||||||
|
os.exit(1)
|
||||||
|
end
|
||||||
|
|
||||||
|
print(output)
|
||||||
|
os.remove(tmpfile)
|
||||||
|
os.exit(0)
|
||||||
|
else
|
||||||
|
print(output)
|
||||||
|
os.remove(tmpfile)
|
||||||
|
os.exit(1)
|
||||||
|
end
|
Loading…
Add table
Reference in a new issue