2021-12-12 17:39:50 +08:00
|
|
|
package com.yutou.qqbot.models.WebSign;
|
|
|
|
|
2022-04-28 09:50:33 +08:00
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
|
import com.alibaba.fastjson2.JSONArray;
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
2021-12-12 17:39:50 +08:00
|
|
|
import com.yutou.qqbot.QQBotManager;
|
|
|
|
import com.yutou.qqbot.models.Model;
|
2021-12-14 08:46:57 +08:00
|
|
|
import com.yutou.qqbot.utlis.*;
|
2021-12-12 17:39:50 +08:00
|
|
|
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
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2022-04-08 15:39:59 +08:00
|
|
|
@Override
|
|
|
|
public String getModelName() {
|
|
|
|
return "天使动漫签到";
|
|
|
|
}
|
|
|
|
|
2021-12-12 17:39:50 +08:00
|
|
|
@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
|
2022-04-28 08:34:14 +08:00
|
|
|
public void onTime(Long qq, String time) {
|
|
|
|
super.onTime(qq, time);
|
2021-12-26 09:08:54 +08:00
|
|
|
if ("08:05:00".equals(time)) {
|
2021-12-14 08:46:57 +08:00
|
|
|
Log.i("开始天使动漫签到");
|
2021-12-13 18:10:50 +08:00
|
|
|
try {
|
2022-04-28 08:34:14 +08:00
|
|
|
if(tsdmSign()) {
|
|
|
|
QQBotManager.getInstance().sendMessage(QQBotManager.defGroup, "已完成天使动漫的签到");
|
|
|
|
}else{
|
|
|
|
QQBotManager.getInstance().sendMessage(QQBotManager.defGroup, "天使动漫签到失败");
|
|
|
|
}
|
2021-12-13 18:10:50 +08:00
|
|
|
} catch (Exception e) {
|
|
|
|
QQBotManager.getInstance().sendMessage(QQBotManager.defGroup, "天使动漫签到失败:" + AppTools.getExceptionString(e));
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
2021-12-12 17:39:50 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-04-28 08:34:14 +08:00
|
|
|
public boolean tsdmSign() {
|
2022-04-28 09:50:33 +08:00
|
|
|
JSONArray array = JSON.parseArray(ConfigTools.readFile(new File("cookie.json")));
|
2021-12-12 17:39:50 +08:00
|
|
|
if (array == null) {
|
|
|
|
System.err.println("array is null");
|
2022-04-28 08:34:14 +08:00
|
|
|
return false;
|
2021-12-12 17:39:50 +08:00
|
|
|
}
|
2021-12-13 18:10:50 +08:00
|
|
|
WebDriver driver = WebClient.getInstance().getWebDriver();
|
2021-12-12 17:39:50 +08:00
|
|
|
try {
|
2022-04-28 08:34:14 +08:00
|
|
|
driver.get("https://www.tsdm39.net/forum.php");
|
|
|
|
getTsdm(array, driver);
|
|
|
|
boolean isSign = false;
|
|
|
|
for (WebElement element : driver.findElements(By.xpath("//a"))) {
|
|
|
|
if (element.getText().contains("签到领奖!")) {
|
|
|
|
isSign = true;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!isSign) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
try {
|
|
|
|
((JavascriptExecutor) driver).executeScript("showWindow('dsu_paulsign', 'plugin.php?id=dsu_paulsign:sign&9b5e8da2')");
|
|
|
|
} catch (Exception ignored) {
|
|
|
|
}
|
|
|
|
try {
|
|
|
|
Thread.sleep(500);
|
|
|
|
} catch (InterruptedException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
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();
|
|
|
|
}
|
|
|
|
return true;
|
2021-12-13 18:10:50 +08:00
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
2022-04-28 08:34:14 +08:00
|
|
|
return false;
|
|
|
|
} finally {
|
|
|
|
driver.close();
|
|
|
|
driver.quit();
|
2021-12-13 18:10:50 +08:00
|
|
|
}
|
2021-12-12 17:39:50 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
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) {
|
2022-04-28 09:50:33 +08:00
|
|
|
JSONArray array = JSON.parseArray(ConfigTools.readFile(new File("cookie.json")));
|
2021-12-12 17:39:50 +08:00
|
|
|
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;
|
|
|
|
}
|
2022-04-28 09:14:52 +08:00
|
|
|
|
|
|
|
public static void main(String[] args) {
|
2022-04-28 09:50:33 +08:00
|
|
|
|
2022-04-28 09:14:52 +08:00
|
|
|
}
|
2021-12-12 17:39:50 +08:00
|
|
|
}
|