Example #1
0
def post_link(user, url, title, topic_names):
	'''
	'''
	domain, domain_post = add_link_domain(url)
	
	link = Link(id= get_available_id(), url=url, user=user, title=title)
	
	if domain:
		link.domain = domain
	else:
		return False
	
	if len(url) > URL_MAX_LEN:
		client = googl.Googl("AIzaSyDL2zRCt7DmDZV-1_QQY6HZnterAZ3Kv84")
		try:
			result = client.shorten(url)
		except:
			return False
		else:
			url = result['id']
			link.url = url
	link.save()
	
	for topic_name in topic_names:
		topic = add_link_topic(topic_name, user, url, domain)
		link.topics.add(topic)
		
		if not FILTER:
			if topic.topic_links.filter(url__iexact=url).count() == 1:
				Dynamic.objects.create(column=topic.get_column(),
				                       way=WAY_LINK_TOPIC_POST,
				                       content_object=link)
	
	if not domain_post:
		Dynamic.objects.create(column=domain.get_column(),
		                       way=WAY_LINK_DOMAIN_POST,
		                       content_object=link)
	
	
	Dynamic.objects.create(column=user.userprofile.get_column(),
	                       way=WAY_LINK_USER_POST,
	                       content_object=link)
	
	UserData.objects.filter(user=user).update(n_links=F('n_links') + 1)
	
	return link
Example #2
0
def post_link(user, url, title, topic_names):
    '''
	'''
    domain, domain_post = add_link_domain(url)

    link = Link(id=get_available_id(), url=url, user=user, title=title)

    if domain:
        link.domain = domain
    else:
        return False

    if len(url) > URL_MAX_LEN:
        client = googl.Googl("AIzaSyDL2zRCt7DmDZV-1_QQY6HZnterAZ3Kv84")
        try:
            result = client.shorten(url)
        except:
            return False
        else:
            url = result['id']
            link.url = url
    link.save()

    for topic_name in topic_names:
        topic = add_link_topic(topic_name, user, url, domain)
        link.topics.add(topic)

        if not FILTER:
            if topic.topic_links.filter(url__iexact=url).count() == 1:
                Dynamic.objects.create(column=topic.get_column(),
                                       way=WAY_LINK_TOPIC_POST,
                                       content_object=link)

    if not domain_post:
        Dynamic.objects.create(column=domain.get_column(),
                               way=WAY_LINK_DOMAIN_POST,
                               content_object=link)

    Dynamic.objects.create(column=user.userprofile.get_column(),
                           way=WAY_LINK_USER_POST,
                           content_object=link)

    UserData.objects.filter(user=user).update(n_links=F('n_links') + 1)

    return link
Example #3
0
def post_discuss(user, title, detail, topic_names):
	'''
	'''
	discuss = Discuss(id=get_available_id(),
	                  user=user,
	                  title=title,
	                  detail=detail)
	discuss.last_active_time = now()
	discuss.last_active_user = user
	discuss.save()
	
	for topic_name in topic_names:
		topic = add_discuss_topic(topic_name, user)
		discuss.topics.add(topic)
		
		column = topic.get_column()
		
		DiscussIndex.objects.create(column=column,
		                            way=WAY_DISCUSS_TOPIC_POST,
		                            discuss=discuss,
		                            last_active_time=timezone.now())
		
		if not FILTER:
			Dynamic.objects.create(column=column,
			                       way=WAY_DISCUSS_TOPIC_POST,
			                       content_object=discuss)
	
	user.userdata.discusses.add(discuss)
	
	DiscussIndex.objects.create(column=user.userprofile.get_column(),
	                            way=WAY_DISCUSS_USER_POST,
	                            discuss=discuss,
	                            last_active_time=timezone.now())
	
	Dynamic.objects.create(column=user.userprofile.get_column(),
	                       way=WAY_DISCUSS_USER_POST,
	                       content_object=discuss)
	
	UserData.objects.filter(user=user).update(n_discusses=F('n_discusses') + 1)
	
	return discuss
Example #4
0
def post_discuss(user, title, detail, topic_names):
    '''
	'''
    discuss = Discuss(id=get_available_id(),
                      user=user,
                      title=title,
                      detail=detail)
    discuss.last_active_time = now()
    discuss.last_active_user = user
    discuss.save()

    for topic_name in topic_names:
        topic = add_discuss_topic(topic_name, user)
        discuss.topics.add(topic)

        column = topic.get_column()

        DiscussIndex.objects.create(column=column,
                                    way=WAY_DISCUSS_TOPIC_POST,
                                    discuss=discuss,
                                    last_active_time=timezone.now())

        if not FILTER:
            Dynamic.objects.create(column=column,
                                   way=WAY_DISCUSS_TOPIC_POST,
                                   content_object=discuss)

    user.userdata.discusses.add(discuss)

    DiscussIndex.objects.create(column=user.userprofile.get_column(),
                                way=WAY_DISCUSS_USER_POST,
                                discuss=discuss,
                                last_active_time=timezone.now())

    Dynamic.objects.create(column=user.userprofile.get_column(),
                           way=WAY_DISCUSS_USER_POST,
                           content_object=discuss)

    UserData.objects.filter(user=user).update(n_discusses=F('n_discusses') + 1)

    return discuss
Example #5
0
def post_comment(user, content, obj, parent=None):
	'''
	'''
	comment = Comment(id=get_available_id(),
	                  user=user,
	                  content=content,
	                  content_object=obj)
	
	if parent and isinstance(parent, Comment):
		comment.parent_comment = parent
		parent.n_comment += 1
		parent.save()
	
	topics = obj.topics.all()
	if isinstance(obj, Link):
		comment.way = 'l'
		for topic in topics:
			topic_ship_update(topic=topic, user=user,
			                  domain=obj.domain, is_comment=True)
	elif isinstance(obj, Discuss):
		comment.way = 'd'
		for topic in topics:
			topic_ship_update(topic=topic, user=user,
			                  is_comment=True)
	else:
		return False
	
	comment.save()
	
	if parent and isinstance(parent, Comment):
		if user != parent.user:
			creat_remind(parent.user, user, REMIND_NEW_COMMENT, comment)
	else:
		if user != obj.user:
			creat_remind(obj.user, user, REMIND_NEW_COMMENT, comment)
	
	if isinstance(obj, Link):
		Dynamic.objects.create(column=user.userprofile.get_column(),
		                       way=WAY_LINK_COMMENT,
		                       content_object=comment,
		                       comment_object=obj)
	
	elif isinstance(obj, Discuss):
		Dynamic.objects.create(column=user.userprofile.get_column(),
		                       way=WAY_DISCUSS_COMMENT,
		                       content_object=comment,
		                       comment_object=obj)
		
		DiscussIndex.objects.filter(discuss=obj).update(
		                            last_active_time=timezone.now(),
		                            last_active_user=user)
		
		obj.last_active_time = timezone.now()
		obj.last_active_user = user
		
		if not user.userdata.discusses.filter(id=obj.id).count():
			user.userdata.discusses.add(obj)
		
	else:
		pass
	
	obj.n_comment += 1
	obj.save()
	
	UserData.objects.filter(user=user).update(n_comments=F('n_comments') + 1)
	
	return comment