about summary refs log tree commit diff stats
path: root/README
blob: d7c8c01a97f516479d336dd76889566f06273c70 (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
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
                               ━━━━━━━━━
                                 PYXIS

                                Andinus
                               ━━━━━━━━━


Table of Contents
─────────────────

1 Demo
.. 1.1 Screenshots
2 Documentation
.. 2.1 Commands
.. 2.2 Examples
.. 2.3 Configuration
3 Installation
.. 3.1 Dependencies


Pyxis is a simple twtxt client.

[twtxt] is a decentralised, minimalist microblogging service for
hackers.

• Website: [https://andinus.nand.sh/pyxis]
• Source: [https://git.tilde.institute/andinus/pyxis]
• Mirror: [https://github.com/andinus/pyxis]


[twtxt] https://github.com/buckket/twtxt


1 Demo
══════

1.1 Screenshots
───────────────

  • timeline [2020-08-30 Sun]
  [https://andinus.nand.sh/static/pyxis/2020-08-30_timeline.png]


2 Documentation
═══════════════

  The feeds are saved in `$XDG_DATA_HOME/pyxis', if it's not defined
  then `$HOME/.local/share/pyxis' is used. Feeds are configured in
  `$XDG_CONFIG_HOME/pyxis.pl' or `$HOME/.config/pyxis.pl'.


2.1 Commands
────────────

2.1.1 fetch
╌╌╌╌╌╌╌╌╌╌╌

  fetch will fetch all the latest feeds from config file. You can use
  Pyxis without this feature by fetching the files yourself manually to
  data directory.


2.1.2 timeline
╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  timeline will print your timeline from all the feeds. You can also
  pass an optional argument to load custom feeds.

  For example, you can pass multiple feeds like `pyxis timeline f1 f2',
  it'll load both `f1' & `f2'. If you pass an invalid feed then it
  prints a warning & goes to the next one.


2.2 Examples
────────────

  ┌────
  │ pyxis fetch # fetch all feeds
  │
  │ # dispay emacs & perl feeds (if available)
  │ pyxis timeline emacs perl
  │
  │ pyxis timeline # display all feeds
  └────


2.3 Configuration
─────────────────

  There is an example config file under `share/config.pl', move it to
  config directory & rename to `pyxis.pl'.

  ┌────
  │ cp share/config.pl $HOME/.config/pyxis.pl
  └────

  *Warning*: Pyxis will evaluate the configuration file, which means an
  attacker can use it to run malicious code.

  *Note*: They could always add malicious code to `.profile' & do harm.
  Just thought I should put the warning.

  ┌────
  │ #!/usr/bin/perl
  │
  │ use strict;
  │ use warnings;
  │
  │ my %feeds = (
  │     andinus => "https://andinus.nand.sh/static/twtxt",
  │ );
  │
  │ sub get_feeds { return %feeds; }
  │
  │ 1;
  └────

  Add your feeds to `%feeds' hash like shown above. You can remove those
  2 `use' lines but it's good if you keep them.


3 Installation
══════════════

  Install these dependencies from CPAN. Then just clone the repository,
  copy the config & run pyxis!


3.1 Dependencies
────────────────

  • Getopt::Long is required only for options.
  • [HTTP::Tiny] is only required if you use `fetch'.
  • Path::Tiny can be replaced with perl core.
  • Term::ANSIColor is just for good looks.
  • Time::Moment can be replaced with DateTime or you can just `sort' it
    directly. Sorting directly will mess up the order a bit but should
    be okay for most cases.