2019-05-26 16:30:19 +00:00
|
|
|
# ⇆🎉 copyparty
|
|
|
|
|
|
|
|
|
|
* http file sharing hub (py2/py3)
|
|
|
|
|
* MIT-Licensed, 2019-05-26, ed @ irc.rizon.net
|
|
|
|
|
|
2019-06-25 23:21:15 +00:00
|
|
|
|
2019-05-26 20:21:54 +00:00
|
|
|
## summary
|
|
|
|
|
|
|
|
|
|
turn your phone or raspi into a portable file server with resumable uploads/downloads using IE6 or any other browser
|
|
|
|
|
|
2019-06-12 16:39:43 +00:00
|
|
|
* server runs on anything with `py2.7` or `py3.2+`
|
2019-05-29 23:46:17 +00:00
|
|
|
* *resumable* uploads need `firefox 12+` / `chrome 6+` / `safari 6+` / `IE 10+`
|
2019-05-26 20:24:48 +00:00
|
|
|
* code standard: `black`
|
2019-05-26 20:21:54 +00:00
|
|
|
|
2019-06-25 23:21:15 +00:00
|
|
|
|
2019-05-26 16:30:19 +00:00
|
|
|
## status
|
|
|
|
|
|
|
|
|
|
* [x] sanic multipart parser
|
|
|
|
|
* [x] load balancer (multiprocessing)
|
2019-06-10 19:47:01 +00:00
|
|
|
* [x] upload (plain multipart, ie6 support)
|
2019-05-26 20:21:54 +00:00
|
|
|
* [ ] upload (js, resumable, multithreaded)
|
2019-06-10 02:34:35 +00:00
|
|
|
* [x] download
|
|
|
|
|
* [x] browser
|
|
|
|
|
* [x] media player
|
2019-05-26 16:30:19 +00:00
|
|
|
* [ ] thumbnails
|
|
|
|
|
* [ ] download as zip
|
2019-06-10 02:34:35 +00:00
|
|
|
* [x] volumes
|
|
|
|
|
* [x] accounts
|
2019-05-26 16:30:19 +00:00
|
|
|
|
2019-06-10 19:47:01 +00:00
|
|
|
summary: it works
|
|
|
|
|
|
2019-06-07 08:54:41 +00:00
|
|
|
|
2019-06-10 15:47:08 +00:00
|
|
|
# dependencies
|
2019-06-07 08:54:41 +00:00
|
|
|
|
2019-06-10 15:47:08 +00:00
|
|
|
* `jinja2`
|
2019-06-12 16:39:43 +00:00
|
|
|
* pulls in `markupsafe` as of v2.7; use jinja 2.6 on py3.2
|
2019-06-07 08:54:41 +00:00
|
|
|
|
2019-06-10 15:47:08 +00:00
|
|
|
optional, enables thumbnails:
|
|
|
|
|
* `Pillow` (requires py2.7 or py3.5+)
|
|
|
|
|
|
|
|
|
|
|
2019-06-13 11:38:05 +00:00
|
|
|
# install on android
|
2019-06-10 15:47:08 +00:00
|
|
|
|
2019-06-13 11:38:05 +00:00
|
|
|
install [Termux](https://termux.com/) (see [ocv.me/termux](https://ocv.me/termux/)) and then copy-paste this into Termux (long-tap) all at once:
|
2019-06-10 15:47:08 +00:00
|
|
|
```sh
|
2019-06-13 11:38:05 +00:00
|
|
|
apt update && apt -y full-upgrade && termux-setup-storage && apt -y install curl && cd && curl -L https://github.com/9001/copyparty/raw/master/scripts/copyparty-android.sh > copyparty-android.sh && chmod 755 copyparty-android.sh && ./copyparty-android.sh -h
|
2019-06-13 11:43:05 +00:00
|
|
|
echo $?
|
2019-06-10 15:47:08 +00:00
|
|
|
```
|
|
|
|
|
|
2019-06-13 11:38:05 +00:00
|
|
|
after the initial setup (and restarting bash), you can launch copyparty at any time by running "copyparty" in Termux
|
2019-06-10 15:47:08 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
# dev env setup
|
2019-06-25 23:21:15 +00:00
|
|
|
|
2019-06-10 15:47:08 +00:00
|
|
|
```sh
|
2019-06-12 22:18:54 +00:00
|
|
|
python3 -m venv .env
|
2019-06-10 02:34:35 +00:00
|
|
|
. .env/bin/activate
|
2019-06-10 15:47:08 +00:00
|
|
|
pip install jinja2 # mandatory deps
|
|
|
|
|
pip install Pillow # thumbnail deps
|
2019-06-10 02:34:35 +00:00
|
|
|
pip install black bandit pylint flake8 # vscode tooling
|
|
|
|
|
```
|
2019-06-07 08:54:41 +00:00
|
|
|
|
2019-06-10 15:47:08 +00:00
|
|
|
|
2019-06-25 23:21:15 +00:00
|
|
|
# how to release
|
|
|
|
|
|
|
|
|
|
in the `scripts` folder:
|
|
|
|
|
|
|
|
|
|
* run `make -C deps-docker` to build all dependencies
|
|
|
|
|
* create github release with `make-tgz-release.sh`
|
|
|
|
|
* upload to pypi with `make-pypi-release.(sh|bat)`
|
|
|
|
|
|
|
|
|
|
|
2019-06-10 19:47:01 +00:00
|
|
|
# immediate todo
|
2019-06-10 15:47:08 +00:00
|
|
|
|
|
|
|
|
roughly sorted by priority
|
|
|
|
|
|
2019-06-12 22:18:54 +00:00
|
|
|
* look into android thumbnail cache file format
|
2019-06-10 15:47:08 +00:00
|
|
|
* support pillow-simd
|
2019-06-12 22:18:54 +00:00
|
|
|
* figure out the deal with pixel3a not being connectable as hotspot
|
2019-06-13 01:09:55 +00:00
|
|
|
* pixel3a having unpredictable 3sec latency in general :||||
|