RITlug / teleirc

Go implementation of a Telegram <=> IRC bridge for use with any IRC channel and Telegram group
https://docs.teleirc.com/
GNU General Public License v3.0
136 stars 46 forks source link

Allow user to configure more variables for IRC server connection (e.g. port, SSL certs, etc.) #113

Closed alcir closed 3 years ago

alcir commented 5 years ago

Summary

Allow user to configure more parts of the IRC server connection (e.g. server port, using self-signed TLS certs, etc.)

Background

IRC servers are a wild world. Everyone can do things a little bit differently or deploy their network in a different way. Most of the current developers run the bot on Freenode, so we haven't thought about other bots as much. However, to make the bot more useful for more people, more options should be opened up for configuration for those who need it.

Details

Implementation should be straightforward. New env variables should be created for the following:

These env variables should be used when negotiating the connection to the IRC server, instead of using hard-coded defaults. For our purposes, we can ship the Freenode defaults in our env.example file.

Outcome

More people can use the bot on a range of different IRC networks, outside of only Freenode


Original comment:

There is a way to specify IRC server port as well as SSL self signed certificate or turning on debug in the .env file or as environment variables?

alcir commented 5 years ago

I mean the variables you can see in node_modules/irc/lib/irc.js

jwflory commented 5 years ago

@alcir Currently there is not a way to specify these things in Teleirc. This is a good candidate issue for v1.4. We'll review issues for the next sprint once v1.3 is released.

jwflory commented 5 years ago

Discussed in 2019-03-02 developer meeting.


This ticket was accepted for the v1.4 sprint.

We agreed this is a high-priority feature because it makes the bot more useful for more people. The implementation should be straightforward. I plan to work on this during the March sprint.

jwflory commented 5 years ago

Uhh, actually @Tjzabel meant to close issue 112 with that commit, not this PR. Reopening.

Tjzabel commented 5 years ago

@jwflory thanks for the catch!

jwflory commented 5 years ago

Discussed in 2019-03-30 Teleirc developer meeting.


I plan to do research this week for this ticket. I hope to have an idea of what to include and change for this by the next developer meeting on April 6th. I hope to have a final implementation by April 13th. I left the final week open in case of delays before the end of the v1.4 window on April 20th.

jwflory commented 5 years ago

Discussed during 2019-04-06 developer meeting.


I have no major updates yet. Still planning to get this done in the next week.

jwflory commented 5 years ago

I'm caught up in some of our other work for our new logo and planning our presence at the Imagine RIT festival this month. I suspect I will not have time to work on this before the end of the Spring 2019 semester, but I will try to do what I can.

Tjzabel commented 5 years ago

@jwflory thanks for the update! The end of the semester really is a messy time :rofl:

jwflory commented 5 years ago

Discussed in 2019-04-13 Teleirc developer meeting.


As discussed above, I chose to drop this ticket for this sprint since I need more bandwidth to prepare for Imagine RIT at the end of this month.

@nic-hartley finished #19. Next, he is researching this ticket to see if it is simple enough for him to work on before the end of the v1.3.1 sprint on Saturday, April 20th. If it is a quick fix, we'll get it into this release. If not, we'll push back to v1.4.

jwflory commented 5 years ago

Discussed in 2019-04-20 developer meeting. Final developer meeting of the RIT Spring 2019 semester.


This ticket is dropped for the v1.3.1 sprint because we lacked team bandwidth to work on it leading up to university final exams. This ticket may be completed over the summer. More sprints may be planned for summer.

jwflory commented 5 years ago

See issue #145 from @diegoraf for the ident and realname fields set by the Node IRC library we use. It provides defaults of nodebot and nodeJS IRC client respectively, but we should override these and make them available to configure in our env.example file.

Also, when we do this, I would like to make our provided default config use teleirc for the ident and maybe TeleIRC bot (https://github.com/RITlug/teleirc) as the realname to make our project easier to find if someone doesn't care what these values are.

Tjzabel commented 5 years ago

Taken care of in PR #150 :tada: :tada:

jwflory commented 5 years ago

150 addresses some of this issue, but not all of it. Before closing this issue, I would also like to hit these parts from irc.Client:

I think these last configuration options, combined with #150, will be sufficient to address most users' needs.

Tjzabel commented 5 years ago

@jwflory I have a history of closing issues before fully realizing if they're done. I'll try to be better about that :smile:

jwflory commented 5 years ago

@Tjzabel No worries. I am equally guilty of doing the same at times too. :joy:

jwflory commented 4 years ago

@RITlug/teleirc-developers-commit-access Any thoughts on this from a v2.0.0 perspective?

Tjzabel commented 4 years ago

@jwflory I think having feature parity with where we currently stand is good enough. What other specific IRC features are part of the closing criteria? If they don't take a lot of time to implement, I am okay with adding this to the v2.0 release

jwflory commented 4 years ago
jwflory commented 3 years ago

_Discussed in 2020-10-11 meeting._


I'm going to work on this one for this sprint. This will be my first code contribution to the v2 branch, and first time really getting into Go… so let's see where this goes. :wink:

jwflory commented 3 years ago

Fixed in Pull Request #355.

jwflory commented 3 years ago

@alcir Keep an eye out for this feature in v2.1.0 coming within the next week.