{"id":16526844,"url":"https://github.com/silverbucket/guppy-irc","last_synced_at":"2025-10-28T10:30:35.932Z","repository":{"id":148328653,"uuid":"14963909","full_name":"silverbucket/guppy-irc","owner":"silverbucket","description":"tiny embeddable IRC client","archived":false,"fork":false,"pushed_at":"2014-09-09T18:24:28.000Z","size":558,"stargazers_count":11,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-03T15:41:01.731Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/silverbucket.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-12-05T19:47:03.000Z","updated_at":"2024-09-26T01:01:11.000Z","dependencies_parsed_at":"2023-03-28T00:33:37.660Z","dependency_job_id":null,"html_url":"https://github.com/silverbucket/guppy-irc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/silverbucket/guppy-irc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silverbucket%2Fguppy-irc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silverbucket%2Fguppy-irc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silverbucket%2Fguppy-irc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silverbucket%2Fguppy-irc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/silverbucket","download_url":"https://codeload.github.com/silverbucket/guppy-irc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silverbucket%2Fguppy-irc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281424580,"owners_count":26499020,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T17:30:23.556Z","updated_at":"2025-10-28T10:30:35.605Z","avatar_url":"https://github.com/silverbucket.png","language":"JavaScript","readme":"Guppy IRC\n=========\n\nA tiny embeddable IRC client, using the open-source [sockethub service](http://sockethub.org).\n\n![Guppy IRC](https://raw.github.com/silverbucket/guppy-irc/master/logo/guppy-irc-logo.png)\n\n## Use\n\nTo use guppy-irc you must include a few `.js` files and define the guppy widget:\n\n```html\n  \u003clink rel=\"stylesheet\" href=\"guppy-irc.css\" /\u003e\n  ...\n  \u003cguppy-irc id=\"myGuppy\"\n             data-title=\"Welcome to Guppy IRC\"\n             data-width=\"640\"\n             data-height=\"380\"\n             data-server=\"\u003circ_server\u003e\"\n             data-channel=\"\u003c#irc_channel\u003e\"\n             data-nick=\"guppy\"\n             data-enable-nick-change=\"\u003ctrue|false\u003e\"\n             data-enable-history=\"\u003ctrue|false\u003e\"\n             data-enable-user-list=\"\u003ctrue|false\u003e\"\n             data-display-name=\"Guppy Example User\"\n             data-password=\"\"\n             data-autoconnect=\"\u003ctrue|false\u003e\"\n             data-sockethub-host=\"\u003csockethub_hostname\u003e\"\n             data-sockethub-port=\"\u003cport_number\u003e\"\n             data-sockethub-tls=\"\u003ctrue|false\u003e\"\n             data-sockethub-path=\"/\u003curi_path\u003e\"\n             data-sockethub-secret=\"\u003cregister_string\u003e\" /\u003e\n\n  ...\n  \u003cscript src=\"sockethub-client.js\"\u003e\u003c/script\u003e\n  \u003cscript src=\"guppy-irc.js\"\u003e\u003c/script\u003e\n  ...\n```\n\nYou can assign already defined elements to pieces of the UI by assigning the\nelements with special div names.\n\nThe naming convention takes the ID you've assigned to your guppy widget **(in\nthe above case `myGuppy`)** and adds the component suffix. For example\n\n```html:\n\u003cfooter id=\"myGuppy-controls\"\u003e\u003c/footer\u003e\n```\n\nList of valid suffixes:\n\n* `-controls` - This includes the input to write messages and send button.\n\n* `-user-list` - This is the side-bar list of users.\n\n* `-info` - This contains the input to change nickname and the send button.\n\n## Dependencies\n\nGuppy IRC uses Sockethub for IRC connectivity, and therefore has the following\ndependencies:\n\n* [sockethub-client.js](http://github.com/sockethub/sockethub-client)\n\n* A running [Sockethub](http://github.com/sockethub/sockethub) instance.\n\n## Features\n\n* Fully customizable behavior via data attributes on the HTML widget. All\n  rendered elements contain unique CSS class names for complete skinnability.\n\n* Chat history saved into localStorage so you don't loose your context upon\n  page reload.\n\n* Uses Sockethub's persisting connection feature, meaning a page refresh does\n  not disconnect you and you can continue where you left off. (If you browse\n  away from the page, and you have no sessions using the connect, it will\n  eventually time-out after 60 seconds max).\n\n* Can embed more than one widget on a page without clashes.\n\n* Basic nick-changing ability\n\n* Keeps a running tab of users in a room (see below for current limitations)\n\n#### Missing\n\n* Currently the room you join is hard-coded in the widget data attributes and\n  you cannot change/add rooms within the widget. It's possible to do this with\n  Sockethub, but Guppy IRC is meant to be very simple and the interface does\n  not make sense of multiple rooms. Feel free to extend!\n\n* User lists currently have some limitations due to an incomplete `node-irc`\n  module. So when you refresh you can loose your user list, and can't ask for\n  an update. This should hopefully be fixed soon.\n\n## Status\n\nGuppy IRC currently has basic functionality. You can connect to a channel, and\nsend/receive messages. The UI is intentially bare-bones and meant to be stylized\nand customized as an embedded IRC widget.\n\nAlso, the Sockethub IRC platform is still under heavy development, as it becomes\nmore stable and feature-rich so should Guppy.\n\n## Example\n\n### Live demo\n\nYou can try out Guppy IRC, which is connecting to a public sockethub instance\nand automatically connects to the #sockethub channel, here:\n\n[http://silverbucket.github.io/guppy-irc/example/](http://silverbucket.github.io/guppy-irc/example/)\n\n\n### Run your own demo\n\nTo get the Guppy IRC example up and running, do the following.\n\n    $ git clone https://github.com/silverbucket/guppy-irc.git\n    $ cd guppy-irc\n    $ git submodule update --init\n    $ python -M SimpleHTTPServer 8000\n\nThen browse to `localhost:8000/example`, you should see the example load in your\nbrowser.\n\n## CSS Elements\n\nThe following is a list of all the css elements for a guppy-irc widget. Allowing\nyou to create your own theme css files.\n\n#### parent container\n\n  `.guppy-irc-container` - parent container of widget contents.\n\n\n#### title\n\n  * `.guppy-irc-title-container` - div containing title\n\n  * `.guppy-irc-title` - actual title element (an *h1* tag)\n\n\n#### info\n\n  * `.guppy-irc-info-container` - contains information text, nickname information\n\n##### nickname\n\n  * `.guppy-irc-nick-change-input-container`\n\n  * `.guppy-irc-nick-change-input`\n\n  * `.guppy-irc-nick-change-submit-container`\n\n  * `.guppy-irc-nick-change-submit`\n\n#### middle area container\n\n  * `.gupper-irc-middle-container`\n\n#### messages\n\n  * `.guppy-irc-messages-container` - container of all messages\n\n  * `.guppy-irc-message-line` - a single message line\n\n  * `.guppy-irc-message-nick` - the nick of a message\n\n  * `.guppy-irc-message-nick-decorator` - the decorator (ie. : separator) of the nick -\u003e text\n\n##### history\nPrevious messages will maintain their classes but be inserted into the history container.\n\n  * `.guppy-irc-messages-history-container`\n\n##### - messages addressed to you\nThe same assignments as above except only added to elements where the text contains your IRC nick.\n\n  * `.guppy-irc-message-line-to-me`\n\n  * `.guppy-irc-message-nick-to-me`\n\n  * `.guppy-irc-message-nick-decorator-to-me`\n\n  * `.guppy-irc-message-nick-to-me`\n\n#### user list\n\n  * `.guppy-irc-user-list-container`\n\n  * `.guppy-irc-user-list-entry`\n\n#### controls\nThe various inputs, buttons, etc.\n\n  * `.guppy-irc-controls-container` - contains all controls\n\n  * `.guppy-irc-message-input-container` - the input container\n\n  * `.guppy-irc-message-input` - input form element\n\n  * `.guppy-irc-message-submit-button-container` - send buttong container\n\n  * `.guppy-irc-message-submit-button` - submit button element *(not functional yet)*\n\n#### system messages\nWhen Guppy needs to speak, it prints out messages in the message container.\n\n  * `.guppy-irc-error-line` - line containing error message\n\n  * `.guppy-irc-status-line` - line containing status message\n\n### Multiple widgets per-page\n\n**NOTE**: Each widget's id tag also serves as it's own namespaced set of CSS\nrules, allowing you to stylize multiple consoles on the same page differently.\n\nSo, while `.guppy-irc-message-container` applies to any Guppy widget,\n`.guppy-irc-myGuppy-message-container` applies only to the Guppy widget\ninstance with that `id` tag value of `myGuppy`.\n\n\ncredits\n-------\n\nDeveloped by [Nick Jennings](http://github.com/silverbucket)\n\nSponsored by [NLNET](http://nlnet.nl)\n\n[![NLNET Logo](http://sockethub.org/img/nlnet-logo.svg)](http://nlnet.nl)\n\n\n\n\n[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/silverbucket/guppy-irc/trend.png)](https://bitdeli.com/free \"Bitdeli Badge\")\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilverbucket%2Fguppy-irc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsilverbucket%2Fguppy-irc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilverbucket%2Fguppy-irc/lists"}