1
0
Fork 1
mirror of https://gitlab.com/mangadex-pub/mangadex_at_home.git synced 2024-01-19 02:48:37 +00:00
mangadex_at_home/src/main/java/mdnet/base/ClientSettings.java
2020-06-06 17:52:25 -05:00

61 lines
1.8 KiB
Java

package mdnet.base;
import com.google.gson.annotations.SerializedName;
import java.util.Objects;
import java.util.regex.Pattern;
public final class ClientSettings {
@SerializedName("max_cache_size_mib")
private final long maxCacheSizeMib;
@SerializedName("max_bandwidth_mib_per_hour")
private final long maxBandwidthMibPerHour;
@SerializedName("max_burst_rate_kib_per_second")
private final long maxBurstRateKibPerSecond;
@SerializedName("client_port")
private final int clientPort;
@SerializedName("client_secret")
private final String clientSecret;
public ClientSettings(long maxCacheSizeMib, long maxBandwidthMibPerHour, long maxBurstRateKibPerSecond,
int clientPort, String clientSecret) {
this.maxCacheSizeMib = maxCacheSizeMib;
this.maxBandwidthMibPerHour = maxBandwidthMibPerHour;
this.maxBurstRateKibPerSecond = maxBurstRateKibPerSecond;
this.clientPort = clientPort;
this.clientSecret = Objects.requireNonNull(clientSecret);
}
public long getMaxCacheSizeMib() {
return maxCacheSizeMib;
}
public long getMaxBandwidthMibPerHour() {
return maxBandwidthMibPerHour;
}
public long getMaxBurstRateKibPerSecond() {
return maxBurstRateKibPerSecond;
}
public int getClientPort() {
return clientPort;
}
public String getClientSecret() {
return clientSecret;
}
@Override
public String toString() {
return "ClientSettings{" + "maxCacheSizeMib=" + maxCacheSizeMib + ", maxBandwidthMibPerHour="
+ maxBandwidthMibPerHour + ", maxBurstRateKibPerSecond=" + maxBurstRateKibPerSecond + ", clientPort="
+ clientPort + ", clientSecret='" + clientSecret + '\'' + '}';
}
public static boolean isSecretValid(String clientSecret) {
final int CLIENT_KEY_LENGTH = 52;
return Pattern.matches("^[a-zA-Z0-9]{" + CLIENT_KEY_LENGTH + "}$", clientSecret);
}
}