Add support for telnet #36
No reviewers
Labels
No Label
blocked
bug
build
documentation
duplicate
enhancement
finger
gemini
gopher
help wanted
http
in progress
invalid
local
needs-info
non-code
non-functional
non-urgent
question
release
rendering
suggestion
telnet
terminal
urgent
wontfix
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: sloum/bombadillo#36
Loading…
Reference in New Issue
No description provided.
Delete Branch "telnet-support"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Some of this is admitedly a little hacky. Due to some earlier design decisions (having the gopher module return a view rather than raw text) I did what would work. I have a branch for a V2 of Bombadillo in the works that keeps a lot of the same methods but drastically restructures the code and simplifies the screen drawing a lot. Until then, I thought this might be cool so that people could visit telnet links.
Let me know if you think anything should be changed.
This is pretty cool! This was a good prompt to try out telnet from gopher, and found gopher://telnetgames.de:70/1/ and played tetris which was actually really impressive.
Transitioning over to the telnet client is pretty seamless and adds an extra dimension to the client. A good addition!
I did note the following issues when playing around:
CTRL+]
does not do anything, and you have to CTRL+C which quits both telnet and bombadillo. I would have thought that only telnet would close but this might be my own misunderstanding.telnet
the only client most people would use and is similar on each OS? No need for user or OS customisation.I'll make some reviews on the code as well.
Swesome! Your testing and bug reports are always so thorough!
telnet
). That can be one of the configurable options. That way we dont have to sniff out the os, they can just provide the necessary info.Thanks for the feedback! Glad I could help.
From the code, it looks like screen redrawing is done before the telnet client runs, but not afterwards.
Further to the telnet colour changes affecting bombadillo, I've seen telnet and bombadillo history being left visible on the terminal, above and below the prompt. One key way to reproduce is to go to the games page, launch nethack (item 10), quit nethack (q), then quit bombadillo (q).
There's other weird behaviour, probably from telnet itself, that affects the way the terminal works:
If we can redraw, or reset, after telnet is run, maybe it will address these issues. This would probably be the one thing I'd recommend attempting before merging.
One last thing - I noticed using the gopher client that telnet stays open after you disconnect with some telnet-specific messages. You have to press a key to go back to the gopher client. I'm not sure how important these messages are, but it might be an alternative to having bombadillo try to interpret what the telnet client is doing when it exits.
Oh and documentation! Don't forget documentation!
Maybe just a small update to your Bombadillo page. In a future PR, I plan to take the information from this page and put it in to
bombadillo-info
.I'd suggest amending the section Documentation > Gopher Support as follow (addition as marked in bold):
Gopher is the sole protocol supported by Bombadillo at this time. Gopher types are implemented in a 4 tier fashion:
Interestingly, I think the issues you were having with redraw and screen artifacts may be platform dependent. Those issues do not happen for me at all. I launched nethack, the screen went black and it started connecting in the top left. It did its thing, I hit q for quit and it exited back to bombadillo exactly as it was width the added messaging for having exited the telnet session.
What system are you running it on? I am on Linux x86_64 using - nope, scratch all that. It all looked right in bombadillo, but it was not. Upon quitting bombadillo my whole terminal was donked up. Telnet must reassign a bunch of tty params that bombadillo is already setting. As such, I suppose I'll have to reset things after exiting a telnet session. I had not thought at all about telnet hijacking the terminal to that degree. I'll work on a fix to that.
Thanks for the doc updates too. I am still trying to find a viable way to distribute and install a man page with bombadillo. Maybe a makefile? I've been thinking that for version two I'd like to put things together as a snap package (mostly for the low barrier to entry. apt, yum, etc would be preferable, but can be tricky to set up.... snappy could be ok though).
I'm going to close this. We will not really be going into master directly anymore and develop is for 2.0.0. This feature just did not make it into the last pre 2.0.0 version in time. No worries.
Pull request closed