diff options
| author | 2024-03-06 09:05:45 -0800 | |
|---|---|---|
| committer | 2024-03-06 18:05:45 +0100 | |
| commit | fc3741365c27f1d703e8a736af95b95ff811cc45 (patch) | |
| tree | 929f1d5e20d1469d63a3dfe81d38d89f9a073c5a /vendor/github.com/toqueteos | |
| parent | [chore/bugfix] Little DB fixes (#2726) (diff) | |
| download | gotosocial-fc3741365c27f1d703e8a736af95b95ff811cc45.tar.xz | |
[bugfix] Fix Swagger spec and add test script (#2698)
* Add Swagger spec test script
* Fix Swagger spec errors not related to statuses with polls
* Add API tests that post a status with a poll
* Fix creating a status with a poll from form params
* Fix Swagger spec errors related to statuses with polls (this is the last error)
* Fix Swagger spec warnings not related to unused definitions
* Suppress a duplicate list update params definition that was somehow causing wrong param names
* Add Swagger test to CI
- updates Drone config
- vendorizes go-swagger
- fixes a file extension issue that caused the test script to generate JSON instead of YAML with the vendorized version
* Put `Sample: ` on its own line everywhere
* Remove unused id param from emojiCategoriesGet
* Add 5 more pairs of profile fields to account update API Swagger
* Remove Swagger prefix from dummy fields
It makes the generated code look weird
* Manually annotate params for statusCreate operation
* Fix all remaining Swagger spec warnings
- Change some models into operation parameters
- Ignore models that already correspond to manually documented operation parameters but can't be trivially changed (those with file fields)
* Documented that creating a status with scheduled_at isn't implemented yet
* sign drone.yml
* Fix filter API Swagger errors
* fixup! Fix filter API Swagger errors
---------
Co-authored-by: tobi <tobi.smethurst@protonmail.com>
Diffstat (limited to 'vendor/github.com/toqueteos')
| -rw-r--r-- | vendor/github.com/toqueteos/webbrowser/.travis.yml | 9 | ||||
| -rw-r--r-- | vendor/github.com/toqueteos/webbrowser/CONTRIBUTING.md | 11 | ||||
| -rw-r--r-- | vendor/github.com/toqueteos/webbrowser/LICENSE.md | 19 | ||||
| -rw-r--r-- | vendor/github.com/toqueteos/webbrowser/README.md | 56 | ||||
| -rw-r--r-- | vendor/github.com/toqueteos/webbrowser/webbrowser.go | 137 |
5 files changed, 232 insertions, 0 deletions
diff --git a/vendor/github.com/toqueteos/webbrowser/.travis.yml b/vendor/github.com/toqueteos/webbrowser/.travis.yml new file mode 100644 index 000000000..b55b114ab --- /dev/null +++ b/vendor/github.com/toqueteos/webbrowser/.travis.yml @@ -0,0 +1,9 @@ +language: go + +go: + - 1.2 + - 1.12 + - tip + +script: + - go build ./... diff --git a/vendor/github.com/toqueteos/webbrowser/CONTRIBUTING.md b/vendor/github.com/toqueteos/webbrowser/CONTRIBUTING.md new file mode 100644 index 000000000..b9f7bf82a --- /dev/null +++ b/vendor/github.com/toqueteos/webbrowser/CONTRIBUTING.md @@ -0,0 +1,11 @@ +# webbrowser contributing guide + +Any changes are welcomed! + +1. Be nice. +2. Don't be afraid to ask, but please try search first. + +## Looking for contact info? + +- Twitter: [@toqueteos](https://twitter.com/toqueteos) +- Mail: `toqueteos AT gmail DOT com` diff --git a/vendor/github.com/toqueteos/webbrowser/LICENSE.md b/vendor/github.com/toqueteos/webbrowser/LICENSE.md new file mode 100644 index 000000000..0d67949ef --- /dev/null +++ b/vendor/github.com/toqueteos/webbrowser/LICENSE.md @@ -0,0 +1,19 @@ +The MIT License (MIT) +Copyright (c) 2013-19 by Carlos Cobo and contributors. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/toqueteos/webbrowser/README.md b/vendor/github.com/toqueteos/webbrowser/README.md new file mode 100644 index 000000000..2ce091afb --- /dev/null +++ b/vendor/github.com/toqueteos/webbrowser/README.md @@ -0,0 +1,56 @@ +# webbrowser [](https://travis-ci.org/toqueteos/webbrowser) [](http://godoc.org/github.com/toqueteos/webbrowser) [](https://sourcegraph.com/github.com/toqueteos/webbrowser?badge)
+
+webbrowser provides a simple API for opening web pages on your default browser.
+
+It's inspired on [Python's webbrowser](http://docs.python.org/3/library/webbrowser.html) package but lacks some of its features (open new window).
+
+It just opens a webpage, most browsers will open it on a new tab.
+
+## Installation
+
+As simple as:
+
+```bash
+go get -u github.com/toqueteos/webbrowser
+```
+
+## Usage
+
+```go
+package main
+
+import "github.com/toqueteos/webbrowser"
+
+func main() {
+ webbrowser.Open("http://golang.org")
+}
+```
+
+That's it!
+
+## Crossplatform support
+
+The package works on:
+
+- [x] `android` (verified by 3rd party)
+- [x] `darwin`
+- [x] `freebsd` (verified by 3rd party)
+- [x] `linux`
+- [x] `netbsd` (verified by 3rd party)
+- [x] `openbsd` (verified by 3rd party)
+- [x] `windows`
+
+## License
+
+It is licensed under the MIT open source license, please see the [LICENSE.md](https://github.com/toqueteos/webbrowser/blob/master/LICENSE.md) file for more information.
+
+## Thanks...
+
+Miki Tebeka wrote a nicer version that wasn't on godoc.org when I did this, [check it out!](https://bitbucket.org/tebeka/go-wise/src/d8db9bf5c4d1/desktop.go?at=default).
+
+## Already disliking it?
+
+No problem! There's alternative libraries that may be better to your needs:
+
+- https://github.com/pkg/browser, it does what webbrowser does and more!
+- https://github.com/skratchdot/open-golang, it even provides a `xdg-open` implementation in case you don't have it!
diff --git a/vendor/github.com/toqueteos/webbrowser/webbrowser.go b/vendor/github.com/toqueteos/webbrowser/webbrowser.go new file mode 100644 index 000000000..f4f19b6b3 --- /dev/null +++ b/vendor/github.com/toqueteos/webbrowser/webbrowser.go @@ -0,0 +1,137 @@ +// Package webbrowser provides a simple API for opening web pages on your +// default browser. +package webbrowser + +import ( + "errors" + "fmt" + "net/url" + "os" + "os/exec" + "runtime" + "strings" +) + +var ( + ErrCantOpenBrowser = errors.New("webbrowser: can't open browser") + ErrNoCandidates = errors.New("webbrowser: no browser candidate found for your OS") +) + +// Candidates contains a list of registered `Browser`s that will be tried with Open. +var Candidates []Browser + +type Browser interface { + // Command returns a ready to be used Cmd that will open an URL. + Command(string) (*exec.Cmd, error) + // Open tries to open a URL in your default browser. NOTE: This may cause + // your program to hang until the browser process is closed in some OSes, + // see https://github.com/toqueteos/webbrowser/issues/4. + Open(string) error +} + +// Open tries to open a URL in your default browser ensuring you have a display +// set up and not running this from SSH. NOTE: This may cause your program to +// hang until the browser process is closed in some OSes, see +// https://github.com/toqueteos/webbrowser/issues/4. +func Open(s string) (err error) { + if len(Candidates) == 0 { + return ErrNoCandidates + } + + // Try to determine if there's a display available (only linux) and we + // aren't on a terminal (all but windows). + switch runtime.GOOS { + case "linux": + // No display, no need to open a browser. Lynx users **MAY** have + // something to say about this. + if os.Getenv("DISPLAY") == "" { + return fmt.Errorf("webbrowser: tried to open %q, no screen found", s) + } + fallthrough + case "darwin": + // Check SSH env vars. + if os.Getenv("SSH_CLIENT") != "" || os.Getenv("SSH_TTY") != "" { + return fmt.Errorf("webbrowser: tried to open %q, but you are running a shell session", s) + } + } + + // Try all candidates + for _, candidate := range Candidates { + err := candidate.Open(s) + if err == nil { + return nil + } + } + + return ErrCantOpenBrowser +} + +func init() { + // Register the default Browser for current OS, if it exists. + if os, ok := osCommand[runtime.GOOS]; ok { + Candidates = append(Candidates, browserCommand{os.cmd, os.args}) + } +} + +var ( + osCommand = map[string]*browserCommand{ + "android": &browserCommand{"xdg-open", nil}, + "darwin": &browserCommand{"open", nil}, + "freebsd": &browserCommand{"xdg-open", nil}, + "linux": &browserCommand{"xdg-open", nil}, + "netbsd": &browserCommand{"xdg-open", nil}, + "openbsd": &browserCommand{"xdg-open", nil}, // It may be open instead + "windows": &browserCommand{"cmd", []string{"/c", "start"}}, + } + winSchemes = [3]string{"https", "http", "file"} +) + +type browserCommand struct { + cmd string + args []string +} + +func (b browserCommand) Command(s string) (*exec.Cmd, error) { + u, err := url.Parse(s) + if err != nil { + return nil, err + } + + validUrl := ensureValidURL(u) + + b.args = append(b.args, validUrl) + + return exec.Command(b.cmd, b.args...), nil +} + +func (b browserCommand) Open(s string) error { + cmd, err := b.Command(s) + if err != nil { + return err + } + + return cmd.Run() +} + +func ensureScheme(u *url.URL) { + for _, s := range winSchemes { + if u.Scheme == s { + return + } + } + u.Scheme = "http" +} + +func ensureValidURL(u *url.URL) string { + // Enforce a scheme (windows requires scheme to be set to work properly). + ensureScheme(u) + s := u.String() + + // Escape characters not allowed by cmd/bash + switch runtime.GOOS { + case "windows": + s = strings.Replace(s, "&", `^&`, -1) + } + + return s +} |
