Exemplo n.º 1
0
 def add(self, user: User):
     return self._coll.update_one({
         "_id": user.id,
     }, {"$set": {
         "meta": user.to_dict()
     }},
                                  upsert=True)
Exemplo n.º 2
0
    def upsert_user(self, user: User):
        """Insert or if existing update user

        Args:
            user (:obj:`telegram.user.User`): Telegram Api User Object
        """
        self.users.update({'id': user.id}, user.to_dict(), upsert=True)
Exemplo n.º 3
0
 def add(self, user: User) -> UpdateResult:
     return self._coll.update_one(
         {
             "_id": int(user.id),
         },
         {"$set": {
             "meta": user.to_dict(),
         }},
         upsert=True,
     )
Exemplo n.º 4
0
    def change_points(self, chat_id, user: User, value):
        chat_doc = self.db.collection("chats").document(str(chat_id))
        try:
            chat_doc.create({})
        except AlreadyExists:
            pass

        try:
            self.db.collection("users").document(str(user.id)).update(
                user.to_dict())
        except NotFound:
            self.db.collection("users").document(str(user.id)).set(
                user.to_dict())

        user_doc = self.db.collection("users").document(str(user.id))

        try:
            chat_doc.collection("scores").document(user.first_name).update(
                dict(score=Increment(value), user=user_doc))
        except NotFound:
            chat_doc.collection("scores").document(user.first_name).set(
                dict(score=value, user=user_doc))
Exemplo n.º 5
0
 def add(self, user: User):
     now: datetime = datetime.now()
     return self._coll.insert_one({
         "_id": user.id,
         "meta": user.to_dict(),
         "shot_counter": 0,
         "miss_counter": 0,
         "dead_counter": 0,
         "total_time_in_club": timedelta().seconds,
         # TODO: wat about ranks?
         # "rank": meh,
         "first_shot": now,
         "last_shot": now,
     })