123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- # File : base_java_loader.py
- # Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
- # Author's Blog: https://blog.csdn.net/qq_32394351
- # Date : 2024/1/11
- import os
- import sys
- sys.path.append('..')
- try:
- # from base.spider import Spider as BaseSpider
- from base.spider import BaseSpider
- from com.github.tvbox.osc.util import PyUtil
- from java import jbyte, jarray
- # https://chaquo.com/chaquopy/doc/current/python.html#java.jbyte
- except ImportError:
- from t4.base.spider import BaseSpider
- # 全局变量
- gParam = {
- # JVM已经启用过某个jar文件
- "JVM": {'xx.jar': False},
- }
- class Spider(BaseSpider): # 元类 默认的元类 type
- jar_path: str = ''
- jClass = None
- def _prepare_env(self, jpype):
- global gParam
- if gParam['JVM'].get(self.jar_path):
- return
- try:
- jpype.startJVM(classpath=[self.jar_path], convertStrings=False)
- gParam['JVM'][self.jar_path] = True
- except Exception as e:
- self.log(f'jpype.startJVM发生了错误:{e}')
- def init_jar(self, jar_path="./bdys.jar"):
- self.log(f'base_java_loader 初始化jar文件:{jar_path}')
- if not os.path.exists(jar_path):
- raise FileNotFoundError
- self.jar_path = jar_path
- if self.ENV.lower() == 't4':
- import jpype
- self._prepare_env(jpype)
- self.jClass = jpype.JClass
- elif self.ENV.lower() == 't3':
- PyUtil.load(jar_path)
- self.jClass = None
- def call_java(self, class_name, method_name, *args):
- if self.ENV.lower() == 't4':
- class1 = self.jClass(class_name)
- method = getattr(class1, method_name)
- # method = eval(f'class1.{method_name}', {'class1': class1})
- # print(method)
- return method(*args)
- elif self.ENV.lower() == 't3':
- return PyUtil.call(class_name, method_name, *args)
- @staticmethod
- def jarBytes(some_bytes: bytes):
- return jarray(jbyte)(some_bytes)
- def init(self, extend=""):
- pass
- def homeContent(self, filter):
- pass
- def homeVideoContent(self):
- pass
- def categoryContent(self, tid, pg, filter, extend):
- pass
- def detailContent(self, ids):
- pass
- def searchContent(self, key, quick, pg=1):
- pass
- def playerContent(self, flag, id, vipFlags):
- pass
- def localProxy(self, param):
- pass
- def isVideoFormat(self, url):
- pass
- def manualVideoCheck(self):
- pass
- def getName(self):
- pass
|