Skip to content

Instantly share code, notes, and snippets.

@hornd
Created December 1, 2013 19:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hornd/7739826 to your computer and use it in GitHub Desktop.
Save hornd/7739826 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
"""
IRC Related stuff
"""
import sys
import socket
import re
import time
import imp
from random import choice
targets = [
"LARB", "RAW POTATO", "BABY CARROTS", "BURRITO", "CHILD'S SHOE",
"STAKES", "FISH OIL CAPSULES", "PECANS", "BLACKBERRIES",
"PEACHES", "TOMATOS", "A SINGLE GRAIN OF RICE", "KEY LIME PIE",
"GRITS", "NON-BELGIAN WAFFLE", "VIDALIA SWEET ONION", "POPCORN",
"MAYHAW JELLY", "CORONARITA", "NACHOS", "NATCHITOCHES MEAT PIE",
"MOXIE - THE STATE SOFT DRINK OF MAINE", "BLUE CRABS", "BAKED BEANS",
"CORN MUFFIN", "CRANBERRIES", "APPLE FRITTER", "MOREL",
"BIZOCOCHITO", "REFRIED BEANS", "SAUSAGES", "BISCUITS", "OKRA",
"BUTTERNUT SQUASH", "COFFEE MILK", "SHOOFLY PIE", "JELLO",
"RED BULL", "SUBWAY 5 DOLLAR FOOT LONG", "DEEP DISH PIZZA",
"A CHICAGO STYLE HOTDOG", "QUINOA", "BANANA", "CHACO TACO",
"HALF A BAGEL", "BISCUITS", "BUTTERMILK", "AN ASSORTMENT OF BRUNCH ITEMS"
]
class irc():
def __init__(self, plugin):
self.server = "irc.freenode.net"
self.nick = "FOODBOT"
self.channel = "#lita.io"
self.port = 6667
self.channels = []
def connect(self):
print "Connecting to %s..." % self.server
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
self.socket.connect((self.server, 6667))
self.connected = True
except (socket.error) as err:
print "Conenction error: %s" % err
exit(1)
print "Connected!"
self.send("NICK " + self.nick + " \r\n")
self.send("USER " + self.nick + " \"" + "Yum" + ".org\" \"" + "irc.freenode.net" + "\" :"+ "Foods\r\n")
time.sleep(5)
def send(self, msg):
print "Sending %s" % msg
self.socket.send(msg.encode())
def loop(self):
joined = 5
while 1:
buffer = self.socket.recv(1024);
self.handle_input(buffer);
time.sleep(0.8)
if joined > 0:
d = "JOIN " + self.channel #+ " self.password"
d = d.encode("UTF-8", 'replace')
self.send(d + "\r\n")
joined = joined - 1
time.sleep(0.8)
self.send("PRIVMSG " + self.channel + " :" + "Type !randomfood !!".encode("UTF-8", 'replace') + "\r\n")
def handle_input(self, buffer):
buffer = buffer.decode("UTF-8", 'replace')
if buffer == "":
print "Nothing received in buffer...\n"
if re.search("PING :", buffer):
print "Received ping request...\n"
self.send("PONG")
if re.search("!randomfood", buffer):
tosend = "Your random food is: [" + choice(targets) + "]";
self.send("PRIVMSG " + self.channel + " :" + tosend.encode("UTF-8", 'replace') + "\r\n")
def run(self):
self.connect();
self.loop();
if __name__ == "__main__":
bot = irc("irc.freenode.net")
bot.run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment