|Did you know ...||Search Documentation:|
|Packs (add-ons) for SWI-Prolog|
|Title:||Hook up to an existing IRC Client called an Eggdrop|
|Rating:||Not rated. Create the first rating!|
|Author:||Douglas R. Miles <firstname.lastname@example.org>|
No reviews. Create the first review!.
This pack provides
library(eggdrop), which allows prolog code to use an existing IRC Client called Eggdrop.
The Eggdrop written in TCL/C passes IRC server events along to your event handles that you write in prolog.
Sorry this is not very user friendly but I use it in 3 places so I had to packify it
Such as the IRC chatroom ##prolog to let people test their basic code
[11:01] <dmiles_afk> ?- predicate_property(with_resource_limit(Call),imported_from(W)). [11:01] <PrologMUD> dmiles_afk: Call=_, W=eggdrop. [11:01] <PrologMUD> dmiles_afk: det(Yes,1)
There is another very important IRC bot called yesbot (https://github.com/eazar001/yesbot) and that bot was designed to be more useable.
Using this pack after it is installed...
root@gitlab:~# apt-get install eggdrop The following extra packages will be installed: eggdrop-data libtcl8.5 tcl8.5 Suggested packages: tcl-tclreadline The following NEW packages will be installed: eggdrop eggdrop-data libtcl8.5 tcl8.5 0 upgraded, 4 newly installed, 0 to remove and 609 not upgraded. Need to get 1,543 kB of archives. After this operation, 5,711 kB of additional disk space will be used. Do you want to continue? [Y/n] y Processing triggers for menu (2.1.46ubuntu1) ...
Select a user to run the eggdrop (here I used 'dmiles') and Edit the lib/swipl/pack/eggdrop/conf/eggdrop.conf file Edit the lib/swipl/pack/eggdrop/prolog/eggdrop.pl file (Like if you changes the port number)
dmiles@gitlab:~$ cd lib/swipl/pack/eggdrop dmiles@gitlab:~/lib/swipl/pack/eggdrop$ eggdrop -m eggdrop.conf dmiles@gitlab:~/lib/swipl/pack/eggdrop$ eggdrop -m eggdrop.conf Eggdrop v1.6.19+SSL (C) 1997 Robey Pointer (C) 2008 Eggheads [09:20] --- Loading eggdrop v1.6.19+SSL (Sun Nov 8 2015) [09:20] Listening at telnet port 3334 (all). [09:20] Module loaded: dns [09:20] Module loaded: channels [09:20] Module loaded: server [09:20] Module loaded: irc [09:20] Module loaded: notes (with lang support) [09:20] Module loaded: seen [09:20] Module loaded: blowfish [09:20] Module loaded: assoc (with lang support) [09:20] Module loaded: wire (with lang support) [09:20] Module loaded: uptime [09:20] Userinfo TCL v1.07 loaded (URL BF GF IRL EMAIL DOB PHONE ICQ). [09:20] use '.help userinfo' for commands. [09:20] Creating channel file STARTING BOT IN USERFILE CREATION MODE. Telnet to the bot and enter 'NEW' as your nickname. OR go to IRC and type: /msg PrologMUD hello This will make the bot recognize you as the master. [09:20] PrologMUD: 0 channels, 0 users. Launched into the background (pid: 27302) dmiles@gitlab:~/lib/swipl/pack/eggdrop$ telnet localhost 3334 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. PrologMUD (Eggdrop v1.6.19+SSL (C) 1997 Robey Pointer (C) 2008 Eggheads) Please enter your nickname. (If you are new, enter 'NEW' here.)
Type NEW and when it asks for a username you would use: swipl
NEW This is the telnet interface to PrologMUD, an eggdrop bot. Don't abuse it, and it will be open for all your friends, too. You now get to pick a nick to use on the bot, and a password so nobody else can pretend to be you. Please remember both! Enter the nickname you would like to use. swipl *** POOF! *** You are now a master on this bot. ### POOF! ### You are now a botnet master on this bot. @@@ POOF! @@@ You are now an OWNER of this bot. From now on, you don't need to use the -m option to start the bot. Enjoy !! Okay, now choose and enter a password: (Only the first 15 letters are significant.)
Make a password for the prolog client like: top5ecret
top5ecret Remember that! You'll need it next time you log in. You now have an account on PrologMUD... Connected to PrologMUD, running eggdrop v1.6.19+SSL ____ __ / __/___ _ ___ _ ___/ /____ ___ ___ / _/ / _ `// _ `// _ // __// _ \ / _ \ /___/ \_, / \_, / \_,_//_/ \___// .__/ /___/ /___/ /_/ Hey swipl! My name is PrologMUD and I am running eggdrop v1.6.19+SSL, on Linux 3.16.0-30-generic. Local time is now 09:27 You are an owner of this bot. Only +n users can see this! For more info, see .help set motd. Please edit the motd file in your bot's 'text' directory. Use .help for basic help. Use .help <command> for help on a specific command. Use .help all to get a full command list. Use .help *somestring* to list any help texts containing "somestring". Have fun. Commands start with '.' (like '.quit' or '.help') Everything else goes out to the party line. get2react(['chon',"swipl","12"]). ### You have the following note(s) waiting: 1. PrologMUD (Nov 08 09:24) 2. PrologMUD (Nov 08 09:27) ### Use '.notes read' to read them. *** swipl joined the party line.
.quit get2react(['chof',"swipl","12"]). *** Ja mata! [09:27] DCC connection closed (swipl!telnet@localhost) *** swipl left the party line. Connection closed by foreign host. dmiles@gitlab:~/lib/swipl/pack/eggdrop/conf$
Type: .quit Run Swi-Prolog
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 7.3.10) Copyright (c) 1990-2015 University of Amsterdam, VU Amsterdam SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. Please visit http://www.swi-prolog.org for details. For help, use ?- help(Topic). or ?- apropos(Word). ?- use_module(library(eggdrop)). % /user/dmiles/lib/swipl/pack/logicmoo_base/prolog/logicmoo_utils.pl:204 % Adding logicmoo/utils to autoload path true. ?- egg_go. true. ?- % PrologMUD (Eggdrop v1.6.19+SSL (C) 1997 Robey Pointer (C) 2008 Eggheads) % Please enter your nickname. % (If you are new, enter 'NEW' here.) % Enter your password.ÿû % ÿü % Connected to PrologMUD, running eggdrop v1.6.19+SSL % ____ __ % / __/___ _ ___ _ ___/ /____ ___ ___ % / _/ / _ `// _ `// _ // __// _ \ / _ \ % /___/ \_, / \_, / \_,_//_/ \___// .__/ % /___/ /___/ /_/ % Hey swipl! My name is PrologMUD and I am running eggdrop v1.6.19+SSL, on Linux 3.13.0-32-generic. % Local time is now 11:32 % You are an owner of this bot. Only +n users can see this! For more info, % see .help set motd. Please edit the motd file in your bot's 'text' % Use .help for basic help. % Use .help <command> for help on a specific command. % Use .help all to get a full command list. % Use .help *somestring* to list any help texts containing "somestring". % Have fun. % Commands start with '.' (like '.quit' or '.help') % Everything else goes out to the party line. % maybe_call(get2react([chon,"swipl","12"])). % You have no messages. % *** swipl joined the party line. % Echo turned off. % Set your console to #logicmoo: - (none). ?- threads. % Thread Status Time Stack use % ------------------------------------- % main running 0.914 6,168 % pce running 0.007 1,088 % egg_go running 0.007 29,024 true.
# Hopefully not too much goes wrong if tried.
Document this pack!
Untangle the 'pack' install deps (Moving predicates over here from logicmoo_base)
Dislike having tons of forks that are several commits behind the main git repo?
Be old school - Please ask to be added to logicmoo and Contribute directly !
Still, we wont stop you from doing it the Fork+PullRequest method
Copyright (c) 2017, logicmoo and Douglas Miles <email@example.com> All rights reserved.
Pack contains 18 files holding a total of 388K bytes.