Giter Site home page Giter Site logo

thehowl / claws Goto Github PK

View Code? Open in Web Editor NEW
296.0 11.0 18.0 1.78 MB

Awesome WebSocket CLient - an interactive command line client for testing websocket servers

License: MIT License

Go 100.00%
websockets websocket-client cli command-line-app debugging gocui websocket

claws's People

Contributors

bourgeoisbear avatar davidelettieri avatar sl1pm4t avatar thehowl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

claws's Issues

Log scrolling

When in ESC mode, Up, Down, PgUp, PgDown should be used for scrolling through the log. Also, scrolling using the mouse wheel would be nice.

Distro packaging

Would be nice to have this properly packaged. I'm thinking of doing debian and AUR at least.

Message piping

Enable with <ESC>p for messages received from server, with <ESC>P for messages sent from client, this disables automatically JSON formatting and JSON composing, and it gives the ability to pipe the messages to a command (to be executed with bash if possible) giving the message in stdin, and receiving what to show on stdout (and an eventual error to be shown with state.Error on stderr).

WS Ping

Would you accept a pull request for an option to enable websocket pings from claws w/ configurable interval?

Searching

Search through the logs. Of course, this would be enabled with <ESC>/.

Windows - 10: always : panic: The parameter is incorrect.

        panic: The parameter is incorrect.
        panic: The parameter is incorrect.

goroutine 1 [running]:
github.com/thehowl/claws/vendor/github.com/nsf/termbox-go.move_cursor(0x2, 0x26)
        /home/travis/gopath/src/github.com/thehowl/claws/vendor/github.com/nsf/termbox-go/termbox_windows.go:592 +0x75 github.com/thehowl/claws/vendor/github.com/nsf/termbox-go.Flush(0xc000000000, 0x0)
        /home/travis/gopath/src/github.com/thehowl/claws/vendor/github.com/nsf/termbox-go/api_windows.go:120 +0x10c
github.com/thehowl/claws/vendor/github.com/nsf/termbox-go.Close()
        /home/travis/gopath/src/github.com/thehowl/claws/vendor/github.com/nsf/termbox-go/api_windows.go:78 +0x39
github.com/thehowl/claws/vendor/github.com/jroimartin/gocui.(*Gui).Close(0xc0420f8090)
        /home/travis/gopath/src/github.com/thehowl/claws/vendor/github.com/jroimartin/gocui/gui.go:96 +0x27
panic(0x67ca40, 0xc0421b0000)
        /home/travis/.gimme/versions/go1.10.linux.amd64/src/runtime/panic.go:505 +0x237
github.com/thehowl/claws/vendor/github.com/nsf/termbox-go.move_cursor(0x2, 0x26)
        /home/travis/gopath/src/github.com/thehowl/claws/vendor/github.com/nsf/termbox-go/termbox_windows.go:592 +0x75 github.com/thehowl/claws/vendor/github.com/nsf/termbox-go.clear()
        /home/travis/gopath/src/github.com/thehowl/claws/vendor/github.com/nsf/termbox-go/termbox_windows.go:629 +0x121

github.com/thehowl/claws/vendor/github.com/nsf/termbox-go.update_size_maybe()
        /home/travis/gopath/src/github.com/thehowl/claws/vendor/github.com/nsf/termbox-go/termbox_windows.go:451 +0xc5 github.com/thehowl/claws/vendor/github.com/nsf/termbox-go.Clear(0x0, 0x0, 0x0)
        /home/travis/gopath/src/github.com/thehowl/claws/vendor/github.com/nsf/termbox-go/api_windows.go:187 +0x41
github.com/thehowl/claws/vendor/github.com/jroimartin/gocui.(*Gui).flush(0xc0420f8090, 0x0, 0x0)
        /home/travis/gopath/src/github.com/thehowl/claws/vendor/github.com/jroimartin/gocui/gui.go:423 +0x43
github.com/thehowl/claws/vendor/github.com/jroimartin/gocui.(*Gui).MainLoop(0xc0420f8090, 0x0, 0x0)
        /home/travis/gopath/src/github.com/thehowl/claws/vendor/github.com/jroimartin/gocui/gui.go:384 +0x22b
main.main()
        /home/travis/gopath/src/github.com/thehowl/claws/main.go:33 +0x1da

Move to tcell

Due to the fact that we can pretty much replicate the few gocui features we use in probably a few hundreds lines of code, in order to have more control it'd be good to move to tcell, since it also has some pretty nice advantages, such as being more portable and not requiring clever hacks so that code is run on the main thread.

JSON composing

Can be activated with <ESC>J, it enables composing json in the textfield with ease, and it is persistent (like replace mode)

key=value
{"key":"value"}
key="value"
{"key":"value"}
key=true
{"key":true}
key="true"
{"key":"true"}
key=1
{"key":1}
key="1"
{"key":"1"}
a=a b=b
{"a":"a","b":"b"}
[1, 2, 3]
[1,2,3]
[a=a, b=b c=c]
[{"a":"a"},{"b":"b","c":"c"}]
[a, b, c]
["a","b","c"]
a
"a"
a=[1, 2, 3]
{"a":[1,2,3]}

Edge cases will be figured out as we go

Record, export & reproduce commands

The ability to start recording the commands, stop recording, export commands to a file, and reproduce the commands (sort of automatic testing?)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.