Coder Social home page Coder Social logo

gobol's Introduction

gobol (گوبول)

A simple console based, cross-platform chat application. gobol is a compound of Go (the language) and bol/(بول) - the Urdu word for "talk", pronounced 'bole'.

Installation

You need to have Go installed and properly set up to build from source. Type:

>> go get github.com/hazrmard/gobol

And the executable should appear in your workspace's bin directory. You can then add it to your PATH for convenience.

Use

Start the application by typing:

>> gobol.exe -u "AlphanumericUsername" -p PORT_NUMBER

You can send messages to all added users by typing the message and hitting enter.

gobol has a built-in command interface. All commands are preceded by \\.

To add a user:

\\ add USERNAME@HOST:PORT

Where HOST is IP (IPv4 or IPv6) address of the target user, and PORT is the port number their instance of gobol is listening on. Multiple users can be added and any messages typed will be sent to all added users. The user for any incoming message is automatically added to chat participants. So if you, A, add B and send a message, B will automatically add you to their list.

Similarly, to remove a user:

\\ remove USERNAME

Note, this does not prevent the user from sending you messages. It only prevents your messages from being transmitted to the user.

To block a user, type any one of:

\\ block user USERNAME
\\ block ip IP_ADDRESS
\\ block port PORT_NUMBER

To unblock, replace block with unblock. Blocked users cannot send you messages. Nor can you message a blocked user (except for targeted messages). A blocked user does not know if it's blocked.

To send a targeted message:

@USERNAME @OTHERUSERNAME Hey, this is a targeted message.

Targeted messages are only seen by the users they are addressed to. The messages appear with the @USERNAME part so recipients know it is a targeted message.

To get a list of all users added to chat session:

\\ list

To quit, press Ctrl+Q.

Under the hood

gobol control flow

BTW

gobol is my first Go project. I started working on it midway through A Tour of Go. I find that having an idea to work on, instead of ploughing through "Hello World" examples, provides motivation to further learn a language. Especially if you are familiar with other languages.

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.