mirror of
https://github.com/hjdhnx/dr_py.git
synced 2024-10-18 02:48:26 -05:00
101 lines
2.6 KiB
Python
101 lines
2.6 KiB
Python
#!/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
|