2021-12-12 17:39:50 +08:00
|
|
|
package com.yutou.qqbot.models.WebSign;
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
|
import com.yutou.qqbot.QQBotManager;
|
|
|
|
import com.yutou.qqbot.models.Model;
|
2021-12-13 18:10:50 +08:00
|
|
|
import com.yutou.qqbot.utlis.AppTools;
|
2021-12-12 17:39:50 +08:00
|
|
|
import com.yutou.qqbot.utlis.ConfigTools;
|
|
|
|
import com.yutou.qqbot.utlis.StringUtils;
|
|
|
|
import com.yutou.qqbot.utlis.WebClient;
|
|
|
|
import net.mamoe.mirai.event.events.MessageEvent;
|
2021-12-13 18:10:50 +08:00
|
|
|
import org.openqa.selenium.*;
|
2021-12-12 17:39:50 +08:00
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
public class Tsdm extends Model {
|
|
|
|
@Override
|
|
|
|
public boolean isUserPublic() {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String[] getUsePowers() {
|
|
|
|
return new String[]{
|
|
|
|
QQFromCommands.TSDM_PAY
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onMessage(Long qq, MessageEvent event, boolean isGroup) {
|
|
|
|
super.onMessage(qq, event, isGroup);
|
2021-12-13 18:10:50 +08:00
|
|
|
if (msg.startsWith(QQFromCommands.TSDM_PAY)) {
|
|
|
|
String url = msg.replace(QQFromCommands.TSDM_PAY, "").trim();
|
|
|
|
if (StringUtils.isEmpty(url)) {
|
|
|
|
QQBotManager.getInstance().sendMessage(qq, "使用说明:!tsdm [url]");
|
2021-12-12 17:39:50 +08:00
|
|
|
return;
|
|
|
|
}
|
2021-12-13 18:10:50 +08:00
|
|
|
QQBotManager.getInstance().sendMessage(qq, "正在获取,请稍等...");
|
|
|
|
QQBotManager.getInstance().sendMessage(qq, tsdm(url));
|
2021-12-12 17:39:50 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onTime(String time) {
|
|
|
|
super.onTime(time);
|
2021-12-13 18:10:50 +08:00
|
|
|
if ("08:00".equals(time)) {
|
|
|
|
try {
|
|
|
|
tsdmSign();
|
|
|
|
QQBotManager.getInstance().sendMessage(QQBotManager.defGroup, "已完成天使动漫的签到");
|
|
|
|
} catch (Exception e) {
|
|
|
|
QQBotManager.getInstance().sendMessage(QQBotManager.defGroup, "天使动漫签到失败:" + AppTools.getExceptionString(e));
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
2021-12-12 17:39:50 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-12-13 18:10:50 +08:00
|
|
|
public void tsdmSign() {
|
2021-12-12 17:39:50 +08:00
|
|
|
JSONArray array = JSONArray.parseArray(ConfigTools.readFile(new File("cookie.json")));
|
|
|
|
if (array == null) {
|
|
|
|
System.err.println("array is null");
|
|
|
|
return;
|
|
|
|
}
|
2021-12-13 18:10:50 +08:00
|
|
|
WebDriver driver = WebClient.getInstance().getWebDriver();
|
2021-12-12 17:39:50 +08:00
|
|
|
driver.get("https://www.tsdm39.net/forum.php");
|
|
|
|
getTsdm(array, driver);
|
2021-12-13 18:10:50 +08:00
|
|
|
boolean isSign=false;
|
|
|
|
for (WebElement element : driver.findElements(By.xpath("//a"))) {
|
|
|
|
if(element.getText().contains("签到")){
|
|
|
|
isSign=true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(!isSign){
|
|
|
|
driver.close();
|
|
|
|
driver.quit();
|
|
|
|
return;
|
|
|
|
}
|
2021-12-12 17:39:50 +08:00
|
|
|
try {
|
|
|
|
((JavascriptExecutor) driver).executeScript("showWindow('dsu_paulsign', 'plugin.php?id=dsu_paulsign:sign&9b5e8da2')");
|
2021-12-13 18:10:50 +08:00
|
|
|
} catch (Exception ignored) {
|
2021-12-12 17:39:50 +08:00
|
|
|
}
|
|
|
|
try {
|
|
|
|
Thread.sleep(500);
|
|
|
|
} catch (InterruptedException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
2021-12-13 18:10:50 +08:00
|
|
|
try {
|
|
|
|
driver.findElement(By.id("wl")).click();
|
|
|
|
driver.findElement(By.xpath("//input[@value='3']")).click();
|
|
|
|
driver.findElement(By.id("qiandao")).submit();
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
2021-12-12 17:39:50 +08:00
|
|
|
driver.close();
|
|
|
|
driver.quit();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void getTsdm(JSONArray array, WebDriver driver) {
|
|
|
|
driver.manage().timeouts().implicitlyWait(10000, TimeUnit.SECONDS);
|
2021-12-13 18:10:50 +08:00
|
|
|
driver.manage().deleteAllCookies();
|
2021-12-12 17:39:50 +08:00
|
|
|
try {
|
|
|
|
Thread.sleep(500);
|
|
|
|
} catch (InterruptedException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
for (Cookie cookie : WebClient.loadCookie(array)) {
|
|
|
|
driver.manage().addCookie(cookie);
|
|
|
|
}
|
|
|
|
driver.navigate().refresh();
|
|
|
|
try {
|
|
|
|
Thread.sleep(1000);
|
|
|
|
} catch (InterruptedException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public String tsdm(String url) {
|
|
|
|
JSONArray array = JSONArray.parseArray(ConfigTools.readFile(new File("cookie.json")));
|
|
|
|
if (array == null) {
|
|
|
|
System.err.println("array is null");
|
|
|
|
return null;
|
|
|
|
}
|
2021-12-13 18:10:50 +08:00
|
|
|
WebDriver driver = WebClient.getInstance().getWebDriver();
|
2021-12-12 17:39:50 +08:00
|
|
|
driver.get(url);
|
|
|
|
getTsdm(array, driver);
|
|
|
|
try {
|
|
|
|
((JavascriptExecutor) driver).executeScript("document.getElementsByClassName('y viewpay')[0].click()");
|
|
|
|
try {
|
|
|
|
Thread.sleep(500);
|
|
|
|
} catch (InterruptedException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
driver.findElement(By.id("payform")).submit();
|
|
|
|
} catch (Exception ignored) {
|
|
|
|
|
|
|
|
}
|
|
|
|
String body = driver.findElement(By.name("tsdmlz")).getText();
|
|
|
|
driver.close();
|
|
|
|
driver.quit();
|
|
|
|
return body;
|
|
|
|
}
|
|
|
|
}
|