more things
This commit is contained in:
parent
643e10ad98
commit
52fbd5d6bd
53
README.md
53
README.md
|
@ -12,9 +12,58 @@ It supports concurrently downloading posts, and you can set a maximum number of
|
|||
|
||||
I made this because I wanted to rewrite one of my previous projects in Go, so I decided to start with this one since it's a pretty small and simple command line tool that encapsulates a lot of concepts in the language (type definition, imports, goroutines, standard libraries, slices, to name a few).
|
||||
|
||||
## Installing, Building, etc.
|
||||
## Installing
|
||||
|
||||
See [here](https://github.com/tjhorner/nplcsv/blob/master/README.md) since it uses the same Makefile.
|
||||
### Prebuilt Binaries
|
||||
|
||||
There is an install script available for Linux/macOS [here](https://github.com/tjhorner/e6dl/blob/master/install.sh). It automatically grabs the latest release (at the time of writing) and saves to `/usr/local/bin/e6dl`.
|
||||
|
||||
### From Source
|
||||
|
||||
Clone repo.
|
||||
|
||||
```bash
|
||||
# Build e6dl then install it to /usr/local/bin
|
||||
make install
|
||||
```
|
||||
|
||||
You can also install it to a custom path of your choosing:
|
||||
|
||||
```bash
|
||||
make install INSTALLPATH="/bin"
|
||||
```
|
||||
|
||||
If you wanna get rid of it:
|
||||
|
||||
```bash
|
||||
make uninstall
|
||||
```
|
||||
|
||||
## Building
|
||||
|
||||
First, install Go.
|
||||
|
||||
Then just:
|
||||
|
||||
```bash
|
||||
make build
|
||||
```
|
||||
|
||||
`bin/e6dl` will magically appear. You can also just:
|
||||
|
||||
```bash
|
||||
go run main.go
|
||||
```
|
||||
|
||||
To distribute:
|
||||
|
||||
```bash
|
||||
make dist
|
||||
```
|
||||
|
||||
3 files will be spit out in the `dist` directory - one for Windows, one for macOS, and one for Linux.
|
||||
|
||||
You can also run `make dist-win`, `make dist-macos`, or `make dist-linux` to build them individually.
|
||||
|
||||
## Example
|
||||
|
||||
|
|
10
e621/e621.go
10
e621/e621.go
|
@ -5,6 +5,7 @@ import (
|
|||
"io/ioutil"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Post represents an e621 post object returned by the e621 API.
|
||||
|
@ -43,8 +44,13 @@ type Post struct {
|
|||
// SerializedDate represents a serialized date passed via JSON
|
||||
type SerializedDate struct {
|
||||
JSONClass string `json:"json_class"`
|
||||
Seconds int `json:"s"`
|
||||
Nanoseconds int `json:"n"`
|
||||
Seconds int64 `json:"s"`
|
||||
Nanoseconds int64 `json:"n"`
|
||||
}
|
||||
|
||||
// Time returns a time.Time object representing the SerializedDate
|
||||
func (date *SerializedDate) Time() time.Time {
|
||||
return time.Unix(0, date.Nanoseconds)
|
||||
}
|
||||
|
||||
// GetPostsForTags gets a list of e621 Posts
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
#!/bin/bash
|
||||
|
||||
latest_release="v0.0.5"
|
||||
|
||||
case $(uname -s) in
|
||||
Darwin*) os="darwin";;
|
||||
Linux*) os="linux";;
|
||||
*)
|
||||
echo "Unsupported system type! Please build directly from source."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
case $(uname -m) in
|
||||
x86_64*) arch="amd64";;
|
||||
*)
|
||||
echo "Unsupported processor architecture! Please build directly from source."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "Detected system: $os, $arch"
|
||||
echo "Downloading binary for release $latest_release from GitHub..."
|
||||
|
||||
url="https://github.com/tjhorner/e6dl/releases/download/$latest_release/e6dl-$os-$arch"
|
||||
|
||||
curl $url -Lo /usr/local/bin/e6dl
|
||||
chmod +x /usr/local/bin/e6dl
|
||||
|
||||
echo "Done! Installed to /usr/local/bin/e6dl. Simply remove this binary to uninstall."
|
Loading…
Reference in New Issue