Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
added readme
  • Loading branch information
edsu committed Nov 21, 2011
1 parent 8655a72 commit 1c7ba35
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 6 deletions.
2 changes: 2 additions & 0 deletions .gitignore
@@ -1,2 +1,4 @@
mboxes/*
*.pyc
settings.py
*.db
5 changes: 5 additions & 0 deletions README.md
@@ -0,0 +1,5 @@
jobs4lib
--------

A django app that collects job announcements from the code4lib discussion
list and puts them on the Web.
Empty file added __init__.py
Empty file.
20 changes: 19 additions & 1 deletion jobs/models.py
Expand Up @@ -9,7 +9,13 @@

from django.db import models

class EmailKeyword(models.Model):
created = models.DateTimeField(auto_now_add=True)
name = models.CharField(max_length=255)
emails = models.ManyToManyField('JobEmail', related_name='keywords')

class JobEmail(models.Model):
created = models.DateTimeField(auto_now_add=True)
from_name = models.CharField(max_length=255)
from_address = models.CharField(max_length=255)
from_domain = models.CharField(max_length=255)
Expand Down Expand Up @@ -38,7 +44,6 @@ def tags(self):
words = nltk.word_tokenize(self.body)
return nltk.pos_tag(words)


@classmethod
def new_from_msg(klass, msg):
if not is_job(msg):
Expand All @@ -63,6 +68,19 @@ def new_from_msg(klass, msg):
return None

e.save()

# add keywords
for n in e.proper_nouns():
n = n.lower()
try:
kw = EmailKeyword.objects.get(name=n)
kw.emails.add(e)
kw.save()
except EmailKeyword.DoesNotExist:
kw = EmailKeyword.objects.create(name=n)
kw.emails.add(e)
kw.save()

return e

def normalize_name(name):
Expand Down
10 changes: 5 additions & 5 deletions jobs/tests.py
Expand Up @@ -5,6 +5,9 @@

class JobsTests(unittest.TestCase):

def setUp(self):
JobEmail.objects.all().delete()

def test_email(self):
msg = email.message_from_file(open("test-data/job-email"))
e = JobEmail.new_from_msg(msg)
Expand All @@ -14,8 +17,5 @@ def test_email(self):
self.assertEqual(e.subject, '[CODE4LIB] Job Posting: Head of Web & Emerging Technologies, University of Miami - revised')
self.assertTrue('collaborates' in e.body)
self.assertTrue(e.message_id, '<7933CD19EEFCC94392323A994F6F1EDF01DBB52AE8@MBX03.cgcent.miami.edu>')

def test_tagging(self):
msg = email.message_from_file(open("test-data/job-email"))
e = JobEmail.new_from_msg(msg)
print e.tags()
keywords = [kw.name for kw in e.keywords.all()]
self.assertTrue('drupal' in keywords)

0 comments on commit 1c7ba35

Please sign in to comment.