def get_random_path(instance, filename): """ :param filename base string for generated name :return: a unique string filename """ return u"{}_{}".format(id_generator(8), filename) # support nonenglish characters with u'
def create_user_profile(self, email, name, surname, picture): try: user_profile = UserProfile.objects.get(email=email) self.logger.info("Sign in as %s with id %s", user_profile.username, user_profile.id) except UserProfile.DoesNotExist: try: self.logger.info( "Creating new user with email %s, name %s, surname %s, picture %s", email, name, surname, picture) # replace all characters but a valid one with '-' and cut to 15 chars username = re.sub('[^0-9a-zA-Z-_]+', '-', email.rsplit('@')[0])[:15] check_user(username) except ValidationError as e: self.logger.info("Can't use username %s because %s", username, e) username = id_generator(8) self.logger.debug("Generated username: %s", username) user_profile = UserProfile(name=name, surname=surname, email=email, username=username) self.download_http_photo(picture, user_profile) user_profile.save() RoomUsers(user_id=user_profile.id, room_id=settings.ALL_ROOM_ID, notifications=False).save() return user_profile
def get_user_name(self, email, name, surname): try: # replace all characters but a valid one with '-' and cut to 15 chars if email: username = re.sub('[^0-9a-zA-Z-_]+', '-', email.rsplit('@')[0])[:15] else: username = f'{name}_{surname}' check_user(username) except ValidationError as e: self.logger.info("Can't use username %s because %s", username, e) username = id_generator(8) self.logger.debug("Generated username: %s", username) return username
def offer_webrtc_connection(self, in_message): room_id = in_message[VarNames.ROOM_ID] content = in_message.get(VarNames.CONTENT) js_id = in_message[VarNames.JS_MESSAGE_ID] connection_id = id_generator(RedisPrefix.CONNECTION_ID_LENGTH) # use list because sets dont have 1st element which is offerer self.async_redis_publisher.hset(WEBRTC_CONNECTION, connection_id, self.id) self.async_redis_publisher.hset(connection_id, self.id, WebRtcRedisStates.READY) opponents_message = self.offer_webrtc(content, connection_id, room_id, in_message[VarNames.EVENT]) self_message = self.set_connection_id(js_id, connection_id) self.ws_write(self_message) self.logger.info('!! Offering a webrtc, connection_id %s', connection_id) self.publish(opponents_message, room_id, True)
def offer_webrtc_connection(self, in_message): connection_id = id_generator(RedisPrefix.CONNECTION_ID_LENGTH) self.create_webrtc_connection(in_message, connection_id)
def create_id(user_id, random=None): if user_id is None: user_id = 0 if not random or len(random) != settings.WS_ID_CHAR_LENGTH: random = id_generator(settings.WS_ID_CHAR_LENGTH) return "{:04d}:{}".format(user_id, random), random
def __generate_session__(self, user_id): session = id_generator(32) sync_redis.hset('sessions', session, user_id) return session
def create_id(user_id=0, random=None): if not random or len(random) != settings.WS_ID_CHAR_LENGTH: random = id_generator(settings.WS_ID_CHAR_LENGTH) # if user is not authorized user_id would be None, and we would get unsupported format string return "{:04d}:{}".format(user_id if user_id else 0, random), random
def get_random_path(instance, filename): """ :param filename base string for generated name :return: a unique string filename """ return "{}_{}".format(id_generator(8), filename)