Spider add action function

pull/572/head
okjack 2 years ago
parent d6e9b47f12
commit 6eb710c096
  1. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
  2. 13
      app/src/main/java/com/fongmi/android/tv/bean/Vod.java
  3. 10
      app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java
  4. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java
  5. 4
      catvod/src/main/java/com/github/catvod/crawler/Spider.java
  6. 5
      pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java
  7. 6
      pyramid/src/main/python/app.py
  8. 3
      pyramid/src/main/python/base/spider.py
  9. 5
      pyramid/src/main/python/runner.py
  10. 6
      pyramid/src/main/python/trigger.py
  11. 5
      quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java

@ -281,7 +281,9 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback
@Override
public void onItemClick(Vod item) {
if (item.isFolder()) {
if (item.isAction()) {
mViewModel.action(getKey(), item.getAction());
} else if (item.isFolder()) {
mPages.add(Page.get(item, mBinding.recycler.getSelectedPosition()));
mBinding.recycler.setMoveTop(false);
getVideo(item.getVodId(), "1");

@ -73,6 +73,9 @@ public class Vod implements Parcelable {
@SerializedName("vod_tag")
private String vodTag;
@SerializedName("action")
private String action;
@SerializedName("cate")
private Cate cate;
@ -167,6 +170,10 @@ public class Vod implements Parcelable {
return TextUtils.isEmpty(vodTag) ? "" : vodTag;
}
public String getAction() {
return TextUtils.isEmpty(action) ? "" : action;
}
public Cate getCate() {
return cate;
}
@ -231,6 +238,10 @@ public class Vod implements Parcelable {
return "folder".equals(getVodTag()) || getCate() != null;
}
public boolean isAction() {
return !getAction().isEmpty();
}
public boolean isManga() {
return "manga".equals(getVodTag());
}
@ -303,6 +314,7 @@ public class Vod implements Parcelable {
dest.writeString(this.vodPlayFrom);
dest.writeString(this.vodPlayUrl);
dest.writeString(this.vodTag);
dest.writeString(this.action);
dest.writeInt(this.land);
dest.writeInt(this.circle);
dest.writeFloat(this.ratio);
@ -326,6 +338,7 @@ public class Vod implements Parcelable {
this.vodPlayFrom = in.readString();
this.vodPlayUrl = in.readString();
this.vodTag = in.readString();
this.action = in.readString();
this.land = in.readInt();
this.circle = in.readInt();
this.ratio = in.readFloat();

@ -47,6 +47,7 @@ public class SiteViewModel extends ViewModel {
public MutableLiveData<Result> result;
public MutableLiveData<Result> player;
public MutableLiveData<Result> search;
public MutableLiveData<Result> action;
public MutableLiveData<Danmu> danmaku;
public MutableLiveData<Result> download;
private ExecutorService executor;
@ -57,6 +58,7 @@ public class SiteViewModel extends ViewModel {
this.result = new MutableLiveData<>();
this.player = new MutableLiveData<>();
this.search = new MutableLiveData<>();
this.action = new MutableLiveData<>();
this.download = new MutableLiveData<>();
}
@ -207,6 +209,14 @@ public class SiteViewModel extends ViewModel {
executePlayer(download, key, flag, id);
}
public void action(String key, String action) {
execute(this.action, () -> {
Site site = VodConfig.get().getSite(key);
if (site.getType() != 3) return Result.empty();
return Result.fromJson(site.recent().spider().action(action));
});
}
public void searchContent(Site site, String keyword, boolean quick) throws Throwable {
if (site.getType() == 3) {
String searchContent = site.spider().searchContent(Trans.t2s(keyword), quick);

@ -228,7 +228,9 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac
@Override
public void onItemClick(Vod item) {
if (item.isFolder()) {
if (item.isAction()) {
mViewModel.action(getKey(), item.getAction());
} else if (item.isFolder()) {
mPages.add(Page.get(item, findPosition()));
getVideo(item.getVodId(), "1");
} else {

@ -64,6 +64,10 @@ public abstract class Spider {
return null;
}
public String action(String action) throws Exception {
return null;
}
public void destroy() {
}

@ -103,6 +103,11 @@ public class Spider extends com.github.catvod.crawler.Spider {
return result;
}
@Override
public String action(String action) {
return app.callAttr("action", obj, action).toString();
}
@Override
public void destroy() {
app.callAttr("destroy", obj);

@ -100,6 +100,12 @@ def destroy(ru):
ru.destroy()
def action(ru, action):
result = ru.action(action)
formatJo = json.dumps(result, ensure_ascii=False)
return formatJo
def run():
pass

@ -57,6 +57,9 @@ class Spider(metaclass=ABCMeta):
def manualVideoCheck(self):
pass
def action(self, action):
pass
def destroy(self):
pass

@ -41,5 +41,8 @@ class Runner():
def manualVideoCheck(self):
return self.spider.manualVideoCheck()
def action(self, action):
return self.spider.action(action)
def destroy(self):
return self.spider.destroy()
self.spider.destroy()

@ -39,6 +39,10 @@ class Trigger():
def manualVideoCheck(sp_obj):
return sp_obj.manualVideoCheck()
@staticmethod
def action(sp_obj, action):
return sp_obj.action(action)
@staticmethod
def destroy(sp_obj):
return sp_obj.destroy()
sp_obj.destroy()

@ -124,6 +124,11 @@ public class Spider extends com.github.catvod.crawler.Spider {
else return submit(() -> proxy1(params)).get();
}
@Override
public String action(String action) throws Exception {
return (String) call("action", action);
}
@Override
public void destroy() {
try {

Loading…
Cancel
Save