Quickly share stuff
Find a file
2013-11-18 01:03:10 +01:00
site Initial commit 2013-08-01 01:24:32 +02:00
templates Use git and filesystem as data back-end 2013-11-18 01:03:10 +01:00
.gitignore Initial commit 2013-08-01 01:24:32 +02:00
config.example.hy Update description 2013-08-11 00:16:26 +02:00
COPYING Initial commit 2013-08-01 01:24:32 +02:00
hypo.hy Use git and filesystem as data back-end 2013-11-18 01:03:10 +01:00
hypoctl Use git and filesystem as data back-end 2013-11-18 01:03:10 +01:00
init.sql Update description 2013-08-11 00:16:26 +02:00
README.org Update README, add index page 2013-08-25 23:21:39 +02:00
upgrade-git.hy Use git and filesystem as data back-end 2013-11-18 01:03:10 +01:00

Quickly share bits of code, screenshots or whatnot with some friends. Easily delete them too.

Setup

Hypo is written in hy. Which is a Lisp and Python thrown together. This doesn't matter much, it should function as a regular python module.

Requirements

Hypo has the following requirements:

hy
The language.
web.py
The Python web framework.
Postgresql
The database.
psycopg2
The database connector.

Besides these it also requires everything needed to run web.py applications using your favorite webserver.

Usage

Once setup it will not show much of anything, first you'll have to upload something.

Uploading

Uploading is done with the PUT HTTP method. An example with curl:

# curl --upload-file README.org http://yourserver.example.com/ 2>/dev/null
http://yourserver.example.com/abcdef1

After uploading a file to the server it will respond with the url of your newly uploaded file. If you browse to this URL using your favorite browser you will find a page showing the file. For text files it will try to provide some syntax highlighting, for certain types of images (currently jpg, png and gif) it will show the image.

If Hypo doens't know what kind of file you're uploading it will default to treating it as a text file.

Viewing

All files can be viewed (from, for example, your web browser) in three different ways. The regularly, raw and as download.

The regular way shows a web page with the file either syntax highlighted using pygments or (in case it is an image) with the image shown on the page. This is viewed by using the URL printed after upload has completed. For example:

http://yourserver.example.com/abcdef1

The raw view is just the file, saving this file is the same as downloading it. This is viewed by prefixing the last part of the URL with raw/. For example:

http://yourserver.example.com/raw/abcdef1

The download view is the same as the raw view except that the Content-Disposition header has been set to attachment. This causes a download dialog to show up instead of your browser trying to render it. This ir viewed by prefixing the last part of the URL with dl/. For example:

http://yourserver.example.com/dl/abcdef1

Deleting

After you have uploaded a file you can delete it again by using the DELETE HTTP method. An example with curl:

# curl -XDELETE http://yourserver.example.com/abcdef1
None

There is currently no way to authenticate yourself with the server, so anyone can delete (also post) files. Of course they would first have to know the URL to send the delete to.

Clients

Hypo tries to stay simple to work with, at least on the client-side. However, some clients may make things easier. Currently there is only the (incomplete) Emacs client.

License

Hypo is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Hypo 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 Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with Hypo. If not, see http://www.gnu.org/licenses/.

See COPYING for more information.