Compare commits
9 Commits
e709a2ade1
...
master
Author | SHA1 | Date | |
---|---|---|---|
97a315d2d1 | |||
b29cf737a7 | |||
51a37c4562 | |||
34a3f06d91 | |||
f92d59dd91 | |||
e3cdce4f12 | |||
f449305ccd | |||
1b252ca2c7 | |||
9aee38bc50 |
61
bert.py
61
bert.py
@ -38,10 +38,8 @@ y = "\x038"
|
||||
r = "\x034"
|
||||
g = "\x033"
|
||||
|
||||
context = ssl.create_default_context()
|
||||
with socket.socket(socket.AF_INET6, socket.SOCK_STREAM) as sock:
|
||||
irc = context.wrap_socket(sock, server_hostname=host)
|
||||
|
||||
# global variable for the socket, see connect()
|
||||
irc = None
|
||||
|
||||
# Currency API
|
||||
def get_exchange():
|
||||
@ -71,11 +69,11 @@ def safeexit():
|
||||
|
||||
|
||||
def connect(host, port):
|
||||
global irc
|
||||
print("Connecting to "+host+":"+str(port))
|
||||
try:
|
||||
irc.connect((host, port))
|
||||
except Exception as err:
|
||||
print("Connection failed! "+err)
|
||||
context = ssl.create_default_context()
|
||||
with socket.create_connection((host, port), timeout=180) as sock:
|
||||
irc = context.wrap_socket(sock, server_hostname=host)
|
||||
|
||||
|
||||
def sendRaw(data):
|
||||
@ -84,26 +82,17 @@ def sendRaw(data):
|
||||
|
||||
def register(nick, host):
|
||||
print("Registering User...")
|
||||
try:
|
||||
sendRaw("USER "+nick+" "+host+" "+nick+" "+nick+"\n")
|
||||
except Exception as err:
|
||||
print("Failed! "+err)
|
||||
|
||||
|
||||
def name(nick):
|
||||
print("Setting Nickname to "+nick)
|
||||
try:
|
||||
sendRaw("NICK "+nick+"\n")
|
||||
except Exception as err:
|
||||
print("Failed! "+err)
|
||||
|
||||
|
||||
def auth(nick, password):
|
||||
print("Authenticating...")
|
||||
try:
|
||||
sendRaw("PRIVMSG NickServ :IDENTIFY "+nick+" "+password+"\n")
|
||||
except Exception as err:
|
||||
print(err)
|
||||
|
||||
|
||||
def join(chan):
|
||||
@ -111,15 +100,12 @@ def join(chan):
|
||||
try:
|
||||
sendRaw("JOIN "+chan+"\n")
|
||||
except Exception as err:
|
||||
print("Failed! "+err)
|
||||
print("Failed! "+str(err))
|
||||
|
||||
|
||||
def mode(nick):
|
||||
print("Setting modes +B-x")
|
||||
try:
|
||||
sendRaw("MODE "+nick+" +B-x\n")
|
||||
except Exception as err:
|
||||
print("Failed! "+err)
|
||||
|
||||
|
||||
def part(chan):
|
||||
@ -135,7 +121,7 @@ def say(chan, msg):
|
||||
sendRaw("PRIVMSG "+chan+" :"+msg+"\n")
|
||||
print("OK")
|
||||
except Exception as err:
|
||||
print("Error: "+err)
|
||||
print("Error: "+str(err))
|
||||
|
||||
|
||||
def raw(msg):
|
||||
@ -150,11 +136,18 @@ def me(chan, msg):
|
||||
try:
|
||||
sendRaw("PRIVMSG "+chan+" :\u0001ACTION "+msg+"\u0001\n")
|
||||
except Exception as err:
|
||||
print("Error: "+err)
|
||||
print("Error: "+str(err))
|
||||
|
||||
|
||||
def getData():
|
||||
try:
|
||||
raw = irc.recv(4096)
|
||||
except TimeoutError:
|
||||
print("Connection timed out!")
|
||||
sys.exit(0)
|
||||
if not raw:
|
||||
print("Connection lost!")
|
||||
sys.exit(0)
|
||||
try:
|
||||
data = raw.decode("UTF-8")
|
||||
except:
|
||||
@ -187,7 +180,7 @@ def is_registered(username):
|
||||
try:
|
||||
sendRaw("WHOIS "+str(username)+"\n")
|
||||
user_info = getMessage()
|
||||
regex = r"330 "+str(re.escape(nick))+" "+str(re.escape(username))+" \S+ :is logged in as"
|
||||
regex = rf"330 {str(re.escape(nick))} {str(re.escape(username))} \S+ :is logged in as"
|
||||
matches = re.finditer(regex, user_info, re.MULTILINE)
|
||||
for match in matches:
|
||||
acc_name = match.group(0).split()[3]
|
||||
@ -254,7 +247,6 @@ def ping(msg):
|
||||
|
||||
|
||||
def start(host, port, nick, password, chans):
|
||||
try:
|
||||
connect(host, port)
|
||||
sleep(2)
|
||||
register(nick, host)
|
||||
@ -268,8 +260,6 @@ def start(host, port, nick, password, chans):
|
||||
for chan in chans:
|
||||
join(chan)
|
||||
sleep(2)
|
||||
except Exception as err:
|
||||
print("FAIL: "+err)
|
||||
|
||||
|
||||
def command_loop():
|
||||
@ -280,11 +270,11 @@ def command_loop():
|
||||
if ircmsg.find("PING :") != -1:
|
||||
pingstring = ircmsg.strip("PING :")
|
||||
ping(pingstring)
|
||||
elif ircmsg.find("ERROR :Closing link") != -1:
|
||||
if ircmsg.find("ERROR :Closing link") != -1:
|
||||
print("Error. Lost Connection. Giving up!")
|
||||
os._exit(1)
|
||||
break
|
||||
elif ircmsg.find(" PRIVMSG ") != -1:
|
||||
if ircmsg.find(" PRIVMSG ") != -1:
|
||||
ircnick = ircmsg.split("!")[0][1:]
|
||||
channel = ircmsg.split(" PRIVMSG ", 1)[-1].split(" :", 1)[0]
|
||||
msg = ircmsg.split(channel+" :", 1)[1]
|
||||
@ -375,14 +365,14 @@ def command_loop():
|
||||
except:
|
||||
reason = "None"
|
||||
print("with no reason")
|
||||
if user == ircnick:
|
||||
say(channel, "You can't give rep to yourself. Selfish little prick!")
|
||||
continue
|
||||
try:
|
||||
acc_name = is_registered(user)
|
||||
give_acc = is_registered(ircnick)
|
||||
print("found account name for "+str(user)+": "+str(acc_name))
|
||||
if acc_name != None and give_acc != None:
|
||||
if acc_name == give_acc:
|
||||
say(channel, "You can't give rep to yourself. Selfish little prick!")
|
||||
continue
|
||||
give_rep(acc_name, user, give_acc, reason, channel)
|
||||
elif give_acc == None:
|
||||
say(channel, "You are not registered!")
|
||||
@ -475,8 +465,7 @@ def command_loop():
|
||||
# say(channel, "blp")
|
||||
# except Exception as err:
|
||||
# print("could not blp - "+str(err))
|
||||
else:
|
||||
print(f"Message not understood: {ircmsg}")
|
||||
|
||||
except Exception as err:
|
||||
print(err)
|
||||
|
||||
@ -510,7 +499,11 @@ class fefe_thread(threading.Thread):
|
||||
fefe_check()
|
||||
|
||||
def main():
|
||||
try:
|
||||
start(host, port, nick, password, set(join_chans + fefe_chans))
|
||||
except Exception as err:
|
||||
print("FAIL: "+str(err))
|
||||
sys.exit(1)
|
||||
thread_command = command_thread(1)
|
||||
#thread_fefe = fefe_thread(2)
|
||||
thread_command.start()
|
||||
|
Reference in New Issue
Block a user