This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

Eggdrop Telnet Client

General support and discussion of Eggdrop bots.
User avatar
arfer
Master
Posts: 436
Joined: Fri Nov 26, 2004 8:45 pm
Location: Manchester, UK

Post by arfer »

The history string list is already available in the version you are using. It refers to things entered via the clients input area, commands or whatever. If you input something and hit enter, it is echoed to the console, sent to the Eggdrops telnet server and added to the history string list (providing it is not already there - duplicate history items not allowed). Then using the up/down cursor keys you can navigate this list. Try it. Note that it does not function for commands entered via clicking on menu items, only things manually input via the input area. I think the history length is 20 items.

You can also use the command .quit in Defero. Just input it manually via the clients input area and hit enter.

Exactly how a disconnection is viewed will depend on the cause/method AND which side of a connection you happen to be studying. For example, forcibly closing a socket on one side of the connection might be a deliberate and valid event which would not result in a code 'Exception'. On the other side of the connection, it would almost certainly raise an 'Exception' and would need to be handled.

Defero clears the console on disconnect, in much the same way that putty closes completely. One disadvatage with this, is you cannot see any messages in the console that may relate to the disconnection. I have seperately handled events such that a message box will show for things like 'booted from the party line', 'bot shutdown' and various winsock exceptions. Maybe as the user base grows I will learn more about less common disconnects and add additional message boxes.

I will investigate further what happens clientside when manually entering .quit and maybe code an appropriate message box for it. I don't think I have previously used .quit. If I was using a dcc chat session from IRC then I would simply close the dcc chat window.
I must have had nothing to do
w
willyw
Revered One
Posts: 1203
Joined: Thu Jan 15, 2009 12:55 am

Post by willyw »

arfer wrote:The history string list is already available in the version you are using.
...
It is?

...

Aha.
Same situation as with the buttons - the history doesn't work if username is left blank, and entered manually.
So - I thought it didn't work.

Just tried it, with a name in the username block, and history works.



You can also use the command .quit in Defero. Just input it manually via the clients input area and hit enter.
Right. That's what I do.
Exactly how a disconnection is viewed will depend on the cause/method
....
I just wanted to let you know that the bot reports the two methods differently.
Whether it is important, or could ever be important - is for you or somebody in-the-know to determine. :)
...
I don't think I have previously used .quit. If I was using a dcc chat session from IRC then I would simply close the dcc chat window.
Since it is the command that is designed for that, I suppose that is why I try to always use .quit. (I just use .q )
I never asked anyone if it mattered, compared to slamming the window shut.


Thanks
d
desired
Voice
Posts: 31
Joined: Mon Sep 12, 2011 5:17 pm

Post by desired »

What I am missing...

- STRG + V (paste)

- arrow up (command history like in mirc client)

- command line switch for portability -d .\Data - configuration goes into .\Data

PS:

- not to clear the window after the connection broke down (bot got killed, crashed or whatever), last output while .tcl die is interesting
eggdrop running on Android powered mobile phone - Yes, it is possible! - Very reliable.
User avatar
arfer
Master
Posts: 436
Joined: Fri Nov 26, 2004 8:45 pm
Location: Manchester, UK

Post by arfer »

Thanks for your input desired.

1. Copy/Paste is already available via mouse right click in the input area. I will add Copy/Paste via Ctrl key in the input area to the todo list. Copy will be available via right mouse click and Ctrl key from the console area in the next version. Paste to the console area will not be made available, since this would be pointless.

2. A history string is already available via cursor up/down keys. This has already been discussed in this thread. See the post above yours. There is a bug in the current version of the program that occurs if you use manual login and do not include a bot username in the connection string. It would prevent some of the commands working along with disable the history string. This has also been discussed and will be fixed in the next version. Ensure that when connected the client title bar demonstrates that Defero recognises you have joined the party line. Full functionality is only available when this is true.

3. I am assuming your third point is regarding the connection strings file (connect.xml) going into a subdirectory of users 'My Documents'. I am aware that it would probably have been more consistent to put this in users 'AppData/Roaming'. However, I was not aware that this gives a problem in portability. What OS version are you porting the program to that gives a problem?

4. I am considering what to do regarding clearing the console area after the connection is closed. It looks rarther messy to have the client disconnected but the console area full of data from the last connection. At the moment I am trying to capture any pertinent last output and open a message dialog box with the information. For example, bot shutdown via .die is caught, booted from the partyline is caught etc. I do need help in this respect. If the connection is lost yet no dialog box, then recreate the problem in a dcc chat session and report any message please.
I must have had nothing to do
d
desired
Voice
Posts: 31
Joined: Mon Sep 12, 2011 5:17 pm

Post by desired »

arfer wrote:3. I am assuming your third point is regarding the connection strings file (connect.xml) going into a subdirectory of users 'My Documents'. I am aware that it would probably have been more consistent to put this in users 'AppData/Roaming'. However, I was not aware that this gives a problem in portability. What OS version are you porting the program to that gives a problem?
No, we are talking about different things.

I mean portability in sense of Windows portable software. Like portableapps.com.

Portable means no settings go into Windows registry (because it's hard to backup and so on) and with a switch, for example -d .\Data would mean that all userdata goes into .\Data.

Example:
usb-pendrive e:
e:\Defro\Defro.exe
e:\Defro\Data\connect.xml

That'd be nice. I prefer it for any software. Not because I use usb-pendrives, but in case of Windows crash and format c: (which even microsoft admits, that this happens) you still have all your appdata working... Side effect: somehow a little "independent" from the operating system (most portable software runs on Windows 95, 98, ME, XP, Vista, 7 and even Linux Wine).
eggdrop running on Android powered mobile phone - Yes, it is possible! - Very reliable.
User avatar
arfer
Master
Posts: 436
Joined: Fri Nov 26, 2004 8:45 pm
Location: Manchester, UK

Post by arfer »

OK desired, I get what you mean now regarding portability. However, I'm not feeling much motivation towards including this functionality anytime soon. There are many useful additions I could make to ther program that would have broader appeal.

With reference to your earlier point regarding not clearing the console area so that you can see disconnection messages. I have now included this code as an 'option' setting. It can be switched on for a while to try to discover if any such message exist, therafter switched off to get back to a tidier clear console area. It will be available in the next version hopefully within a month, though other modifications are proving time consuming and delaying the release date.
I must have had nothing to do
d
desired
Voice
Posts: 31
Joined: Mon Sep 12, 2011 5:17 pm

Post by desired »

few more wishes:

- option disable scroll lock
(when there is new output from the bot it will scroll. it's not possible to read the old messages as long as new messages come. This can be quite disturbing while reading.

- *nix support
Unfortunately there is no *nix version and WINE does not work as well.
eggdrop running on Android powered mobile phone - Yes, it is possible! - Very reliable.
User avatar
arfer
Master
Posts: 436
Joined: Fri Nov 26, 2004 8:45 pm
Location: Manchester, UK

Post by arfer »

desired, thanks for your comments and suggestions. Please keep them coming.

I agree with your idea regarding the scroll lock. At the very least I will add it to the 'ToDo' list. In fact, I will see if I can incorporate it into the coming upgrade. Depends on the level of difficulty.

Nix support is generally out of the question in the short term. Embarcadero, the current owners of Delphi, no longer support a nix version of the programming environment (formerly Kylix). However, they are promising a cross-compiler at sometime in the future. We'll just have to see. A rewrite using something like Lazarus and Free Pascal would be a massive undertaking.

I understand that Defero works fine with the latest version of Wine, but performs poorly with older versions. I am unable to personally confirm this bacause I don't use it, but the evidence comes from reliable sources. Please check your version and confirm. I understand the latest version is 1.2.3 (stable), though I can't say for sure if they meant the 1.3.33 development branch. I will try to find out.
I must have had nothing to do
User avatar
arfer
Master
Posts: 436
Joined: Fri Nov 26, 2004 8:45 pm
Location: Manchester, UK

Post by arfer »

desired, regarding my last post on the subject of Wine

1.2.2 can yield runtime error 216 on closing Defero
1.2.3 seems to function well with Defero

Earlier versions are known to cause more severe issues such as failing to save the connection strings
I must have had nothing to do
User avatar
arfer
Master
Posts: 436
Joined: Fri Nov 26, 2004 8:45 pm
Location: Manchester, UK

Post by arfer »

NEW VERSION RELEASED 1.2.2.526

Uninstall your current version (you will not lose any connection strings you have already set up).

http://defero.ircspeed.org

Many enhancements and fixes.

Please give me some feedback.

*** edited 07/12/11 to version 1.2.2.526 (from 1.2.1.524) - minor alteration in error handling and will not materially effect functionality.
I must have had nothing to do
d
desired
Voice
Posts: 31
Joined: Mon Sep 12, 2011 5:17 pm

Post by desired »

I have an even better idea for bots who
- crashed
- shutdown
- user lost internet connection (24 hour force disconnect, bad Wifi/3g connection)
- shell lost internet connection
just in time the telnet client was still connected...

Idea:
- no popups
- no cleanup messages
- just notify the user that the connection has been lost
- try to re-establish the session

That seams to me the most logical solution as it would be quite similar to other programs. Browser, ftp client, ssh client and so on, most do not close the window and reconnect automatically.
eggdrop running on Android powered mobile phone - Yes, it is possible! - Very reliable.
User avatar
arfer
Master
Posts: 436
Joined: Fri Nov 26, 2004 8:45 pm
Location: Manchester, UK

Post by arfer »

desired, Sorry about the delayed response

I'm not aware of any software I use that reconnects automatically other than my IRC client. Not really much point in doing that if, for example, the bot has shutdown.

As regards popup messages I suppose its a matter of finding the right balance between being informative and being a nuisance. At the same time as you are suggesting less popup messages, another user I communicate with is suggesting more. If more people would respond with thoughts and ideas, I could better judge popular choices and code accordingly.

I have tried to be more informative with messages in appropriate places. Before coding this client I used putty, which simply disappears when it disconnects because it is a console application.
I must have had nothing to do
d
desired
Voice
Posts: 31
Joined: Mon Sep 12, 2011 5:17 pm

Post by desired »

arfer wrote:I'm not aware of any software I use that reconnects automatically other than my IRC client. Not really much point in doing that if, for example, the bot has shutdown.
Sometimes happens to me when I type rehash or got a segfault (eggdrop bug crash).
arfer wrote:I have tried to be more informative with messages in appropriate places. Before coding this client I used putty, which simply disappears when it disconnects because it is a console application.
Uhm, yes that is annoying... It's only a bad default option. But I am so happy that there are options in putty to change this.

At the bottom of the session window there are options...

Close window on exit
- always (current behaviour)
- never (the one I proposed here)
- only on clean exit
eggdrop running on Android powered mobile phone - Yes, it is possible! - Very reliable.
d
desired
Voice
Posts: 31
Joined: Mon Sep 12, 2011 5:17 pm

Post by desired »

By the way I thought about your idea of implementing SSH into Defero. That would be great. Because

1.) Very good firewall workarround, in most cases (not all) it is possible to SSH to the shell. After the SSL connection is established Defero can do telnet 127.0.0.1 telnet-port.

2.) The eggdrop telnet chat would be even encrypted!

Fully implementing SSH would be probable to much work (password authentication, keyfile authentication etc.). Perhaps you can utilize common tools such as Putty?
eggdrop running on Android powered mobile phone - Yes, it is possible! - Very reliable.
User avatar
arfer
Master
Posts: 436
Joined: Fri Nov 26, 2004 8:45 pm
Location: Manchester, UK

Post by arfer »

I can't say I fully understand what you are saying desired. Telnet localhost?

In any case I have already implemented a testbed SSH connection window in Defero using SSHBlackBox components to launch a seperate window and automatically login using password authentication rather than the normal keyboard authentication, but there are two difficulties.

1. Many SSH shell bash prompts these days are what might be termed semi-graphical using Linux character sets G1 and G2. I haven't yet found these character sets in order to attempt to translate them, though I haven't searched long and hard. I would consider this problem do'able.

2. My testbed SSH connection is rather primitive and would definitely not cope with things like command line editors, nano and the like, though it is adequate for most bash commands. I could attempt to build a complete vt emulation to translate keystroke by keystroke (both ways of course), or preferably find a suitable third party emulator (form based, not console based). Since the latter has proven difficult to find, this problem is rather less do'able though I might yet give it a go. I am currently looking at the potential for terminal emulation in TMS Async32 components. It would be in keeping with my ultimate goal of having an 'all-in-one' Eggdrop tool .. TELNET/SSH/(S)FTP.

There are probably more important things to do first. The programming environment I used is getting rather aged, I would like to upgrade to Delphi XE2 and change socket technology to make easier the added functionality of IPv6 and SSL. Pretty big jobs for a single developer. Cost is an issue too.
I must have had nothing to do
Post Reply