I develop stuff and have opinions on things -
About me/Contact

Articles:

PleaseShare 0.5

After a fairly long period on inactivity on it, I decided to rewrite entirely PleaseShare from Django 1.6 to Flask. The main reason is that django felt heavy for my limited use of its features, and the pain of keeping up with the API was hindering my will to work on it.

Reintroduction of PleaseShare

I already talked about PleaseShare in (tw: french articles) (1, 2, 3, 4) but I might as well go along and reintroduce its objective.

The point is to leverage the capabilities of bittorent webseeds in order to create a file hosting service that:

  1. Can be self-hosted
  2. Can be fast while self-hosted
  3. Is resilient
  4. Is easy to use

The use of webseeds allows PleaseShare downloads to be at least as fast as if it was a classical HTTP download, but gets faster when more people are downloading it.

Rewrite

Even though I say “rewrite”, I could obviously keep the design, but most of the templates too, and the torrent handling code. So I only had to figure out how to do nice things with flask, like automated translation, forms, and csrf stuff.

I took the opportunity to rewrite all of the archive handling code, which was a bit broken and use python 3.4 singledispatch module, along with function annotations, to make things look cleaner.

Additions

  • Translation depending of browser Accept-language. Currently only french and english are available.
  • Access through a subdirectory; previously PleaseShare could only be installed to a subdomain.
  • A “my uploads” page which is only valid for the session.
  • A light (non-compulsory) addtition of javascript to make user experience smoother
  • A new, cleaner design (thanks cynddl)

Previous features still working

Everything, which means, among others:

  • Upload of (compressed or uncompressed) archives which will be extracted to create torrents
  • User-added list of other trackers to use for the torrent
  • User-added list of other webseeds to use for the torrent
  • User choice of creating a private torrent or not
  • Mandatory trackers to use when creating the torrent
  • Other webseeds handled by the server (e.g. when syncing the upload directory with another server)
If you have remarks or suggestions concerning this article, please by all means contact me.