954,515 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

IRC bot reading files and sending contents

Hello all!

I'm using the phenny IRC bot, and I've got this script, to greet people when they join a channel:

#!/usr/bin/env python
"""
greet.py - Phenny Sahana-Eden Greet Module
(c) 2011 Nolan Lum <nol888@gmail.com>
"""

import os, re
import sqlite3

def setup(self):
    fn = self.nick + '-' + self.config.host + '.greet.db'
    fn = os.path.join(os.path.expanduser('~/.phenny'), fn)

    self.g_conn = sqlite3.connect(fn)
    self.g_conn.execute("""CREATE TABLE IF NOT EXISTS users(
        name VARCHAR(60) PRIMARY KEY)""")

    fn = self.nick + '-' + self.config.host + '.greet.txt'
    fn = os.path.join(os.path.expanduser('~/.phenny'), fn)
    if not os.path.exists(fn):
        try: f = open(fn, 'w')
        except OSError: pass
        else:
            f.write('Welcome to #example, %s!\nptressel')
            f.close()

    try:
        f = open(fn, 'r')
        self.g_greet = f.readline().strip()
        self.g_pingList = []
        line = f.readline()

        while line:
            self.g_pingList.append(line.strip())
            line = f.readline()
    except OSError: pass

def f_join(phenny, input):
    if input.nick == phenny.nick:
        return

    cur = phenny.g_conn.cursor()
    cur.execute("SELECT name FROM users WHERE name = ?", (input.nick,))
    if not cur.fetchone():
        phenny.msg(input.sender, phenny.g_greet % (input.nick))
        if phenny.g_pingList:
            phenny.msg(input.sender, ', '.join(phenny.g_pingList) + ': ping');
        cur.execute("INSERT INTO users VALUES (?)", (input.nick,))
        phenny.g_conn.commit()

f_join.priority = 'low'
f_join.event = 'JOIN'
f_join.rule = r'(.*)'
f_join.thread = False


and I need to change the line 24 - 25 part to do something like this; Instead of having \n and then the nick(s) to be pinged, I would like it to read a list of nicks from another file (list.txt or similar) and then send it. It's kinda hard to describe....for example, at the moment when someone joins the channel, the bot goes:[CODE]mang0 joined #example
bobthebot: Welcome to #example, mang0!
bobthebot: ping: ptressel[CODE]
What I would prefer it to do is this: I want the "ping: ptressel" bit to be optional (is that as easy as putting a # before \nptressel? You take out the # to make it active?) and I want the "Welcome to #example" to be in a /notice. (Again, would that be as easy as changing it to /notice %s Welcome to #example"?) This is a fairly urgent question, so all answers are appreciated! More info can be given if needed :)
-mang0

mang0
Newbie Poster
6 posts since Mar 2011
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: