aboutsummaryrefslogtreecommitdiffstats
path: root/README.org
blob: 42a71e80aacf4c9fa1552e207a5e698b432b1e1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#+STARTUP: showall

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

* Setup

  Hypo is written in [[http://hylang.org][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:

   - [[http://hylang.org][hy]] :: The language.
   - [[http://webpy.org][web.py]] :: The Python web framework.
   - [[http://postgresql.org][Postgresql]] :: The database.
   - [[http://initd.org/psycopg/][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 is 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) [[http://code.ryuslash.org/hypo-emacs/][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 [[http://code.ryuslash.org/cgit.cgi/hypo/tree/COPYING][COPYING]] for more information.