#2 IRC Integration
Opened 4 years ago by decause. Modified 2 years ago

IRC Overview

This issue is intended to provide an overview of the IRC integration feature of Fedora Hubs and
to act as a tracker for the sub-tasks required to implement the described feature.

Fedora Hubs should integrate with IRC so that new contributors can interact
with IRC and its many users without the hassle of setting up a client or
dealing with an IRC bouncer. It is important that this integration is strictly
opt-in and maps to the existing IRC workflow so long-time contributors don't
feel that they must use Hubs or nothing.

Features

As a Hubs user, I would like to be able to interact with IRC using the Fedora
Hubs web interface. It should should offer similar features as an IRC client
used in combination with an IRC bouncer. That is, it should be able to do
the following:

  • Allow the user to send and receive messages on public irc channels that have been configured
    by the administrator of a hub.

  • Provide a limited channel scrollback (a chat history) so users can see what conversations
    occurred while they were away. This scrollback limit should be configurable for the Hubs
    server administrator.

  • It should support sending and receiving private messages

Interaction

There are two types of users that will interact with the IRC features of Hubs. The first is the
Hub administrator, who creates and configures the IRC widgets for a Hub. The second is a
Hubs users, who uses the widgets the Hubs administrator set up.

Hubs Administrator

As a Hubs administrator, I would like to be able to configure my Hub page to
have zero or more IRC channels associated with it, and for these to be displayed
in a useful way to the Hub users. This is a mock-up of what the Hub admin would
see when editing an IRC widget:

irc-channel-edit.png

Hubs User

  • Visiting a Hub (for example, the Apps Team Hub) would display, among other
    other things, a widget containing the #fedora-apps IRC channel on
    Freenode. Each Hub can map to zero or more IRC channels. Each widget
    maps to a single IRC channel, so if a Hub wants multiple channels they
    must create multiple widgets. Below is a mock-up of how a widget would
    appear to the user.

ircpm_5.png

  • I am able to receive IRC private messages on the network the Hubs application
    is configured to use (very likely FreeNode in all cases) and respond to those
    messages. Further, I am able to initiate private messages to other users on that
    network. This would occur on a dedicated page.

Here's the widget in edit mode (what the hubadmin sees when adding it to a hub)

irc-channel-edit.png

Here's the widget in edit mode (what the hubadmin sees when adding it to a hub)

irc-channel-edit.png

More mockups needed for this widget:

  • a 'mentions' tab where you can view mentions of your nick in the channel since the last time you've been there. We'll show the last 10 mentions and no further back.

  • a notification that someone has mentioned you in-channel (if you are on the same hub you're mentioned in, it'll appear in the IRC widget, otherwise it'll be on the hub tab). the irc widget notification should be dismissed when the user focuses on the irc widget (eg clicking on the text box)

Mentions tab vs main channel tab
ircpm_5.png

Mentions tab vs main channel tab
ircpm_5.png

Mentions tab vs main channel tab

Can dismiss mentions. Clicking 'go to mentions' will ideally go back to main tab and scroll back to relevant area of conversation.

This seems to be an interesting issue. I would like to work on this one. Could i have some pointers to get started? Can we use waartaa (www.waartaa.com) for this one? Its written in JS.

For anyone interested in working on sketching out the implementation of this, please talk to @rtnpro and @sayanchowdhury. They've been working on a new znc backend for waartaa that we'd like to use here called ircb.

Mention of Ircb makes my eyes glitter ;)

We are tracking the issues in the Waartaa Trello board https://trello.com/b/RetFEvn2/waartaa.

Some additional specification:

Note the narrative for this feature here - IRC is very integrated with Hubs. Some points:

  • By default, IRC is not enabled for a given user in hubs. Any IRC widgets on hubs will be greyed out and have a little promo to encourage the user to opt-in with a widget / button / switch for them to enable it. This should also have the caveat they should be logged out of any proxies / etc before they do it (otherwise we'll knock their proxy out.

  • FAS accounts have a field for storing IRC nick. They do not have a field for freenode credentials. We probably should have such a field?

  • Upon activation (which is from a single hub IRC widget), we will create an ircb user for them, log the user on to their given freenode nick in FAS, and have them join the channel corresponding to the hub they are on. If they would like to join additional channels, they'll need to enable them from each respective hub page's IRC widget.

  • If a user does not have a nick in FAS, we will prompt them to either provide their registered freenode nick (maybe don't accept unregistered nicks in the dialog?) and guide them through nick selection and registration. We need mockups for this.

  • Each IRC widget has a 1:1 mapping with an IRC channel. You cant switch channels from inside the widget. The hubs admin determines, when adding the IRC widget to their hub, what channel the widget is going to display. If a hub wants more than one channel displayed (likely a very rare case) they will need one widget channel.

Metadata Update from @sayanchowdhury:
- Issue untagged with: milestone
- Issue set to the milestone: Flock 2017

2 years ago

Metadata Update from @decause:
- Issue unmarked as blocking: #290
- Issue unmarked as blocking: #291
- Issue unmarked as blocking: #292
- Issue unmarked as blocking: #293
- Issue marked as blocking: #27
- Issue marked as blocking: #290
- Issue marked as blocking: #291
- Issue marked as blocking: #292
- Issue marked as blocking: #293
- Issue marked as blocking: #32
- Issue marked as blocking: #52
- Issue marked as depending on: #331

2 years ago

Metadata Update from @ryanlerch:
- Issue set to the milestone: None (was: Flock 2017)

2 years ago

Login to comment on this ticket.

Attachments 5
Attached 4 years ago View Comment
Attached 4 years ago View Comment
Attached 4 years ago View Comment
Attached 4 years ago View Comment
Attached 4 years ago View Comment