Spider add action function

pull/586/head
FongMi 1 year ago
parent 71137fd10c
commit 80c6034f4e
  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. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java
  4. 3
      catvod/src/main/java/com/github/catvod/crawler/Spider.java
  5. 5
      chaquo/src/main/java/com/fongmi/chaquo/Spider.java
  6. 4
      chaquo/src/main/python/app.py
  7. 3
      chaquo/src/main/python/base/spider.py
  8. 3
      chaquo/src/main/python/runner.py
  9. 4
      chaquo/src/main/python/trigger.py
  10. 9
      quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java

@ -277,7 +277,9 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback
@Override
public void onItemClick(Vod item) {
if (item.isFolder()) {
if (item.isAction()) {
getSite().spider().action(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 Style getStyle(Style style) {
return getStyle() != null ? getStyle() : style != null ? style : Style.rect();
}
@ -299,6 +310,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);
@ -322,6 +334,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();

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

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

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

@ -96,6 +96,10 @@ def localProxy(ru, param):
return result
def action(ru, action):
ru.action(action)
def destroy(ru):
ru.destroy()

@ -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()

@ -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()

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

Loading…
Cancel
Save