Skip to content
This repository has been archived by the owner on Oct 25, 2019. It is now read-only.

Commit

Permalink
Added .posted (local version)
Browse files Browse the repository at this point in the history
  • Loading branch information
andreimarcu committed Apr 6, 2014
1 parent 2da9ed0 commit a671133
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 3 deletions.
15 changes: 12 additions & 3 deletions modules/head.py
Expand Up @@ -12,6 +12,7 @@
import time
from html.entities import name2codepoint
import web
from modules.posted import check_posted
from tools import deprecated


Expand Down Expand Up @@ -89,7 +90,7 @@ def noteuri(phenny, input):

def snarfuri(phenny, input):
uri = input.group(1)
title = gettitle(phenny, uri)
title = gettitle(phenny, input, uri)

if title:
phenny.msg(input.sender, title)
Expand All @@ -98,7 +99,7 @@ def snarfuri(phenny, input):
snarfuri.thread = True


def gettitle(phenny, uri):
def gettitle(phenny, input, uri):
if not ':' in uri:
uri = 'http://' + uri
uri = uri.replace('#!', '?_escaped_fragment_=')
Expand Down Expand Up @@ -179,10 +180,18 @@ def e(m):
title = title.replace('\n', '')
title = title.replace('\r', '')
title = "[ {0} ]".format(title)

if "posted" in phenny.variables:
posted = check_posted(phenny, input, uri)

if posted:
title = "{0} (posted: {1})".format(title, posted)


else:
title = None
return title


if __name__ == '__main__':
print(__doc__.strip())
print(__doc__.strip())
71 changes: 71 additions & 0 deletions modules/posted.py
@@ -0,0 +1,71 @@
#!/usr/bin/python3
"""
posted.py - Remembers who posted which URL, can show on URL match.
author: andreim <andreim@andreim.net>
"""
import os
import sqlite3
from ago import human


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

c = conn.cursor()
c.execute('''create table if not exists posted (
channel varchar(255),
nick varchar(255),
url varchar(512),
time timestamp date default (datetime('now', 'localtime'))
);''')

c.close()
conn.close()


def check_posted(phenny, input, url):
if url:
conn = sqlite3.connect(phenny.posted_db,
detect_types=sqlite3.PARSE_DECLTYPES)
c = conn.cursor()
c.execute("SELECT nick, time FROM posted WHERE channel=? AND url=?",
(input.sender, url))
res = c.fetchone()

posted = None

if res:
nickname = res[0]
time = human(res[1])

posted = "{0} by {1}".format(time, nickname)


else:
c.execute("INSERT INTO posted (channel, nick, url) VALUES (?, ?, ?)",
(input.sender, input.nick, url))
conn.commit()

conn.close()

return posted


def posted(phenny, input):
if not input.group(2):
return phenny.say(".posted <URL> - checks if URL has been posted"
+ " before in this channel.")
url = input.group(2)

posted = check_posted(phenny, input, url)
if posted:
# when the day comes when you can inhibit snarfuri if modules are called
# phenny.reply("URL was posted {0}".format(posted))
pass
else:
phenny.reply("I don't remember seeing this URL in this channel.")

posted.thread = False
posted.commands = ["posted"]
1 change: 1 addition & 0 deletions requirements.txt
Expand Up @@ -2,3 +2,4 @@ lxml
mock
nose
requests
ago

0 comments on commit a671133

Please sign in to comment.