From 70b54a2df4d23622fda418da55063da90817e313 Mon Sep 17 00:00:00 2001 From: Gnarwhal Date: Sat, 31 Aug 2024 19:55:10 +0000 Subject: [PATCH] Added clipboard plugin --- README.md | 4 ++++ clipboard.py | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 clipboard.py diff --git a/README.md b/README.md index 944aa8e..16ad94c 100644 --- a/README.md +++ b/README.md @@ -8,3 +8,7 @@ think deserved to be included by default ### latest Upload the most recently touched file from a directory + +### clipboard + +Upload the contents of the clipboard and/or copy the resultant URL to the clipboard diff --git a/clipboard.py b/clipboard.py new file mode 100644 index 0000000..91c606e --- /dev/null +++ b/clipboard.py @@ -0,0 +1,60 @@ +# This file is part of SSHare. +# +# SSHare is free software: you can redistribute it and/or modify it under the terms of +# the GNU General Public License as published by the Free Software Foundation, +# either version 3 of the License, or (at your option) any later version. +# +# SSHare is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# You should have received a copy of the GNU General Public License along with +# SSHare. If not, see . + +import pyclip + +from plugins.config import Argument +from plugins.config import Flag +from plugins.config import NoDefault +from plugins.source import Raw + +plugin_type = [ "source", "result" ] + +activate = { + "source": [ "from_clipboard" ], + "result": [ "to_clipboard" ], +} +config = { + "protocol": "https", + "host": NoDefault, + "port": None, + "path": "", +} +args={ + "from_clipboard": Argument( + short="p", + long="paste", + action="store_const", + const=Flag, + help="Upload the contents of the clipboard" + ), + "to_clipboard": Argument( + short="c", + long="copy", + action="store_const", + const=Flag, + help="Copy the resultant URL to the clipboard" + ), +} + +def source(): + logger.info("Uploading contents of clipboard") + return Raw("txt", pyclip.paste()) + +def result(name): + if config.port: + config.port = f":{config.port}" + else: + config.port = "" + pyclip.copy(f"{config.protocol}://{config.host}{config.port}{config.path}/{name}")