def addPost(nick, channel, url, descr): """ Add post to database >>> addPost('test-nick', 'test-channel', 'http://example.com', 'Super-cool') Traceback (most recent call last): ... ValueError: Invalid channel >>> u = User() >>> u.save() >>> inw = IrcNetwork() >>> inw.save() >>> ic = IrcChannel(name="ircious", network=inw, requested_by=u) >>> ic.save() >>> addPost('test-nick', 'ircious', 'http://example.com', 'Super-cool') >>> lo = LinkObj.objects.filter(last_post__comment='Super-cool')[0] >>> lo.screenshot >>> addPost('test-nick2', 'ircious', 'http://youtube.com/watch?v=_y36fG2Oba0', 'Great!') >>> lo = LinkObj.objects.filter(last_post__comment='Great!')[0] >>> lo.screenshot u'http://img.youtube.com/vi/_y36fG2Oba0/default.jpg' >>> addPost('test-nick3', 'ircious', 'http://example.com', 'Amazing') >>> lo = LinkObj.objects.all()[0] >>> lo.last_post.comment u'Amazing' """ correctuser = getUserWithNick(nick) channelobjs = IrcChannel.objects.filter(name=channel) if not channelobjs: raise ValueError, "Invalid channel" channelobj = channelobjs[0] existinglinkobj = LinkObj.objects.filter(url=url) if not existinglinkobj: try: title = getTitleFromUrl(url) except IOError: return if 'youtube' in url: screenshot_url = getYoutubeScreenshotUrl(url) elif 'flickr' in url: screenshot_url = getFlickrScreenshotUrl(url) else: screenshot_url = None slug = slugify(title) if LinkObj.objects.filter(slug=slug): num = 1 while LinkObj.objects.filter(slug=slug+str(num)): num += 1 slug = slug + str(num) correctlinkobj = LinkObj(url=url, title=title, slug=slug, screenshot=screenshot_url) correctlinkobj.save() else: correctlinkobj = existinglinkobj[0] lp = LinkPost(link=correctlinkobj, user=correctuser, comment=descr, channel=channelobj) lp.save() correctlinkobj.last_post = lp correctlinkobj.save()
def setUp(self): TestCase.setUp(self) u = User() u.save() n = Nick(nickname="ozamosi", user=u) n.save() inw = IrcNetwork() inw.save() ic = IrcChannel(network=inw, name="#ircious", requested_by=u) ic.save() lo = LinkObj(slug='test-one-that-actually-does-exist', url='http://example.com', title='Test') lo.save() lp = LinkPost(comment="Test", user=u, link=lo, channel=ic) lp.save() lo.last_post = lp lo.save()