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
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
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
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