Send files from one computer to another! A graphical interface for magic-wormhole
https://magic-wormhole.readthedocs.io
.gitignore | ||
.travis.yml | ||
dropship.css | ||
dropship.glade | ||
dropship.py | ||
README.md | ||
requirements.txt |
dropship
Lets try magic wormhole with a nice graphical interface.
(click for video)
what is what:
dropship.py
, run this with python3.dropship.glade
, UI file, edit with glade.dropship.css
, additional styling for UI.
install:
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0
pip install -r requirments.txt
run:
python3 dropship.py
development notes:
How we handle asynchronous actions
We use the Trio guest mode instead of relying on threads because those are hard to manage. Running two loops (Gtk and Trio) has disadvantages but overall, it offers a very clear way of organising and executing asynchronous operations.
In practice, this means you need to arrange the following:
- Wire up your usual hook (
self.drop_box.connect("drag-data-received", self.on_drop)
) - In your hook function, call your asynchronous function via the
self.nursery.start_soon
API - Define your asynchronous function with
async def
and use theawait
keyword as usual
operations:
github mirror:
Add the following to the bottom of your .git/config
.
[remote "all"]
url = ssh://gitea@vvvvvvaria.org:12345/rra/dropship.git
url = git@github.com:decentral1se/dropship.git
The git push -u all main
will setup git push
to automatically push to both remotes.
make a release:
git tag 0.0.1dev$whatever && git push
The Travis CI configuration will run a build and publish binaries here.