Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- """
- seen.py - Phenny seen module
- """
- import sqlite3 as lite
- import os
- import datetime
- import time
- def db_connect(db):
- return lite.connect(db, check_same_thread = False)
- def setup(phenny):
- seen_db = os.path.join(os.path.expanduser('~/.phenny'), 'seen.db')
- seen_conn = db_connect(seen_db)
- c = seen_conn.cursor()
- c.execute('''create table if not exists seen(
- nick varchar(31) NOT NULL PRIMARY KEY,
- channel varchar(31) NOT NULL,
- message text,
- event varchar(10) NOT NULL,
- time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
- );''')
- c.close()
- seen_conn.commit()
- seen_conn.close()
- setup.thread = False
- def smart_truncate(content):
- suffix='...'
- length=int(150)
- if len(content) <= length:
- return content
- else:
- return content[:length].rsplit(' ', 1)[0]+suffix
- def seen(phenny, input):
- """Gives when a user was last seen."""
- inputnick = input.group(2)
- seen_db = os.path.join(os.path.expanduser('~/.phenny'), 'seen.db')
- seen_conn = db_connect(seen_db)
- conn = db_connect(seen_db)
- c = conn.cursor()
- query = (inputnick,)
- c.execute("SELECT * FROM seen WHERE nick LIKE ?;", query)
- resultsun = c.fetchall()
- results = resultsun[0]
- #try:
- #return phenny.say(str(results))
- nick = results[0]
- channel = results[1]
- message = results[2]
- event = results[3]
- seentimeun = results[4]
- #except:
- # nick = None
- phenny.say('test ' + str(type(seentimeun)))
- if not nick:
- phenny.say("Sorry I haven't seen " + inputnick)
- else:
- seentime = time.strftime('%A %B %d, %G at %I:%M:%S %p GMT',seentimeun)
- message = smart_truncate(message)
- if event == "PRIVMSG":
- phenny.say(nick + " was last seen in " + channel + ' saying "' + message + '" at ' + seentime)
- elif event == "JOIN":
- phenny.say(nick + " was last seen joining " + channel + " at " + seentime)
- elif event == "PART":
- phenny.say(nick + " was last seen leaving " + channel + ' with message "' + message + '" at ' + seentime)
- elif event == "QUIT":
- phenny.say(nick + ' was last seen quitting with message "' + message + '" at ' + seentime)
- c.close()
- seen.commands = ['seen']
- seen.example = ".seen somenick"
- def seenstore(phenny, input, event):
- nick = input.nick
- channel = input.sender
- if event == "JOIN":
- message = None
- else:
- message = input.group()
- seen_db = os.path.join(os.path.expanduser('~/.phenny'), 'seen.db')
- seen_conn = db_connect(seen_db)
- conn = db_connect(seen_db)
- c = conn.cursor()
- entry = (nick, channel, message, event)
- c.execute("INSERT OR REPLACE INTO seen(nick, channel, message, event) VALUES(?, ?, ?, ?)", entry)
- conn.commit()
- c.close()
- conn.close()
- def seenmsg(phenny, input):
- event = "PRIVMSG"
- seenstore(phenny, input, event)
- seenmsg.rule = r'(.*)'
- seenmsg.priority = 'low'
- #def seenjoin(phenny, input):
- # event = "JOIN"
- # seenstore(phenny, input, event)
- #seenjoin.event = 'JOIN'
- #seenjoin.rule = r'(.*)'
- #seenjoin.priority = 'low'
- #def seenquit(phenny, input):
- # event = "QUIT"
- # seenstore(phenny, input, event)
- #seenquit.event = 'QUIT'
- #seenquit.rule = r'(.*)'
- #seenquit.priority = 'low'
- #def seenpart(phenny, input):
- # event = "PART"
- # seenstore(phenny, input, event)
- #seenpart.event = 'PART'
- #seenpart.rule = r'(.*)'
- #seenpart.priority = 'low'
Advertisement
Add Comment
Please, Sign In to add comment