Provide KDE Service Menu actions with Seafile links on SeaDrive files right click menu

In windows SeaDrive provide right-click menu with Seafile actions on SeaDrive files, but in Linux this is missing at now.

This can be done as KDE Service Menu actions plugin, here is example of same menu for Dropbox https://store.kde.org/p/998468/

Here https://store.kde.org/p/998135/ I have found plugin for Seafile files, can we add support for SeaDrive files too?

The GUI is still new for Linux. Cool that you found something for KDE, but I think they won’t do it. But even if SeaDrive is closed source, it should be possible to create it yourself if you know what extensions you want to have.

I lookup to code of this script and seems adding support for SeaDrive will not so hard.
In seafile_service_menu.sh file there are function:

#
# readSeafileCfg
#
function readSeafileCfg {
    (($DEBUG == 1)) && echo "Reading Seafile configuration..."
    SEAFILECONFIGURATIONFILE="$SEAFILE_DIR/.seafile-data/accounts.db"
    if [ -f "$SEAFILECONFIGURATIONFILE" ]; then
        # Leemos la configuración.
        SEAFILE_TOKEN=""
        SEAFILE_URL=""
        SEAFILE_USER=""
        DATA=`sqlite3 "$SEAFILECONFIGURATIONFILE" "SELECT url, username, token FROM Accounts LIMIT 1"`
        arr=$(echo $DATA | tr "|" "\n")
        for VAL in $arr; do
            if [ -z $SEAFILE_URL ]; then
                SEAFILE_URL="$VAL"
                continue
            fi
            if [ -z $SEAFILE_USER ]; then
                SEAFILE_USER="$VAL"
                continue
            fi
            if [ -z $SEAFILE_TOKEN ]; then
                SEAFILE_TOKEN="$VAL"
                continue
            fi
        done
    else
        print "ERROR: Seafile configuration file not found. Are you sure this is your Seafile folder?"
        exit 1
    fi
}

that reads access tokens from Seafile Client sqlite database. I see that SeaDrive have same sqlite file structure, so seems simple path change from:

    SEAFILECONFIGURATIONFILE="$SEAFILE_DIR/.seafile-data/accounts.db"

to

    SEAFILECONFIGURATIONFILE="$USER_HOME/.seadrive/accounts.db"

must help! I will try to test this way.

1 Like