Send files from one computer to another! A graphical interface for magic-wormhole https://magic-wormhole.readthedocs.io
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Luke Murphy d680409488
Use latest trio-gtk API (no nursery)
4 years ago
.gitignore Skip .spec file again 4 years ago
.travis.yml Use correct ordering and slashes 4 years ago
README.md Document async wrangling 4 years ago
dropship.css Remove tabs lol 4 years ago
dropship.glade fine tune sending interface 4 years ago
dropship.py Use latest trio-gtk API (no nursery) 4 years ago
requirements.txt Use latest trio-gtk API (no nursery) 4 years ago

README.md

dropship

Build Status

Lets try magic wormhole with a nice graphical interface.

Screen cast of dropship 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:

  1. Wire up your usual hook (self.drop_box.connect("drag-data-received", self.on_drop))
  2. In your hook function, call your asynchronous function via the self.nursery.start_soon API
  3. Define your asynchronous function with async def and use the await 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.