mirror of
https://github.com/sifacaii/VlcJellyfin
synced 2025-06-03 00:58:06 -04:00
添加jellyfin client
This commit is contained in:
parent
0bc35c9ff5
commit
a61f82ab19
@ -20,7 +20,7 @@
|
||||
android:hardwareAccelerated="true"
|
||||
tools:targetApi="31">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:name=".HomeActivity"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
@ -74,7 +74,7 @@ public class CollectionActivity2 extends BaseActivity{
|
||||
fillItems();
|
||||
setLoadMore();
|
||||
}
|
||||
});
|
||||
},null);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -93,7 +93,7 @@ public class CollectionActivity2 extends BaseActivity{
|
||||
setTitleTip();
|
||||
mGridContiner.finishLoadMore();
|
||||
}
|
||||
});
|
||||
},null);
|
||||
}
|
||||
|
||||
private void setLoadMore(){
|
||||
|
@ -66,7 +66,7 @@ public class Config {
|
||||
*/
|
||||
public void getConfigFromSP() {
|
||||
SharedPreferences sp = context.getSharedPreferences("Jellyfin", context.MODE_PRIVATE);
|
||||
this.JellyfinUrl = sp.getString("url", "");
|
||||
this.JellyfinUrl = sp.getString("url", "http://");
|
||||
this.UserName = sp.getString("username", "");
|
||||
this.PassWord = sp.getString("password", "");
|
||||
this.SortBy = sp.getString("sortby","DateCreated");
|
||||
|
@ -53,12 +53,19 @@ public class HomeActivity extends BaseActivity{
|
||||
showLoginDialog();
|
||||
}
|
||||
}
|
||||
},false);
|
||||
},null,false);
|
||||
}else{
|
||||
ShowToask("服务器地址不正确!");
|
||||
showLoginDialog();
|
||||
}
|
||||
}
|
||||
},new JfClient.JJCallBack(){
|
||||
@Override
|
||||
public void onError(String str) {
|
||||
dismissLoadingDialog();
|
||||
ShowToask("服务器连接失败!");
|
||||
showLoginDialog();
|
||||
}
|
||||
});
|
||||
}else{
|
||||
initView();
|
||||
@ -108,11 +115,17 @@ public class HomeActivity extends BaseActivity{
|
||||
ShowToask("用户名密码不正确!");
|
||||
}
|
||||
}
|
||||
},saveBox.isChecked());
|
||||
},null,saveBox.isChecked());
|
||||
}else{
|
||||
ShowToask("服务器地址不正确!");
|
||||
}
|
||||
}
|
||||
},new JfClient.JJCallBack(){
|
||||
@Override
|
||||
public void onError(String str) {
|
||||
dismissLoadingDialog();
|
||||
ShowToask("服务器地址不正确!");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
@ -134,17 +147,17 @@ public class HomeActivity extends BaseActivity{
|
||||
public void onSuccess(JsonArray latests) {
|
||||
addRowTvRecyclerView("新的 " + name,latests,false);
|
||||
}
|
||||
});
|
||||
},null);
|
||||
}
|
||||
dismissLoadingDialog();
|
||||
}
|
||||
});
|
||||
},null);
|
||||
JfClient.GetResume(new JfClient.JJCallBack(){
|
||||
@Override
|
||||
public void onSuccess(JsonArray resumes) {
|
||||
addRowTvRecyclerView("最近播放",resumes,false);
|
||||
}
|
||||
});
|
||||
},null);
|
||||
}
|
||||
|
||||
|
||||
|
@ -75,7 +75,7 @@ public class JfClient {
|
||||
public void onSuccess(String str) {
|
||||
//回放报告
|
||||
}
|
||||
});
|
||||
},null);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -113,7 +113,7 @@ public class JfClient {
|
||||
* @param itemid
|
||||
* @param cb
|
||||
*/
|
||||
public static void GetAddPart(String itemid,JJCallBack cb){
|
||||
public static void GetAddPart(String itemid,JJCallBack cb,JJCallBack errcb){
|
||||
String AddPartUrl = "/Videos/" + itemid + "/AdditionalParts?userId=" + UserId;
|
||||
SendGet(AddPartUrl,new JJCallBack(){
|
||||
@Override
|
||||
@ -124,7 +124,7 @@ public class JfClient {
|
||||
cb.onSuccess(items);
|
||||
}
|
||||
}
|
||||
});
|
||||
},errcb);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -133,7 +133,7 @@ public class JfClient {
|
||||
* @param seasonId 季ID
|
||||
* @param cb
|
||||
*/
|
||||
public static void GetEpisodes(String seriesId, String seasonId, JJCallBack cb) {
|
||||
public static void GetEpisodes(String seriesId, String seasonId, JJCallBack cb,JJCallBack errcb) {
|
||||
String EpisodesUrl = config.getJellyfinUrl() + "/Shows/" + seriesId + "/Episodes?seasonId=" + seasonId;
|
||||
EpisodesUrl += "&userId=" + UserId;
|
||||
EpisodesUrl += "&Fields=ItemCounts,PrimaryImageAspectRatio,BasicSyncInfo,CanDelete,MediaSourceCount,Overview";
|
||||
@ -147,7 +147,7 @@ public class JfClient {
|
||||
cb.onSuccess(items);
|
||||
}
|
||||
}
|
||||
});
|
||||
},errcb);
|
||||
|
||||
}
|
||||
|
||||
@ -157,7 +157,7 @@ public class JfClient {
|
||||
* @param seriesId 剧ID
|
||||
* @param cb
|
||||
*/
|
||||
public static void GetSeasons(String seriesId, JJCallBack cb) {
|
||||
public static void GetSeasons(String seriesId, JJCallBack cb,JJCallBack errcb) {
|
||||
String SeasonsUrl = config.getJellyfinUrl() + "/Shows/" + seriesId + "/Seasons?userId=" + UserId;
|
||||
SeasonsUrl += "&Fields=ItemCounts,PrimaryImageAspectRatio,BasicSyncInfo,MediaSourceCount";
|
||||
|
||||
@ -170,7 +170,7 @@ public class JfClient {
|
||||
cb.onSuccess(items);
|
||||
}
|
||||
}
|
||||
});
|
||||
},errcb);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -184,7 +184,7 @@ public class JfClient {
|
||||
* @param page 页
|
||||
* @param cb
|
||||
*/
|
||||
public static void GetCollection(String parentId, String type, String sortBy, String sortOrder, int limit, int page, JJCallBack cb) {
|
||||
public static void GetCollection(String parentId, String type, String sortBy, String sortOrder, int limit, int page, JJCallBack cb,JJCallBack errcb) {
|
||||
String itemsUrl = config.getJellyfinUrl() + "/Users/" + UserId + "/Items?ParentId=" + parentId + "&Limit=" + limit;
|
||||
itemsUrl += "&Recursive=true&Fields=PrimaryImageAspectRatio,BasicSyncInfo,Seasons,Episodes&ImageTypeLimit=1";
|
||||
itemsUrl += "&EnableImageTypes=Primary,Backdrop,Banner,Thumb";
|
||||
@ -206,7 +206,7 @@ public class JfClient {
|
||||
JsonObject items = strToGson(str, JsonObject.class);
|
||||
cb.onSuccess(items);
|
||||
}
|
||||
});
|
||||
},errcb);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -215,7 +215,7 @@ public class JfClient {
|
||||
* @param parentId
|
||||
* @param cb
|
||||
*/
|
||||
public static void GetLatest(String parentId, JJCallBack cb) {
|
||||
public static void GetLatest(String parentId, JJCallBack cb,JJCallBack errcb) {
|
||||
String lastestUrl = config.getJellyfinUrl() + "/Users/" + UserId + "/Items/Latest?";
|
||||
lastestUrl += "Limit=16&Fields=PrimaryImageAspectRatio%2CBasicSyncInfo%2CPath";
|
||||
lastestUrl += "&ImageTypeLimit=1&EnableImageTypes=Primary,Backdrop,Thumb";
|
||||
@ -229,7 +229,7 @@ public class JfClient {
|
||||
cb.onSuccess(latestObj);
|
||||
}
|
||||
}
|
||||
});
|
||||
},errcb);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -237,7 +237,7 @@ public class JfClient {
|
||||
*
|
||||
* @param cb
|
||||
*/
|
||||
public static void GetResume(JJCallBack cb) {
|
||||
public static void GetResume(JJCallBack cb,JJCallBack err) {
|
||||
String resumeUrl = config.getJellyfinUrl() + "/Users/" + UserId + "/Items/Resume?";
|
||||
resumeUrl += "Limit=12&Recursive=true&Fields=PrimaryImageAspectRatio,BasicSyncInfo";
|
||||
resumeUrl += "&ImageTypeLimit=1&EnableImageTypes=Primary,Backdrop,Thumb";
|
||||
@ -252,7 +252,7 @@ public class JfClient {
|
||||
cb.onSuccess(resumes);
|
||||
}
|
||||
}
|
||||
});
|
||||
},err);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -260,7 +260,7 @@ public class JfClient {
|
||||
*
|
||||
* @param cb
|
||||
*/
|
||||
public static void GetViews(JJCallBack cb) {
|
||||
public static void GetViews(JJCallBack cb,JJCallBack err) {
|
||||
String viewsUrl = config.getJellyfinUrl() + "/Users/" + UserId + "/Views";
|
||||
SendGet(viewsUrl, new JJCallBack() {
|
||||
@Override
|
||||
@ -271,7 +271,7 @@ public class JfClient {
|
||||
cb.onSuccess(views);
|
||||
}
|
||||
}
|
||||
});
|
||||
},err);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -280,7 +280,7 @@ public class JfClient {
|
||||
* @param itemid
|
||||
* @param cb
|
||||
*/
|
||||
public static void GetItemInfo(String itemid, JJCallBack cb) {
|
||||
public static void GetItemInfo(String itemid, JJCallBack cb,JJCallBack err) {
|
||||
String url = config.getJellyfinUrl() + "/Users/" + UserId + "/Items/" + itemid;
|
||||
SendGet(url, new JJCallBack() {
|
||||
@Override
|
||||
@ -290,7 +290,7 @@ public class JfClient {
|
||||
cb.onSuccess(item);
|
||||
}
|
||||
}
|
||||
});
|
||||
},err);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -300,7 +300,7 @@ public class JfClient {
|
||||
* @param password
|
||||
* @param cb
|
||||
*/
|
||||
public static void AuthenticateByName(String username, String password, JJCallBack cb, boolean saveUser) {
|
||||
public static void AuthenticateByName(String username, String password, JJCallBack cb,JJCallBack err, boolean saveUser) {
|
||||
String url = config.getJellyfinUrl() + "/Users/authenticatebyname";
|
||||
String reqjson = "{\"Username\":\"" + username + "\",\"Pw\":\"" + password + "\"}";
|
||||
SendPost(url, reqjson, new JJCallBack() {
|
||||
@ -326,7 +326,7 @@ public class JfClient {
|
||||
cb.onSuccess(false);
|
||||
}
|
||||
}
|
||||
});
|
||||
},err);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -334,7 +334,7 @@ public class JfClient {
|
||||
*
|
||||
* @param cb
|
||||
*/
|
||||
public static void GetUsers(JJCallBack cb) {
|
||||
public static void GetUsers(JJCallBack cb,JJCallBack err) {
|
||||
String url = config.getJellyfinUrl() + "/users/public";
|
||||
SendGet(url, new JJCallBack() {
|
||||
@Override
|
||||
@ -342,7 +342,7 @@ public class JfClient {
|
||||
JsonArray users = strToGson(str, JsonArray.class);
|
||||
cb.onSuccess(users);
|
||||
}
|
||||
});
|
||||
},err);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -351,7 +351,7 @@ public class JfClient {
|
||||
* @param url
|
||||
* @param cb
|
||||
*/
|
||||
public static void VerityServerUrl(String url, JJCallBack cb) {
|
||||
public static void VerityServerUrl(String url, JJCallBack cb,JJCallBack err) {
|
||||
if (url.length() > 0) {
|
||||
if (url.startsWith("http://") || url.startsWith("https://")) {
|
||||
|
||||
@ -368,7 +368,7 @@ public class JfClient {
|
||||
cb.onSuccess(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
},err);
|
||||
|
||||
}
|
||||
}else{
|
||||
@ -396,7 +396,7 @@ public class JfClient {
|
||||
* @param url
|
||||
* @param cb
|
||||
*/
|
||||
public static void SendGet(String url, JJCallBack cb) {
|
||||
public static void SendGet(String url, JJCallBack cb,JJCallBack errcb) {
|
||||
OkGo.<String>get(url).headers(headers).execute(new AbsCallback<String>() {
|
||||
@Override
|
||||
public String convertResponse(okhttp3.Response response) throws IOException {
|
||||
@ -414,7 +414,9 @@ public class JfClient {
|
||||
|
||||
@Override
|
||||
public void onError(Response<String> response) {
|
||||
cb.onSuccess("");
|
||||
if(errcb != null){
|
||||
errcb.onError(response.body());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -426,7 +428,7 @@ public class JfClient {
|
||||
* @param jsonStr
|
||||
* @param cb
|
||||
*/
|
||||
public static void SendPost(String url, String jsonStr, JJCallBack cb) {
|
||||
public static void SendPost(String url, String jsonStr, JJCallBack cb,JJCallBack errcb) {
|
||||
OkGo.<String>post(url).headers(headers).upJson(jsonStr).execute(new AbsCallback<String>() {
|
||||
@Override
|
||||
public String convertResponse(okhttp3.Response response) throws Throwable {
|
||||
@ -444,7 +446,9 @@ public class JfClient {
|
||||
|
||||
@Override
|
||||
public void onError(Response<String> response) {
|
||||
cb.onSuccess("");
|
||||
if(errcb != null){
|
||||
errcb.onError(response.body());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -513,6 +517,11 @@ public class JfClient {
|
||||
public void onSuccess(JsonArray jsonArray) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String str) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public interface JCallBack {
|
||||
@ -523,5 +532,7 @@ public class JfClient {
|
||||
void onSuccess(JsonObject jsonObject);
|
||||
|
||||
void onSuccess(JsonArray jsonArray);
|
||||
|
||||
void onError(String str);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user