package com.yutou.qqbot.models.WebSign;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.yutou.qqbot.Annotations.UseModel;
import com.yutou.qqbot.QQBotManager;
import com.yutou.qqbot.models.Model;
import com.yutou.qqbot.utlis.*;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

import java.io.File;
import java.util.concurrent.TimeUnit;
@UseModel
public class BaiHeHui extends Model {
    @Override
    public boolean isUserPublic() {
        return true;
    }

    @Override
    public String[] getUsePowers() {
        return new String[0];
    }

    @Override
    public String getModelName() {
        return "百合会签到";
    }

    @Override
    public void onTime(Long qq, String time) {
        super.onTime(qq, time);
        if ("08:10:00".equals(time)) {
            Log.i("开始百合会签到");
            try {
                if (sign()) {
                    QQBotManager.getInstance().sendMessage(QQBotManager.defGroup, "百合会签到成功");
                } else {
                    QQBotManager.getInstance().sendMessage(QQBotManager.defGroup, "百合会签到失败");
                }
            } catch (Exception e) {
                e.printStackTrace();
                QQBotManager.getInstance().sendMessage(QQBotManager.defGroup, "百合会签到失败:" + AppTools.getExceptionString(e));
            }finally {
                WebClient.getInstance().quit();
            }
        }
    }

    public boolean sign() {
        String cookie = ConfigTools.readFile(new File("baihehui.json"));
        if (StringUtils.isEmpty(cookie)) {
            return false;
        }
        WebDriver driver = WebClient.getInstance().getWebDriver();
        try {
            JSONArray array = JSON.parseArray(cookie);
            driver.manage().timeouts().implicitlyWait(10000, TimeUnit.SECONDS);
            driver.get("https://bbs.yamibo.com/forum.php");
            login(driver);
          //  driver.manage().deleteAllCookies();
           /* Thread.sleep(1000);
            for (Cookie _cookie : WebClient.loadCookie(array)) {
                System.err.println(_cookie);
                driver.manage().addCookie(_cookie);
                Thread.sleep(100);
            }*/
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            driver.navigate().refresh();
            driver.get("https://bbs.yamibo.com/forum.php");
            for (WebElement element : driver.findElements(By.xpath("//a"))) {
                if ("打卡签到".equals(element.getText())) {
                     element.click();
                    break;
                }
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    private void login(WebDriver driver) {
        driver.get("https://bbs.yamibo.com/member.php?mod=logging&action=login");
        driver.findElement(By.name("username")).sendKeys("z583819556");
        driver.findElement(By.name("password")).sendKeys("u8fi4Qfr.5D2wZ5");
        driver.findElement(By.name("loginsubmit")).submit();
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
    }

    public static void main(String[] args) {
        new BaiHeHui().sign();
    }
}