Lazy load
This commit is contained in:
parent
39d457f7da
commit
f4c80e3bbe
|
|
@ -4,6 +4,7 @@ import android.content.Context;
|
|||
import android.os.SystemClock;
|
||||
|
||||
import com.github.catvod.crawler.Spider;
|
||||
import com.github.catvod.crawler.SpiderDebug;
|
||||
import com.github.catvod.net.OkHttp;
|
||||
import com.github.catvod.utils.Path;
|
||||
import com.github.catvod.utils.Shell;
|
||||
|
|
@ -14,56 +15,56 @@ public class Feiyang extends Spider {
|
|||
|
||||
private static final String AIO = "allinone-linux-musl";
|
||||
private static final String SHELL = "run-allinone.sh";
|
||||
private static final File f_shell = new File(Path.files(), SHELL);
|
||||
private static final File f_aio = new File(Path.files(), AIO);
|
||||
private static Thread thread;
|
||||
private String extend;
|
||||
|
||||
@Override
|
||||
public void init(Context context, String extend) throws Exception {
|
||||
this.extend = extend;
|
||||
createShell();
|
||||
findAIO(Path.tv().listFiles());
|
||||
findAIO(Path.download().listFiles());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String liveContent() {
|
||||
String content;
|
||||
int retry = 0;
|
||||
while ((content = OkHttp.string(extend)).isEmpty() && retry++ < 5) SystemClock.sleep(250);
|
||||
while ((content = OkHttp.string(extend)).isEmpty() && retry++ < 10) SystemClock.sleep(250);
|
||||
return content;
|
||||
}
|
||||
|
||||
public static void startAIO() {
|
||||
writeShell();
|
||||
findAIO(Path.tv().listFiles());
|
||||
findAIO(Path.download().listFiles());
|
||||
private void createShell() {
|
||||
File cache = Path.cache("allinone.cache");
|
||||
String cachePath = cache.getAbsolutePath();
|
||||
String shellPath = f_shell.getAbsolutePath();
|
||||
String aioPath = f_aio.getAbsolutePath();
|
||||
String script = "if [ -e " + shellPath + ".kill ]; then\n" + "sh " + shellPath + ".kill;\n" + "killall -9 " + AIO + ";\n" + "sleep 1;\n" + "rm -f " + shellPath + ".kill;\n" + "fi\n" + "echo \"kill -9 $$\" >> " + shellPath + ".kill;\n" + "while(true)\n" + "do\n" + "TMPDIR=" + cachePath + " " + aioPath + " -ipv6=true " + " -port 35345 " + " >/dev/null 2>&1\n" + "pidlist=$(ps -ef|grep " + SHELL + "|grep -v grep|awk '{print $2}')\n" + "selfpid=$$\n" + "for pid in $pidlist\n" + "do\n" + "if [[ $pid != \"$selfpid\" ]] then\n" + "kill -9 $pid\n" + "fi\n" + "done\n" + "killall -9 " + AIO + "\n" + "rm -rf \"" + cachePath + "\"/*\n" + "sleep 5;\n" + "done";
|
||||
Path.write(f_shell, script);
|
||||
}
|
||||
|
||||
private static void findAIO(File[] files) {
|
||||
private void findAIO(File[] files) {
|
||||
if (files == null || thread != null) return;
|
||||
for (File f : files) {
|
||||
if (f.getName().equals("allinone") || f.getName().startsWith("allinone-linux")) {
|
||||
Path.copy(f, new File(Path.files(), AIO));
|
||||
thread = new Thread(() -> Shell.exec("nohup " + new File(Path.files(), SHELL).getAbsolutePath() + " &"));
|
||||
Path.copy(f, f_aio);
|
||||
SpiderDebug.log("start run " + f.getName());
|
||||
thread = new Thread(() -> Shell.exec("nohup " + f_shell.getAbsolutePath() + " &"));
|
||||
thread.start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void writeShell() {
|
||||
File cache = Path.cache("allinone.cache");
|
||||
File shell = new File(Path.files(), SHELL);
|
||||
File aio = new File(Path.files(), AIO);
|
||||
String cachePath = cache.getAbsolutePath();
|
||||
String shellPath = shell.getAbsolutePath();
|
||||
String aioPath = aio.getAbsolutePath();
|
||||
String script = "if [ -e " + shellPath + ".kill ]; then\n" + "sh " + shellPath + ".kill;\n" + "killall -9 " + AIO + ";\n" + "sleep 1;\n" + "rm -f " + shellPath + ".kill;\n" + "fi\n" + "echo \"kill -9 $$\" >> " + shellPath + ".kill;\n" + "while(true)\n" + "do\n" + "TMPDIR=" + cachePath + " " + aioPath + " -ipv6=true " + " -port 35345 " + " >/dev/null 2>&1\n" + "pidlist=$(ps -ef|grep " + SHELL + "|grep -v grep|awk '{print $2}')\n" + "selfpid=$$\n" + "for pid in $pidlist\n" + "do\n" + "if [[ $pid != \"$selfpid\" ]] then\n" + "kill -9 $pid\n" + "fi\n" + "done\n" + "killall -9 " + AIO + "\n" + "rm -rf \"" + cachePath + "\"/*\n" + "sleep 5;\n" + "done";
|
||||
Path.write(shell, script);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
try {
|
||||
if (thread != null) thread.interrupt();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
thread = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@ public class Init {
|
|||
public static void init(Context context) {
|
||||
get().app = ((Application) context);
|
||||
SpiderDebug.log("自定義爬蟲代碼載入成功!");
|
||||
Feiyang.startAIO();
|
||||
}
|
||||
|
||||
public static void execute(Runnable runnable) {
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1 +1 @@
|
|||
b71bc7bc451c71b3d352ce5806328d28
|
||||
bdb521c46b8a304eeb565567dd326171
|
||||
|
|
|
|||
Loading…
Reference in New Issue