Lage en IRC-bot
Steg 1: SSH inn i VM-en
Kjør kommandoen ssh [BRUKERNAVN]@[SERVER_IP]
For eksempel: ssh nerutaa@173.30.78.234
Steg 2: Installer Python og nødvendige verktøy
1. Sjekk om Python er installert:
python3 --version
2. Hvis Python ikke er installert, kjør:
sudo apt update && sudo apt install python3 -y
3. Installer pip (Python package manager):
sudo apt install python3-pip -y
4. Installer venv-modulen for virtuelle miljøer:
sudo apt install python3.12-venv -y
(bruk riktig versjon avhengig av hva python3 --version viser)
Steg 3: Sett opp et virtuelt miljø
1. Opprett et virtuelt miljø:
python3 -m venv ~/[BOT_NAME]-env
For eksempel: python3 -m venv ~/rulesbot-env
2. Aktiver miljøet:
source ~/[BOT_NAME]-env/bin/activate
For eksempel: source ~/rulesbot-env/bin/activate
Når miljøet er aktivert, vil terminalprompten endres slik:
([BOT_NAME]-env) user@pc:~$
3. Installer IRC-pakken:
pip install irc
Du vil trenge det for å kjøre programmet på IRC.
Steg 4: Lag reglene
1. Gå inn i config:
nano rulesbot.py
Her skriver du de reglene du ønsker at den skal følge med på. Dette er et eksempel:
import irc.bot
import random
class RulesBot(irc.bot.SingleServerIRCBot):
def __init__(self, channel, nickname, server, port=6667):
super().__init__([(server, port)], nickname, nickname)
self.channel = channel
self.rules = [
"Welcome to the server! Please read the rules:",
"1. Be respectful to all users. No harassment or hate speech.",
"2. No spamming or flooding.",
"3. Keep content appropriate. No NSFW or offensive material.",
"4. Follow channel-specific rules.",
"5. Respect staff members.",
"6. No ban evasion or exploiting features.",
"Thanks for being cool!"
]
self.bad_words = ['badword', 'dumb', 'unicorn']
self.super_bad_words = ['dawg', 'superbadword']
self.quote = "I bathe, therefore I exist"
def on_welcome(self, connection, event):
connection.join(self.channel)
print(f"Joined {self.channel}")
def on_pubmsg(self, connection, event):
message = event.arguments[0].lower()
nick = event.source.nick
# Commands
if message.strip() == "!rules":
for line in self.rules:
connection.privmsg(self.channel, line)
return
if message.strip() == "!quote":
connection.privmsg(self.channel, self.quote)
return
if message.strip() == "!dice":
roll = random.randint(1, 6)
connection.privmsg(self.channel, f"{nick} rolled a dice and got: {roll}")
return
# Super bad word filter — kicks the user
if any(word in message for word in self.super_bad_words):
connection.privmsg(self.channel, f"{nick}: You used a prohibited word and will be kicked!")
connection.kick(self.channel, nick, "No use of super bad language allowed!")
return
# Bad word filter — warns the user
if any(word in message for word in self.bad_words):
connection.privmsg(self.channel, f"{nick}: Please watch your language!")
return
if __name__ == "__main__":
channel = "#chatroom" # Endre til ditt kanalnavn
nickname = "RulesBot" # Bot-navnet
server = "127.0.0.1" # Endre til riktig IRC-server IP
bot = RulesBot(channel, nickname, server)
bot.start()
2. Når du er fornøyd med reglene må du huske å lagre med Ctrl + O og enter, og så Ctrl + X for å gå ut.
Start botten
1. Nå som du er ferdig med konfigurasjonen, start botten med:
python rulesbot.py
Du vil se at det funker ved at det kommer opp at den joiner chatten, og på grunn av en melding i command promptet.
2. Lek litt rundt med funksjonene! basert på konfigurasjonen du har gjort, vil du ha en del av commands å utføre i serveren.
Hvis vi ser på min konfigurasjon er det:
!dice for et tilfeldig nummer fra 1-6, !rules for regler som er spesifikk til det chatrommet, !quote for en quote!
Det er også chat regulering satt, som vil si at det er noen ord som man kan bli straffet for å bruke. Som et eksempel satt jeg unicorn
3. Hvis du vil at botten skal kunne banne eller kicke må du gi den rettighetene. Dette er noe bare de som har @ ved siden av navnet sitt kan gjøre med denne kommandoen:
/mode #[CHAT_NAME] +o [BOT_NAME]
Vi ser at det første forsøket ikke funket fordi den ikke hadde rettighetene til det.
Nyttige kommandoer
1. Stoppe botten: Trykk Ctrl + C i terminalen.
2.Deaktivere det virtuelle miljøet: Kjør deactivate når du er ferdig.
3. Starte botten på nytt: Aktiver miljøet igjen med source ~/[BOT_NAME]-env/bin/activate og kjør python3 rulesbot.py.
4. Tips: Hvis du endrer koden i rulesbot.py, må du lagre og starte botten på nytt for at endringene skal tre i kraft.
Nå er boten satt opp!
Bra jobbet! Hvis du har fulgt alle stegene, har du nå en fungerende IRC-server med en Python-bot som kjører på en Ubuntu-server i Hyper-V.