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
//! Lobsters Client
//! ===============
//!
//! * [Issue Tracker][issues]
//!
//! What
//! ----
//!
//! This is a pair of Rust crates. One implements an asynchronous HTTP client for
//! the [Lobsters] website, and other websites running its code. The other
//! implements a terminal user interface using the client. Lobsters is a friendly
//! programming oriented link sharing community.
//!
//! This client crate allows the following actions to be performed:
//!
//! * Fetch stories
//! * Fetch comments on stories
//! * Post comments and replies
//! * Login
//!
//! Why
//! ---
//!
//! It did this mostly to practice building asynchronous HTTP clients in Rust and
//! gain more experience with the async ecosystem. Then I needed something to test
//! the client so I built the UI. You can [read more about building the client and
//! TUI on my blog][blog-post].
//!
//! How
//! ---
//!
//! See [lobsters-cli] for an example of using this client.
//!
//! Known Limitations
//! -----------------
//!
//! * Support for 2FA login is not implemented
//!
//! Testing
//! -------
//!
//! Run the test suite:
//!
//! ```shell
//! cargo test
//! ```
//!
//! Contributing
//! ------------
//!
//! If you have code or patches you wish to contribute, the preferred mechanism is
//! a git pull request. Push your changes to a git repository somewhere (Sourcehut,
//! GitHub, GitLab, whatever). Ensure that contributions don't break [the
//! tests](https://git.sr.ht/~wezm/lobsters#testing) and add new ones when appropriate.
//!
//! Assuming you have followed the [build steps](https://git.sr.ht/~wezm/lobsters#build)
//! above you would do the following to push to your own fork on Sourcehut, change
//! the git URL to match wherever your forked repo is:
//!
//! ```shell
//! git remote rename origin upstream
//! git remote add origin git@git.sr.ht:~yourname/lobsters
//! git push -u origin master
//! ```
//!
//! Then generate the pull request:
//!
//! ```shell
//! git fetch upstream master
//! git request-pull -p upstream/master origin
//! ```
//!
//! And copy-paste the result into a plain-text email to wes@wezm.net.
//!
//! You may alternately use a patch-based approach as described on
//! <https://git-send-email.io>.
//!
//! License
//! -------
//!
//! This project is dual licenced under:
//!
//! - Apache License, Version 2.0 ([LICENSE-APACHE](https://git.sr.ht/~wezm/lobsters/tree/master/LICENSE-APACHE) OR
//! <http://www.apache.org/licenses/LICENSE-2.0>)
//! - MIT license ([LICENSE-MIT](https://git.sr.ht/~wezm/lobsters/tree/master/LICENSE-MIT) OR
//! <http://opensource.org/licenses/MIT>)
//!
//! [blog-post]: https://www.wezm.net/technical/2019/04/lobsters-tui/
//! [crate-docs]: https://docs.rs/lobsters
//! [issues]: https://todo.sr.ht/~wezm/lobsters
//! [Lobsters]: https://lobste.rs/
//! [rust]: https://rustup.rs/
//! [rustup]: https://www.rust-lang.org/tools/install
//! [lobsters-cli]: https://git.sr.ht/~wezm/lobsters/tree/master/lobsters-cli
pub use Client;
pub use Error;
pub use url;
/// URL of lobste.rs. Useful as `base_url` to `Client`
pub const URL: &str = "https://lobste.rs/";