package io.evercam;
import java.util.Random;
import java.util.UUID;
public class RandomUser {
public static final String FIRST_NAME = "JavaWrapper";
public static final String LAST_NAME = "TestUser";
public static final String COUNTRY_CODE = "us";
public static final Float LOCATION_LAT = 37.377166f;
public static final Float LOCATION_LNG = -122.086966f;
public static final String LOCATION_LAT_STRING = "37.377166f";
public static final String LOCATION_LNG_STRING = "-122.086966f";
public static final String CAMERA_NAME = "Random Camera";
public static final String CAMERA_INTERNAL_HOST = "192.168.1.2";
public static final String CAMERA_EXTERNAL_HOST = "123.123.123.123";
public static final int CAMERA_INTERNAL_HTTP = 81;
public static final int CAMERA_INTERNAL_RTSP = 554;
public static final int CAMERA_EXTERNAL_HTTP = 8080;
public static final int CAMERA_EXTERNAL_RTSP = 554554;
public static final String CAMERA_USERNAME = "username";
public static final String CAMERA_PASSWORD = "password";
public static final String CAMERA_JPG_URL = "/snapshot.jpg";
public static final String CAMERA_H264_URL = "/h264";
public static final String CAMERA_MJPG_URL = "/mjpg";
public static final String CAMERA_MPEG_URL = "/mpeg";
public static final String CAMERA_AUDIO_URL = "/audio";
public static final String CAMERA_TIMEZONE = "Etc/UTC";
public static final String CAMERA_VENDOR = "hikvision";
public static final String CAMERA_VENDOR_NAME = "Hikvision Digital Technology";
public static final String CAMERA_MODEL_ID = "hikvision" + Model.DEFAULT_MODEL_SUFFIX;
public static final String CAMERA_MODEL_NAME = Model.DEFAULT_MODEL_NAME;
public static final String CAMERA_MAC = "11:11:11:11:11:11";
public static final String CAMERA_INTERNAL_URL = "http://192.168.1.2:81";
public static final String CAMERA_EXTERNAL_URL = "http://123.123.123.123:8080";
public static final String CAMERA_INTERNAL_JPG_URL = "http://192.168.1.2:81/snapshot.jpg";
public static final String CAMERA_EXTERNAL_JPG_URL = "http://123.123.123.123:8080/snapshot.jpg";
public static final String CAMERA_INTERNAL_MJPG_URL = "http://192.168.1.2:81/mjpg";
public static final String CAMERA_EXTERNAL_MJPG_URL = "http://123.123.123.123:8080/mjpg";
public static final String CAMERA_INTERNAL_MPEG_URL = "rtsp://192.168.1.2:554/mpeg";
public static final String CAMERA_EXTERNAL_MPEG_URL = "rtsp://123.123.123.123:554554/mpeg";
public static final String CAMERA_INTERNAL_AUDIO_URL = "rtsp://192.168.1.2:554/audio";
public static final String CAMERA_EXTERNAL_AUDIO_URL = "rtsp://123.123.123.123:554554/audio";
public static final String CAMERA_INTERNAL_RTSP_URL = "rtsp://192.168.1.2:554/h264";
public static final String CAMERA_EXTERNAL_RTSP_URL = "rtsp://123.123.123.123:554554/h264";
public static final String CAMERA_INTERNAL_RTSP_URL_WITH_AUTH = "rtsp://username:password@192.168.1.2:554/h264";
public static final String CAMERA_EXTERNAL_RTSP_URL_WITH_AUTH = "rtsp://username:password@123.123.123.123:554554/h264";
private User user;
private String username;
private String password;
private String email;
public RandomUser() throws EvercamException {
String randomUsername = randomUsername();
String randomEmail = randomEmail();
String randomPassword = randomUUID();
this.username = randomUsername;
this.email = randomEmail;
this.password = randomPassword;
UserDetail detail = new UserDetail();
detail.setFirstname(FIRST_NAME);
detail.setLastname(LAST_NAME);
detail.setCountrycode(COUNTRY_CODE);
detail.setEmail(randomEmail);
detail.setUsername(randomUsername);
detail.setPassword(randomPassword);
user = User.create(detail);
}
public Camera addRandomCamera(boolean isPublic) throws EvercamException {
ApiKeyPair apiKeyPair = API.requestUserKeyPairFromEvercam(getUsername(), getPassword());
API.setUserKeyPair(apiKeyPair.getApiKey(), apiKeyPair.getApiId());
CameraDetail detail = new CameraBuilder(CAMERA_NAME, isPublic).setInternalHost(CAMERA_INTERNAL_HOST).setInternalHttpPort(CAMERA_INTERNAL_HTTP).setInternalRtspPort(CAMERA_INTERNAL_RTSP).setExternalHost(CAMERA_EXTERNAL_HOST).setExternalHttpPort(CAMERA_EXTERNAL_HTTP).setExternalRtspPort(CAMERA_EXTERNAL_RTSP).setCameraUsername(CAMERA_USERNAME).setCameraPassword(CAMERA_PASSWORD).setJpgUrl(CAMERA_JPG_URL).setH264Url(CAMERA_H264_URL).setTimeZone(CAMERA_TIMEZONE).setVendor(CAMERA_VENDOR).setModel(CAMERA_MODEL_ID).setMacAddress(CAMERA_MAC).build();
Camera camera = Camera.create(detail);
API.setUserKeyPair(null, null);
return camera;
}
public Camera addBasicCamera() throws EvercamException {
ApiKeyPair apiKeyPair = API.requestUserKeyPairFromEvercam(getUsername(), getPassword());
API.setUserKeyPair(apiKeyPair.getApiKey(), apiKeyPair.getApiId());
CameraDetail detail = new CameraBuilder(CAMERA_NAME, true).setInternalHost(CAMERA_INTERNAL_HOST).setId
(randomUUID()).build();
Camera camera = Camera.create(detail);
API.setUserKeyPair(null, null);
return camera;
}
public Camera addFullCamera() throws EvercamException {
ApiKeyPair apiKeyPair = API.requestUserKeyPairFromEvercam(getUsername(), getPassword());
API.setUserKeyPair(apiKeyPair.getApiKey(), apiKeyPair.getApiId());
CameraDetail detail = basicCamera().setLocation(LOCATION_LAT, LOCATION_LNG).setOnline(true).setInternalHost(RandomUser.CAMERA_INTERNAL_HOST).setInternalHttpPort(RandomUser.
CAMERA_INTERNAL_HTTP).setInternalRtspPort(RandomUser.CAMERA_INTERNAL_RTSP).setExternalHost(RandomUser.CAMERA_EXTERNAL_HOST).setExternalHttpPort(RandomUser.CAMERA_EXTERNAL_HTTP).setExternalRtspPort(RandomUser.CAMERA_EXTERNAL_RTSP).
setCameraUsername(RandomUser.CAMERA_USERNAME).
setCameraPassword(RandomUser.CAMERA_PASSWORD).
setJpgUrl(RandomUser.CAMERA_JPG_URL).setH264Url(RandomUser.CAMERA_H264_URL).
setMjpgUrl(RandomUser.CAMERA_MJPG_URL).setMpegUrl(RandomUser.CAMERA_MPEG_URL).
setAudioUrl(RandomUser.CAMERA_AUDIO_URL).setTimeZone(RandomUser.CAMERA_TIMEZONE).
setVendor(RandomUser.CAMERA_VENDOR).setModel(RandomUser.CAMERA_MODEL_ID).
setMacAddress(RandomUser.CAMERA_MAC).setDiscoverable(true).build();
Camera camera = Camera.create(detail);
API.setUserKeyPair(null, null);
return camera;
}
public CameraBuilder basicCamera() throws EvercamException {
return new CameraBuilder(CAMERA_NAME, true).setInternalHost(CAMERA_INTERNAL_HOST).setId(randomUUID());
}
public Camera addRealCamera() throws EvercamException {
ApiKeyPair apiKeyPair = API.requestUserKeyPairFromEvercam(getUsername(), getPassword());
API.setUserKeyPair(apiKeyPair.getApiKey(), apiKeyPair.getApiId());
CameraDetail detail = new CameraBuilder(CAMERA_NAME, true).setExternalHost(LocalConstants.IP)
.setExternalHttpPort(LocalConstants.HTTP_PORT).setCameraUsername(LocalConstants.USERNAME)
.setCameraPassword(LocalConstants.PASSWORD).setJpgUrl("/Streaming/channels/1/picture").setId(randomUUID())
.build();
Camera camera = Camera.create(detail);
API.setUserKeyPair(null, null);
return camera;
}
public static String randomUUID() {
return String.valueOf(UUID.randomUUID()).replace("-", "");
}
public static String randomEmail() {
Random random = new Random();
int randomNumber = random.nextInt(40000) + 10000;
return "ld+" + randomNumber + "@evercam.io";
}
public static String randomUsername() {
String randomUuid = randomUUID();
while (Character.isDigit(randomUuid.charAt(0))) {
randomUuid.replace(String.valueOf(randomUuid.charAt(0)), "");
}
return randomUuid;
}
public User getUser() {
return user;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public String getEmail() {
return email;
}
public String getFullName() {
return user.getFullName();
}
}