IRC Bot (Najosnovnija verzija)
#1

IRC Bot

Ovde ću navesti i demonstrirati kako radi irc bot na raspberry pi-u

Prvi korak je kreiranje direktorijuma u /home/korisnik/ folderu

Code:
cd /home/korisnik/ mkdir bot cd bot pwd /home/korisnik/bot

Napomena: bot.py ne sme biti u istom folderu gde je socket.py (Izazvaće sukob)

Nakon toga kreirajte sa vi, vim ili nano skriptu u bot folderu. Znači pravimo baš najosnovniju verziju bota u Python programskom jeziku.

Code:
nano bot.py


Skripta (bot.py) bi trebala da izgleda ovako:

Code:
import socket import random import time server = "localhost" port = 6667 nickname = "Bot3" channel = "#test" irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) irc.connect((server, port)) irc.send(("USER " + nickname + " " + nickname + " " + nickname + " :Python IRC\r\n").encode("UTF-8")) irc.send(("NICK " + nickname + "\r\n").encode("UTF-8")) irc.send(("JOIN " + channel + "\r\n").encode("UTF-8")) def send_message(message):     """Send a message to the IRC channel."""     irc.send(("PRIVMSG " + channel + " :" + message + "\r\n").encode("UTF-8")) while True:     message = irc.recv(2048).decode("UTF-8")     if message.find("PING") != -1:         irc.send(("PONG " + message.split()[1] + "\r\n").encode("UTF-8"))     if message.find(":!hello") != -1:         send_message("Hello there!")     if message.find(":!time") != -1:         current_time = time.strftime("%H:%M:%S", time.gmtime())         send_message("The current time is " + current_time)     if message.find(":!roll") != -1:         send_message("Rolling the dice...")     if message.find(":!medved") != -1:         send_message("Medvedima pristup zabranjen...")

Ovaj kod je open source i možete ga koristiti ili unapređivati. Izvor mu je na githubu:
https://github.com/antistereotip/node-fs...ster/ai.py

Nakon toga instalirate irc klijenta irssi:

Code:
sudo apt install irssi

Potrebna su nam dva terminala (tty), u jednom će biti potrebna pokrenuta skripta bot.py a u drugom irssi klijent.

Code:
pwd /home/korisnik/bot/ ls pi@raspberrypi:~/bot $ ls bot.py

Sada je potrebno da pokrenete bota:

Code:
python bot.py

On će se pokrenuti i ućiće u #test sobu pod imenom Bot

Pre svega ovoga neophodno je da imamo aktivan irc server. U ovom slučaju to je ngircd. U drugoj temi ću obraditi instalaciju ngircd servera.

Zatim je potrebno sa drugog terminala ući u irssi klijent.

Code:
irssi

https://github.com/antistereotip/node-fs...ter/ai.txt

Zatim komandu kojom ćete ući u server i u sobu. Kad uđem u sobu promeniću nick u hightech.

Code:
/connect localhost /join #test /nick hightech

Ili možete koristiti GUI irc klijenta IceChat na Windowsu:

SLIKA

Zatim ćemo zadati komandu !high i dobiti output.

Code:
!high


Output:

Code:
Medvedima pristup zabranjen.


To bi bilo to, najkraća i najjednostavnija verzija irc bota.



!high
!hello


Evo i verzije u PHP-u

Code:
<?php $server = 'localhost'; $port = 6667; $nickname = 'bot3php'; $channel = '#test'; $socket = fsockopen($server, $port); fwrite($socket, 'USER ' . $nickname . ' ' . $nickname . ' ' . $nickname . ' :PHP IRC' . "\r\n"); fwrite($socket, 'NICK ' . $nickname . "\r\n"); fwrite($socket, 'JOIN ' . $channel . "\r\n"); while (true) {     $data = fgets($socket, 1024);     echo $data; // Echo data for debugging purposes     if (strpos($data, 'PING') !== false) {         fwrite($socket, 'PONG ' . substr($data, strpos($data, ':') + 1) . "\r\n");     }     if (strpos($data, ':!hello') !== false) {         $sender = explode('!', $data)[0];         $response = 'Hello, ' . substr($sender, 1) . '!';         fwrite($socket, 'PRIVMSG ' . $channel . ' :' . $response . "\r\n");     }     if (strpos($data, ':!medved') !== false) {         fwrite($socket, 'PRIVMSG ' . $channel . ' :Medvedima pristup zabranjen!' . "\r\n");     } } fclose($socket);

Kako radi, otvoriti terminal i kucati ?
Code:
php bot3php.php
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)