diff --git a/common/src/main/java/ctbrec/sites/manyvids/MVLive.java b/common/src/main/java/ctbrec/sites/manyvids/MVLive.java index a1bbbfc1..0532d0ed 100644 --- a/common/src/main/java/ctbrec/sites/manyvids/MVLive.java +++ b/common/src/main/java/ctbrec/sites/manyvids/MVLive.java @@ -1,5 +1,19 @@ package ctbrec.sites.manyvids; +import static ctbrec.io.HttpConstants.*; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.json.JSONArray; +import org.json.JSONObject; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; + import ctbrec.Config; import ctbrec.Model; import ctbrec.Model.State; @@ -11,19 +25,6 @@ import okhttp3.FormBody; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; -import org.json.JSONArray; -import org.json.JSONObject; -import org.jsoup.nodes.Element; -import org.jsoup.select.Elements; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import static ctbrec.io.HttpConstants.*; public class MVLive extends AbstractSite { @@ -243,7 +244,7 @@ public class MVLive extends AbstractSite { @Override public Model createModelFromUrl(String url) { - Matcher m = Pattern.compile("https://live.manyvids.com/stream/(.*?)(?:/.*?)?").matcher(url.trim()); + Matcher m = Pattern.compile("https://live.manyvids.com/(?:stream/)?(.*?)(?:/.*?)?").matcher(url.trim()); if(m.matches()) { return createModel(m.group(1)); } diff --git a/common/src/main/java/ctbrec/sites/manyvids/MVLiveClient.java b/common/src/main/java/ctbrec/sites/manyvids/MVLiveClient.java index 1793154f..06cb5dc5 100644 --- a/common/src/main/java/ctbrec/sites/manyvids/MVLiveClient.java +++ b/common/src/main/java/ctbrec/sites/manyvids/MVLiveClient.java @@ -1,26 +1,39 @@ package ctbrec.sites.manyvids; -import com.google.common.base.Objects; -import ctbrec.Config; -import ctbrec.sites.manyvids.wsmsg.*; -import okhttp3.Response; -import okhttp3.*; -import okio.ByteString; +import static ctbrec.StringUtil.*; +import static ctbrec.io.HttpConstants.*; +import static ctbrec.sites.manyvids.MVLive.*; + +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Random; +import java.util.UUID; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + import org.json.JSONArray; import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.IOException; -import java.util.*; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; +import com.google.common.base.Objects; -import static ctbrec.StringUtil.isNotBlank; -import static ctbrec.io.HttpConstants.*; -import static ctbrec.sites.manyvids.MVLive.WS_ORIGIN; -import static ctbrec.sites.manyvids.MVLive.WS_URL; +import ctbrec.Config; +import ctbrec.sites.manyvids.wsmsg.GetBroadcastHealth; +import ctbrec.sites.manyvids.wsmsg.Message; +import ctbrec.sites.manyvids.wsmsg.Ping; +import ctbrec.sites.manyvids.wsmsg.RegisterMessage; +import ctbrec.sites.manyvids.wsmsg.SendMessage; +import okhttp3.Cookie; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.WebSocket; +import okhttp3.WebSocketListener; +import okio.ByteString; public class MVLiveClient { @@ -67,7 +80,7 @@ public class MVLiveClient { public void stop() { running = false; - scheduler.shutdown(); + Optional.ofNullable(scheduler).ifPresent(ScheduledExecutorService::shutdown); ws.close(1000, "Good Bye"); // terminate normally (1000) ws = null; }