ck_csdn   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 67
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 47
dl 0
loc 67
rs 10
c 0
b 0
f 0
wmc 9

4 Methods

Rating   Name   Duplication   Size   Complexity  
A CSDN.main() 0 17 3
A CSDN.__init__() 0 4 1
A CSDN.sign() 0 9 2
A CSDN.draw() 0 10 3
1
# -*- coding: utf-8 -*-
2
"""
3
cron: 30 10 * * *
4
new Env('CSDN');
5
"""
6
7
import requests
8
9
from notify_mtr import send
10
from utils import get_data
11
12
13
class CSDN:
14
    def __init__(self, check_items):
15
        self.check_items = check_items
16
        self.headers = {
17
            "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_2) "
18
            "AppleWebKit/537.36 (KHTML, like Gecko)"
19
            "Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.74"
20
        }
21
22
    def sign(self, cookies):
23
        url = "https://me.csdn.net/api/LuckyDraw_v2/signIn"
24
        res = requests.get(url, headers=self.headers, cookies=cookies).json()
25
        if res.get("code") == 200:
26
            msg = res.get("data").get("msg")
27
        else:
28
            msg = "签到失败"
29
            print(res)
30
        return msg
31
32
    def draw(self, cookies):
33
        url = "https://me.csdn.net/api/LuckyDraw_v2/goodluck"
34
        res = requests.get(url, headers=self.headers, cookies=cookies).json()
35
        if res.get("code") == 200:
36
            return (
37
                f", {res.get('data').get('prize_title')}"
38
                if res.get("data").get("prize_title") is not None
39
                else f"{res.get('data').get('msg')}"
40
            )
41
        return "抽奖失败"
42
43
    def main(self):
44
        msg_all = ""
45
        for check_item in self.check_items:
46
            cookie = {
47
                item.split("=")[0]: item.split("=")[1]
48
                for item in check_item.get("cookie").split("; ")
49
            }
50
            try:
51
                user_name = cookie.get("UserName", "")
52
            except Exception as e:
53
                print(f"获取用户信息失败: {e}")
54
                user_name = "未获取到用户信息"
55
            sign_msg = self.sign(cookie)
56
            draw_msg = self.draw(cookie)
57
            msg = f"帐号信息: {user_name}\n签到信息: {sign_msg}\n抽奖结果: {draw_msg}"
58
            msg_all += msg + "\n\n"
59
        return msg_all
60
61
62
if __name__ == "__main__":
63
    _data = get_data()
64
    _check_items = _data.get("CSDN", [])
65
    result = CSDN(check_items=_check_items).main()
66
    send("CSDN", result)
67