예제 #1
0
파일: post.py 프로젝트: Naavi/onme
 def _build_cache(self):
     out = {}
     file = File.open_unknown_type(self.model.file)
     out["id"] = self.model.id
     out["file"] = {"url": file.get_url(), "id": file.model.id}
     items_out = []
     items = models.Item.objects.filter(post=self.model)
     for item in items:
         me = {
             "source": {
                 "lat": item.source.lat,
                 "long": item.source.long,
                 "name": item.source.name,
                 "external_id": item.source.external_id,
                 "host": item.source.host,
             },
             "article": {"name": item.article.name},
         }
         items_out.append(me)
     out["items"] = items_out
     out["looks"] = models.Look.objects.filter(post=self.model).count()
     comments_out = []
     comments = models.Comment.objects.filter(post=self.model).order_by("created_at")
     for comment in comments:
         hash_tags_out = []
         hash_tags = models.HashTag.objects.filter(comment=comment)
         for hash_tag in hash_tags:
             hash_tags_out.append(hash_tag.text)
         mentions_out = []
         mentions = models.Mention.objects.filter(comment=comment)
         for mention in mentions:
             mentions_out.append({"username": mention.user.username, "text": mention.text})
         me = {
             "created_by": comment.created_by.username,
             "hash_tags": hash_tags_out,
             "mentions": mentions_out,
             "text": comment.text,
             "created_at": comment.created_at.strftime("%s"),
         }
         comments_out.append(me)
     out["comments"] = comments_out
     out["created_by"] = self.model.created_by.username
     out["created_at"] = self.model.created_at.strftime("%s")
     user = models.User.objects.filter(ref=self.model.created_by)[0]
     if user.avatar:
         file = File.open_unknown_type(user.avatar)
         out["mugshot"] = file.get_url()
         out["mugshot_id"] = file.model.id
     self.model.cache = json.dumps(out)
     self.model.save()
예제 #2
0
파일: post.py 프로젝트: Naavi/onme
 def post_root(self):
     if "file" in self.request.FILES:
         upload = self.request.FILES["file"]
         file = File.create_unknown_type(
             upload.temporary_file_path(), self.request.user, mime_type=upload.content_type
         )
     elif "file" in self.request.POST:
         temp = tempfile.NamedTemporaryFile()
         temp.write(self.request.POST["file"].encode("UTF-8"))
         temp.flush()
         file = File.create_unknown_type(temp.name, self.request.user, mime_type="image/jpeg")
     self.model = models.Post(file=file.model, created_by=self.request.user)
     self.model.save()
     if "comment" in self.args:
         self._build_comment(self.args["comment"])
     if "items" in self.args:
         self._build_items(json.loads(self.args["items"]))
     self._build_cache()
     return {"id": self.model.id}