smbwatch icon indicating copy to clipboard operation
smbwatch copied to clipboard

Add id column for easier file retrieval

Open shoeper opened this issue 6 months ago • 0 comments

Das Hinzufügen einer id kann genutzt werden um z.B. mittels eines Skriptes einzelne Dateien herunterzuladen. Aktuell muss dazu erst eine ID hinzugefügt werden. Dann kann z.B. mittels DB Browser for SQLite die Datenbank untersucht werden und einzelne Dateien können über die ID vom Ziel abgerufen werden. Der Abruf auf Anfrage könnte auch direkt in smbwatch integriert werden.

Hinzufügen einer id (ja alle Daten sind dann erstmal doppelt vorhanden)

CREATE TABLE files_id (
    id integer primary key autoincrement, 
    server text,
    sharename text,

    name text,
    path text,
    extension text,

    size int,
    modified_at datetime,
    mode int);

INSERT INTO files_id(server, sharename, name, path, extension,size, modified_at,mode)
SELECT server, sharename, name, path, extension,size, modified_at,mode
FROM files;

Script to fetch file

fetch.sh

#!/bin/bash
# yes this is a little ugly

domain=
user=
password=
db="sqlite.db"
tmpdir=tmp

server=`sqlite3 "$db" "SELECT server FROM files_id WHERE id=$1;"`
sharename=`sqlite3 "$db" "SELECT sharename FROM files_id WHERE id=$1;"`
path=`sqlite3 "$db" "SELECT path FROM files_id WHERE id=$1;" | tr '\' '/'`
name=`sqlite3 "$db" "SELECT name FROM files_id WHERE id=$1;"`

if [[ "$path" == "." ]]
then
	path=""
fi

mkdir -p "$tmpdir"
echo "smbget -U \"$domain/$user%$password\" 'smb://$server/$sharename/$path/$name'" >&2

cd "$tmpdir"
smbget -U "$domain/$user%$password" "smb://$server/$sharename/$path/$name"

cat "'$tmpdir/$name'"

shoeper avatar Feb 15 '24 12:02 shoeper