Exemple #1
0
    def add_unit(self, board_id, text, position):
        pith, transclusions = self.gm._get_pith(board_id, text)
        position = Position(x=position["x"], y=position["y"])
        unit = Unit(board_id=board_id, pith=pith, position=position)
        unit.id = "{}:{}".format(unit.board_id, unit.short_id)

        self.gm.units.insert_one(unit.to_mongo())
        unit_id = unit.short_id
        self.gm._insert_transclusions(board_id, unit_id, transclusions)
        self._record_unit_update(board_id, unit_id)
        return {"unit": self.gm._get_extended_unit(board_id, unit_id)}
Exemple #2
0
    def post(self, board_id, discussion_id, user_id, text, flairs):
      pith, transclusions = self.gm._get_pith(board_id, text)
      user = self.gm.users.find_one({"board_id": board_id, "short_id": user_id})

      unit = Unit(board_id=board_id, pith=pith, chat=True, 
        author=user_id, author_name=user["nickname"], flairs=flairs)
      unit.id = "{}:{}".format(unit.board_id, unit.short_id)

      self.gm.units.insert_one(unit.to_mongo())
      unit_id = unit.short_id
      self.gm._insert_transclusions(board_id, unit_id, transclusions)
      self.gm.discussions.update_one(
        {"short_id" : discussion_id, "board_id": board_id},
        {"$push": {"chat": unit_id}}
      )
      return {"unit": self.gm._get_chat_unit(board_id, unit_id)}
Exemple #3
0
    def publish(self, board_id, discussion_id, unit_id, position):
        # make copy
        orig_unit = self.gm.units.find_one({
            "short_id": unit_id,
            "board_id": board_id
        })
        position = Position(x=position["x"], y=position["y"])

        pith, transclusions = self.gm._get_pith(board_id, orig_unit["pith"])
        unit = Unit(board_id=board_id, pith=pith, position=position)
        unit.id = "{}:{}".format(unit.board_id, unit.short_id)

        self.gm.units.insert_one(unit.to_mongo())
        unit_id = unit.short_id
        self.gm._insert_transclusions(board_id, unit_id, transclusions)
        self._record_unit_update(board_id, unit_id)
        return {"unit": self.gm._get_extended_unit(board_id, unit_id)}
Exemple #4
0
    def create_notice_unit(self, board_id, discussion_id, message, user_id):
        # clean it of transclusions
        message = self._wipe_pith(message)

        user = self.users.find_one({"short_id": user_id, "board_id": board_id})
        unit = Unit(board_id=board_id,
                    pith=message,
                    chat=True,
                    author=user_id,
                    author_name=user["nickname"],
                    flairs=[],
                    notice=True)
        unit.id = "{}:{}".format(unit.board_id, unit.short_id)

        self.units.insert_one(unit.to_mongo())
        unit_id = unit.short_id
        self.discussions.update_one(
            {
                "short_id": discussion_id,
                "board_id": board_id
            }, {"$push": {
                "chat": unit_id
            }})
        return unit