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