Code Monkey home page Code Monkey logo

youthstudy-tool's Introduction

Typing SVG


Visitor count

From: 23 January 2023 - To: 08 June 2024

Total Time: 107 hrs 21 mins

Other          66 hrs 10 mins  >>>>>>>>>>>>>>>----------   61.65 %
Python         14 hrs 14 mins  >>>----------------------   13.27 %
Text           10 hrs 8 mins   >>-----------------------   09.44 %
YAML           6 hrs 28 mins   >>-----------------------   06.04 %
Markdown       5 hrs 3 mins    >------------------------   04.71 %

youthstudy-tool's People

Contributors

chenghow avatar huoyiming avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

youthstudy-tool's Issues

需求:只有青年大学习更新时,才进行推送。

只有更新了青年大学习时,才进行推送
如:
名称:"青年大学习"2024年第1期
打卡状态:成功

未更新青年大学习时,则不推送
如:
名称:"青年大学习"2024年第1期
打卡状态:当期已学习,自动跳过

建议把开源许可证更换为AGPL-3

如题,既然作者已经使用了强传染性的GPL3,那为何不直接使用AGPL3呢?
AGPL3在GPL3的基础上增加了对利用源码提供网络服务者的开源义务,能更好地保护开源权益。

抓包的步骤可以免去,用更方便的方法(获取团员ID)代替

萌新一枚,提供一个思路。不清楚secret中的变量如何传递到代码中,就没有pull request啦。
采用这种方式,使用者可以更方便地开始。

获取团员ID (MemberID) 的方法:

1. 微信智慧团建首页
2. 认证资料
3. 生成电子团员证
4. 生成电子团员证
5. 右上角三个点复制链接
6. 在链接中找到 "memberId=xxxxxxx" 其中的 "xxxxxxx" 即为 MemberID

通过MemberID获取xLitemallToken的代码示例:

#假设这是从secret中获得的MemberID
MemberID = '1234567'

def getToken(memberid):
    import json,requests,urllib.parse
    url1 = f"https://tuanapi.12355.net/questionnaire/getYouthLearningUrl?mid={memberid}"
    url2 = "https://youthstudy.12355.net/apih5/api/user/get"
    Headers1 = {
    'Host': 'tuanapi.12355.net',
    'Connection': 'close',
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'Origin': 'https://tuan.12355.net',
    'User-Agent': 'Mozilla/5.0 (Linux; Android 10; ANA-AN00 Build/HUAWEIANA-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.99 XWEB/3211 MMWEBSDK/20220303 Mobile Safari/537.36 MMWEBID/4236 MicroMessenger/8.0.21.2120(0x2800153F) Process/tools WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64',
    'X-Requested-With': 'com.tencent.mm',
    'Sec-Fetch-Site': 'same-site',
    'Sec-Fetch-Mode': 'cors',
    'Referer': 'https://tuan.12355.net/wechat/view/YouthLearning/page.html',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
    }
    Headers2 = {
            'Host': 'youthstudy.12355.net',
            'Connection': 'close',
            'Content-Length': '134',
            'Origin': 'https://youthstudy.12355.net',
            'X-Litemall-Token': '',
            'X-Litemall-IdentiFication': 'young',
            'User-Agent': 'Mozilla/5.0 (Linux; Android 10; ANA-AN00 Build/HUAWEIANA-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.99 XWEB/3211 MMWEBSDK/20220303 Mobile Safari/537.36 MMWEBID/4236 MicroMessenger/8.0.21.2120(0x2800153F) Process/tools WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64',
            'Content-Type': 'application/x-www-form-urlencoded',
            'Accept': '*/*',
            'X-Requested-With': 'com.tencent.mm',
            'Sec-Fetch-Site': 'same-origin',
            'Sec-Fetch-Mode': 'cors',
            'Referer': 'https://youthstudy.12355.net/h5/',
            'Accept-Encoding': 'gzip, deflate',
            'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7'
        }
    response1 = requests.get(url = url1,headers = Headers1)
    payload = f"sign={urllib.parse.quote((json.loads(response1.text)['youthLearningUrl'].split('?'))[1][5:])}"
    response2 = requests.post(url = url2, headers = Headers2, data = payload)
    token = json.loads(response2.text)["data"]["entity"]["token"]
    return token
xLitemallToken = getToken(MemberID)

原理:
通过大学习的API获取对应 MemberID 的大学习主页标签 sign,然后post大学习主页获取对应 MemberID 的 xLitemallToken

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.