diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..ea1c34f --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,14 @@ +version: 2 + +updates: + # Maintain dependencies for Go modules + - package-ecosystem: "gomod" + directory: "/" + schedule: + interval: "daily" + + # Maintain dependencies for GitHub Actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..042d51a --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,20 @@ +name: lint + +on: + pull_request: + push: + +jobs: + golangci: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.16 + - name: GolangCi Lint + uses: golangci/golangci-lint-action@v2 + with: + version: latest diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..aa441f2 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,27 @@ +name: goreleaser + +on: + pull_request: + push: + +permissions: + contents: write + +jobs: + goreleaser: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.16 + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v2 + with: + distribution: goreleaser + version: latest + args: release --rm-dist + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitpod.yml b/.gitpod.yml index c51da04..85bf0ac 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,8 +1,8 @@ ports: - port: 8080 -checkoutLocation: "go/src/cdn" -workspaceLocation: "go/src/cdn" +checkoutLocation: "go/src/screenshot" +workspaceLocation: "go/src/screenshot" vscode: extensions: diff --git a/.goreleaser.yml b/.goreleaser.yml new file mode 100644 index 0000000..1c8bec4 --- /dev/null +++ b/.goreleaser.yml @@ -0,0 +1,22 @@ +project_name: screenshot + +before: + hooks: + - go mod tidy + +builds: + - goos: + - linux + goarch: + - amd64 + + binary: '{{ .ProjectName }}.out' + +archives: + - format: tar.gz + + files: + - none* + +checksum: + name_template: 'checksums.txt' diff --git a/go.mod b/go.mod index 06f29f3..0dd1e6f 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,8 @@ module gitlab.com/gaming0skar123/go/screenshot go 1.16 + +require ( + github.com/gtuk/discordwebhook v1.0.0 + gitlab.com/gaming0skar123/go/modules/imgur v0.0.1-alpha.3 +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..8bb6923 --- /dev/null +++ b/go.sum @@ -0,0 +1,4 @@ +github.com/gtuk/discordwebhook v1.0.0 h1:xY21mwzScQQZeVkAPMQTB/XHIBx1lkjLeg7aALzTfOk= +github.com/gtuk/discordwebhook v1.0.0/go.mod h1:U3LdXNJ1e0bx3MMe2a4mB1VBantPHOPly2jNd8ZWXec= +gitlab.com/gaming0skar123/go/modules/imgur v0.0.1-alpha.3 h1:UKH8ZURQNfyav+cMpyjrf/WPkb7sLJiPUnezKlmQrX4= +gitlab.com/gaming0skar123/go/modules/imgur v0.0.1-alpha.3/go.mod h1:Y8l7x4FzTVYVgQXCZJOMs8H7eDzlEyxhTBhW6FEr5Bo= diff --git a/imgur/client.go b/imgur/client.go new file mode 100644 index 0000000..2373d72 --- /dev/null +++ b/imgur/client.go @@ -0,0 +1,16 @@ +package imgur + +import ( + "net/http" + "os" + + "gitlab.com/gaming0skar123/go/modules/imgur" +) + +var client *imgur.Client + +func init() { + client = new(imgur.Client) + client.HTTPClient = new(http.Client) + client.ImgurClientID = os.Getenv("IMGUR_CLIENT_ID") +} diff --git a/imgur/upload.go b/imgur/upload.go new file mode 100644 index 0000000..046622c --- /dev/null +++ b/imgur/upload.go @@ -0,0 +1,16 @@ +package imgur + +import ( + "log" + + "gitlab.com/gaming0skar123/go/modules/imgur" +) + +func Upload(path string) *imgur.ImageInfoData { + i, _, err := client.UploadImageFromFile(path, "") + if err != nil { + log.Fatal("Error uploading image: " + err.Error()) + } + + return i +} diff --git a/main.go b/main.go new file mode 100644 index 0000000..e2fbeac --- /dev/null +++ b/main.go @@ -0,0 +1,42 @@ +package main + +import ( + "flag" + "fmt" + "log" + "os" + + "github.com/gtuk/discordwebhook" + "gitlab.com/gaming0skar123/go/screenshot/imgur" +) + +var color = "1127128" + +func main() { + var file string + flag.StringVar(&file, "f", "", "File location") + + flag.Parse() + + if file == "" { + log.Fatal("Empty file arg") + } + + i := imgur.Upload(file) + + fmt.Println("Uploaded!") + + webhook := os.Getenv("DISCORD_WEBHOOK_URL") + + discordwebhook.SendMessage(webhook, discordwebhook.Message{ + Embeds: &[]discordwebhook.Embed{ + { + Title: &i.Data.Link, + Color: &color, + Image: &discordwebhook.Image{ + Url: &i.Data.Link, + }, + }, + }, + }) +}