energymech / energymech Goto Github PK
View Code? Open in Web Editor NEWEnergyMech IRC Bot
Home Page: http://www.energymech.net
License: GNU General Public License v2.0
EnergyMech IRC Bot
Home Page: http://www.energymech.net
License: GNU General Public License v2.0
,-----------------------------------------------------------------. | ,-----; ,------, ,-----; ,-------, ,----, , ,-. | | / ,---' | ,. \ / ,---' | ,--, \ / ,-. \ /| | \ | | | |___ | | \ \ | |___ | |__| ;| | `~' / | | | | | | ,--' | | | || ,--' | |--; < | | ,--./ `-' | | | | |__,-,| | | || |__,-,| | | || | \ |\___. | | | | || | | || || | | || `~' | \ | | | | || | | / | || | | / | | | | | | `~~~~~`\/ `---' `/ `~~~~~`\/ `---' `/ `/~~~~~~' |,--' | | ,---, ,---, ,-----; ,----. ,-. ,--. | | | \ / | / ,---' / ,--' / | | | | | | \/ || |___ | | | |__| | | | | |\ /| || ,--' | | | ,--. | | | | | \/ | || |__,-,| | /|| | | | | | | | | || || `--' || | | | | | | | | || || || | | / | | `---' `---'`~~~~~`\/ `\___/~~~'`---' `/ | `-----------------------------------------------------------------' Compiling? ~~~~~~~~~~ To compile the source: 1) git clone https://github.com/EnergyMech/energymech.git -- If you don't have git you can still download the source: wget http://github.com/EnergyMech/energymech/archive/master.tar.gz tar xvf master.tar.gz 2) cd energymech -- Since you are reading this file, you have most likely already come to this point. 3) ./configure -- This script will prompt you for features to include or exclude, going with the default is not a bad idea. -- If you want to cross compile export the prefix of your toolchain: export CROSS_COMPILE="armv7a-hardfloat-linux-gnueabi-" 4) make install -- If you have a modern/more powerful machine you can try to compile the mech with ``make mega'' or ``make mega-install''. This way produces a slightly more compact and efficient executable. -- On a modern multi-core cpu, you can run make with the appropriate -j switch to shave off a few seconds of compile time. (This will not work with ``make mega'' or ``mage mega-install''. For example: ``make -j4'' for a 4 core cpu system. If all went well you should now have an executable called ``energymech''. ---*--- Setup? ~~~~~~ Read the sample.conf file to get an idea of the config file commands and then try to make your own. A basic setup doesnt need much more than NICK, SET ALTNICK, SET USERFILE, JOIN and SERVER entries, the rest is mostly just tweaks of default values. Quick steps: 1) cp sample.conf mech.conf 2) edit mech.conf -- replace ''edit'' with your favourite text editor, look through the file for sections to change, you will have to remove lines in order to get the bot to work. Check the file completely! 3) make a userfile construct a temporary file (trick.conf) containing; --------------------------------------------------------------- set userfile whateveryouwanttonameit user + handle * *!*yourident@*.yourdomain.com 100 password save shutdown --------------------------------------------------------------- then 'run' this file with './energymech -f trick.conf'. this will create a userfile with the name you chose ('mech.passwd' is a good descriptive name which I often use myself). re-use the filename you selected in your proper configuration file. and remember to 'rm -f mech.session' if you compiled your energymech with session support. 4) ./energymech That should get you running. If you don't see your bot come on IRC after a few minutes, you should try running the bot in debug mode to see what's going on with... ./energymech -d If you get an 'Unknown option -d', you need to answer 'Y' to debug support when running ./configure from the compiling section above. Or run with ``./configure --with-debug''. If you are unsure about if you configured everything correctly and want to test the configuration, you can run: ./energymech -t This will run the startup sequence in a normal way, but will quit right before the bot enters the main loop. ---*--- Updated Files? ~~~~~~~~~~~~~~ The main distribution site for the EnergyMech is: https://github.com/EnergyMech/energymech Extra files for users of EnergyMech can be found at: https://github.com/EnergyMech/energymech-extra Files, documentation and tips can be found at: http://www.energymech.net ---*--- THIS SOFTWARE IS PROVIDED AS IS. YOU ARE ENTIRELY ON YOUR OWN WHEN IT COMES TO CONFIGURING AND USING IT. ---*--- proton, April 17th, 2018.
I wanted to write some patches for this package in Gentoo and fix the package. We usually have links to upstream in the package descriptions. Will www.energymech.net ever come back or is it dead for good?
The command "FORGET" isn't working. The bot is reporting this:
(Acura) .forget #channel
(February) Usage: FORGET channel
(Don't know why but word channel dissapear from this post if put between <> sign when I hit save ...)
See https://bugs.gentoo.org/707122. Failed with GCC 9.2.0 using -fno-common which becomes default in GCC 10.
Log:
web.c:295:2: warning: ignoring return value of ‘read’, declared with attribute warn_unused_result [-Wunused-result]
295 | read(fd,src,sz);
| ^~~~~~~~~~~~~~~
x86_64-pc-linux-gnu-gcc -O2 -pipe -march=native -fno-common -Wl,-O1 -Wl,--as-needed -o energymech alias.o auth.o bounce.o chanban.o channel.o core.o ctcp.o debug.o dns.o dynamode.o function.o greet.o help.o irc.o kicksay.o main.o net.o net_chan.o note.o notify.o ons.o parse.o perl.o prot.o python.o redirect.o reset.o seen.o shit.o socket.o spy.o stats.o tcl.o telnet.o toybox.o trivia.o uptime.o user.o vars.o web.o -lcrypt
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: auth.o:(.bss+0x20): multiple definition of `redirect'; alias.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: bounce.o:(.bss+0x0): multiple definition of `redirect'; alias.o:(.bss+0x0): first defined here
Every time I use the "setpass" command the bot crash. When the user don't have a pass already set. If I input the user passwd when I perform the USER + command than the bot is ok and isn't crashing. After that I can use the SETPASS command without any issue.
Here are what the debug looks like:
(in) {8} .setpass stali0n 1234
(to_user) {8} [Acura] new password for stali0n has been set
(sigsegv) trying to access (nil)
(sigsegv) Stack pointer: 0x7ffd4ac54820, Instruction pointer: 0x40e2e1
(sigsegv) sig_segv() = 0x406d97
(sigsegv) do_crash() = 0x406c58
I tried to set a pass manually into the userlist file (without encrypting it) and make the bot read the file obviously the bot isn't recognizing the password. So I tried to use the setpass again and here is the debug I had.
(add_user) handle = stali0n; pass = $6$6d1a$v9XIMfAniQIkDDGKNI1yOwy0wUsPI7V6cPjG8NoqMP6VJEtmCExmo433JWsK.3g/wMwLeWxfCnXUpAD.2p6Qp1; axs = 0
free(): invalid next size (fast)
(sigabrt)
Thank you,
Stali0N
Using this master, ubuntu 18, following tutorial from this github
root@localhost:/energymech-master# make install
make -C src install
make[1]: Entering directory '/root/energymech-master/src'
gcc -pipe -g -o gencmd gencmd.c
./gencmd githash.h
./gencmd mcmd.h
./gencmd usercombo.h
gcc -pipe -g -Os -march=i586 -fomit-frame-pointer -c alias.c
gcc -pipe -g -Os -march=i586 -fomit-frame-pointer -c auth.c
gcc -pipe -g -Os -march=i586 -fomit-frame-pointer -c bounce.c
gcc -pipe -g -Os -march=i586 -fomit-frame-pointer -c channel.c
channel.c:61:7: error: conflicting types for 'find_channel'
Chan *find_channel(const char *name, int anychannel)
^
In file included from channel.c:27:0:
h.h:142:10: note: previous declaration of 'find_channel' was here
LS Chan *find_channel(const char *, int) __attr(CORE_SEG, __regparm(2));
^
channel.c:80:7: error: conflicting types for 'find_channel_ac'
Chan *find_channel_ac(const char *name)
^
In file included from channel.c:27:0:
h.h:143:10: note: previous declaration of 'find_channel_ac' was here
LS Chan *find_channel_ac(const char *) __attr(CORE_SEG, __regparm(1));
^
channel.c:85:7: error: conflicting types for 'find_channel_ny'
Chan *find_channel_ny(const char *name)
energymech is not dead, it is still alive as a mirror here http://energymechs.net for nostalgic lammer as you.
In Debian 11 specifically these versions of Python are deprecated: 2.9 2.8 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0
I was also unable to find in your documentation any reference to installing the following dependencies for TCL:
sudo apt install tcl tcl-dev
sudo apt install openssl libssl-dev
ubuntu@darkbot:~/energymech-master$ ./energymech -t
EnergyMech 3.1p (src:257/29762), April 14th, 2018
Compiled on April 12th, 2021 at 5:54pm
Features: alias, bounce, chanban, dyn, sha, md5, net, netcfg, newbie, session, telnet, toybox
warning: configfile is readable by others
error: energymech home directory is writeable by others, exiting...
ubuntu@darkbot:~/energymech-master$ ./energymech -d
init: Unknown option -d
ubuntu@darkbot:~/energymech-master$ ./energymech
EnergyMech 3.1p (src:257/29762), April 14th, 2018
Compiled on April 12th, 2021 at 5:54pm
Features: alias, bounce, chanban, dyn, sha, md5, net, netcfg, newbie, session, telnet, toybox
warning: configfile is readable by others
error: energymech home directory is writeable by others, exiting...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.