From 8e2abd2f1164c138cc19bb8bb7cec45d8e682603 Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Mon, 28 Jan 2019 14:44:19 +0100 Subject: [PATCH] Implement createModelFromUrl for FC2Live --- .../java/ctbrec/sites/fc2live/Fc2Live.java | 20 +++++++++++++++++++ .../java/ctbrec/sites/fc2live/Fc2Model.java | 6 +++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/ctbrec/sites/fc2live/Fc2Live.java b/common/src/main/java/ctbrec/sites/fc2live/Fc2Live.java index c1d9e1c1..c0e19493 100644 --- a/common/src/main/java/ctbrec/sites/fc2live/Fc2Live.java +++ b/common/src/main/java/ctbrec/sites/fc2live/Fc2Live.java @@ -1,6 +1,8 @@ package ctbrec.sites.fc2live; import java.io.IOException; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import ctbrec.Config; import ctbrec.Model; @@ -36,6 +38,24 @@ public class Fc2Live extends AbstractSite { return model; } + @Override + public Model createModelFromUrl(String url) { + Matcher m = Pattern.compile("http.*?fc2.*?.com/(\\d+)/?").matcher(url); + if(m.find()) { + Fc2Model model = (Fc2Model) createModel(""); + model.setId(m.group(1)); + try { + model.loadModelInfo(); + model.setUrl(url); + } catch (IOException e) { + return null; + } + return model; + } + + return super.createModelFromUrl(url); + } + @Override public Double getTokenBalance() throws IOException { return 0d; diff --git a/common/src/main/java/ctbrec/sites/fc2live/Fc2Model.java b/common/src/main/java/ctbrec/sites/fc2live/Fc2Model.java index e525b841..16b888ec 100644 --- a/common/src/main/java/ctbrec/sites/fc2live/Fc2Model.java +++ b/common/src/main/java/ctbrec/sites/fc2live/Fc2Model.java @@ -60,7 +60,7 @@ public class Fc2Model extends AbstractModel { return online; } - private void loadModelInfo() throws IOException { + void loadModelInfo() throws IOException { String url = Fc2Live.BASE_URL + "/api/memberApi.php"; RequestBody body = new FormBody.Builder() .add("channel", "1") @@ -90,6 +90,10 @@ public class Fc2Model extends AbstractModel { online = false; } version = channelData.optString("version"); + if (data.has("profile_data")) { + JSONObject profileData = data.getJSONObject("profile_data"); + setName(profileData.getString("name").replace('/', '_')); + } } else { resp.close(); throw new IOException("HTTP status " + resp.code() + " " + resp.message());