summary refs log tree commit diff stats
path: root/README.org
blob: 65fceccfae4e4a32c4d28a7b4b0316c5b0df629b (plain) (blame)
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
#+SETUPFILE: ~/.emacs.d/org-templates/projects.org
#+EXPORT_FILE_NAME: index
#+TITLE: Draco

Draco is a script to convert reddit thread to Org document. It accepts a
url & prints the Org document to STDOUT.

It'll also print comments along with their replies. It's limited by
the reddit API.

| Project Home    | [[https://andinus.nand.sh/draco/][Draco]]           |
| Source Code     | [[https://git.tilde.institute/andinus/draco/][Andinus / Draco]] |
| GitHub (Mirror) | [[https://github.com/andinus/draco/][Draco - GitHub]]  |

*Tested on*:
- OpenBSD 6.8 (Perl v5.30.3)

* Why?
I reference things from the web in my Journal & don't want those links
to break so I save them locally. Previously I used to manually archive
the whole thread, this automates it.
* Demo
This was recorded with =asciinema(1)=.

[[https://asciinema.org/a/373860][https://asciinema.org/a/373860.png]]

+ Draco v0.1.2: https://asciinema.org/a/373860
  - alt-link: https://andinus.nand.sh/static/draco/v0.1.2.cast
+ Draco 2020-11-19: https://asciinema.org/a/373851
  - alt-link: https://andinus.nand.sh/static/draco/2020-11-19.cast
* Installation
#+BEGIN_SRC sh
# Clone the project.
git clone https://git.tilde.institute/andinus/draco && \
    cd draco

# Install dependencies. (OpenBSD)
doas pkg_add p5-Unicode-LineBreak p5-JSON-MaybeXS
cpan install HTTP::Tiny

# Install. (Use sudo if doas is not present)
doas make install
#+END_SRC
* Dependencies
** Unicode::LineBreak
This is used to wrap the text at 76 columns. Draco can work without this
module.
** JSON::MaybeXS
This module is required for Draco to work, it can be replaced with any
other module that parses JSON & produces same data structure.
** =HTTP::Tiny=
Draco can work without this module if you can get the file some other
way.