Update spider action

release
FongMi 2 years ago
parent 7ac1e80ae7
commit 55f8acac1c
  1. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
  2. 10
      app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.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. 4
      chaquo/src/main/java/com/fongmi/chaquo/Spider.java
  6. 4
      chaquo/src/main/python/app.py
  7. 2
      chaquo/src/main/python/runner.py
  8. 2
      chaquo/src/main/python/trigger.py
  9. 8
      quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java

@ -37,6 +37,7 @@ import com.fongmi.android.tv.ui.custom.CustomScroller;
import com.fongmi.android.tv.ui.custom.CustomSelector;
import com.fongmi.android.tv.ui.presenter.FilterPresenter;
import com.fongmi.android.tv.ui.presenter.VodPresenter;
import com.fongmi.android.tv.utils.Notify;
import com.fongmi.android.tv.utils.ResUtil;
import com.github.catvod.utils.Prefers;
import com.google.common.collect.Lists;
@ -138,6 +139,7 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback
private void setViewModel() {
mViewModel = new ViewModelProvider(this).get(SiteViewModel.class);
mViewModel.action.observe(getViewLifecycleOwner(), result -> Notify.show(result.getMsg()));
mViewModel.result.observe(getViewLifecycleOwner(), result -> {
boolean first = mScroller.first();
int size = result.getList().size();
@ -278,7 +280,7 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback
@Override
public void onItemClick(Vod item) {
if (item.isAction()) {
getSite().spider().action(item.getAction());
mViewModel.action(getKey(), item.getAction());
} else if (item.isFolder()) {
mPages.add(Page.get(item, mBinding.recycler.getSelectedPosition()));
mBinding.recycler.setMoveTop(false);

@ -45,6 +45,7 @@ public class SiteViewModel extends ViewModel {
public MutableLiveData<Result> result;
public MutableLiveData<Result> player;
public MutableLiveData<Result> search;
public MutableLiveData<Result> action;
private ExecutorService executor;
public SiteViewModel() {
@ -52,6 +53,7 @@ public class SiteViewModel extends ViewModel {
this.result = new MutableLiveData<>();
this.player = new MutableLiveData<>();
this.search = new MutableLiveData<>();
this.action = new MutableLiveData<>();
}
public void setEpisode(Episode value) {
@ -189,6 +191,14 @@ public class SiteViewModel extends ViewModel {
});
}
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);

@ -27,6 +27,7 @@ import com.fongmi.android.tv.ui.activity.VideoActivity;
import com.fongmi.android.tv.ui.adapter.VodAdapter;
import com.fongmi.android.tv.ui.base.BaseFragment;
import com.fongmi.android.tv.ui.custom.CustomScroller;
import com.fongmi.android.tv.utils.Notify;
import java.io.Serializable;
import java.util.ArrayList;
@ -131,6 +132,7 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac
private void setViewModel() {
mViewModel = new ViewModelProvider(this).get(SiteViewModel.class);
mViewModel.result.observe(getViewLifecycleOwner(), this::setAdapter);
mViewModel.action.observe(getViewLifecycleOwner(), result -> Notify.show(result.getMsg()));
}
private void getHome() {
@ -222,7 +224,7 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac
@Override
public void onItemClick(Vod item) {
if (item.isAction()) {
getSite().spider().action(item.getAction());
mViewModel.action(getKey(), item.getAction());
} else if (item.isFolder()) {
mPages.add(Page.get(item, findPosition()));
getVideo(item.getVodId(), "1");

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

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

@ -97,7 +97,9 @@ def localProxy(ru, param):
def action(ru, action):
ru.action(action)
result = ru.action(action)
formatJo = json.dumps(result, ensure_ascii=False)
return formatJo
def destroy(ru):

@ -45,4 +45,4 @@ class Runner():
return self.spider.action(action)
def destroy(self):
return self.spider.destroy()
self.spider.destroy()

@ -45,4 +45,4 @@ class Trigger():
@staticmethod
def destroy(sp_obj):
return sp_obj.destroy()
sp_obj.destroy()

@ -125,12 +125,8 @@ public class Spider extends com.github.catvod.crawler.Spider {
}
@Override
public void action(String action) {
try {
call("action", action);
} catch (Throwable e) {
e.printStackTrace();
}
public String action(String action) throws Exception {
return (String) call("action", action);
}
@Override

Loading…
Cancel
Save