跳转至内容
0
  • 版块
  • 讨论
  • 最新
  • 标签
  • 热门
  • 顶端
  • 用户
  • 版块
  • 讨论
  • 最新
  • 标签
  • 热门
  • 顶端
  • 用户
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
JIKE社区
  1. 首页
  2. 讨论区
  3. 技术专区
  4. 天翼云盘GitHub自动签到源代码失效了,哪位大神改改?

天翼云盘GitHub自动签到源代码失效了,哪位大神改改?

已定时 已固定 已锁定 已移动 技术专区
31 帖子 10 发布者 7.3k 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • L LMY

    大佬们
    这种怎么办呀?
    获得1,获得1是个什么鬼?

    Y 离线
    Y 离线
    yafengliang
    🍌
    发表于 最后由 编辑
    #21

    @lmy 试试这个

    import requests, time, re, rsa, json, base64
    from urllib import parse
    
    s = requests.Session()
    
    username = "账号"
    password = "密码"
    
    if(username == "" or password == ""):
        username = input("账号:")
        print(username[:3] + '****' + username[7:])
        password = input("密码:")
    
    def main():
        msg = login(username, password)
        if(msg == "error"):
            return None
        else:
            pass
        rand = str(round(time.time()*1000))
        surl = f'https://api.cloud.189.cn/mkt/userSign.action?rand={rand}&clientType=TELEANDROID&version=8.6.3&model=SM-G930K'
        url = f'https://m.cloud.189.cn/v2/drawPrizeMarketDetails.action?taskId=TASK_SIGNIN&activityId=ACT_SIGNIN'
        url2 = f'https://m.cloud.189.cn/v2/drawPrizeMarketDetails.action?taskId=TASK_SIGNIN_PHOTOS&activityId=ACT_SIGNIN'
        headers = {
            'User-Agent':'Mozilla/5.0 (Linux; Android 5.1.1; SM-G930K Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36 Ecloud/8.6.3 Android/22 clientId/355325117317828 clientModel/SM-G930K imsi/460071114317824 clientChannelId/qq proVersion/1.0.6',
            "Referer" : "https://m.cloud.189.cn/zhuanti/2016/sign/index.jsp?albumBackupOpened=1",
            "Host" : "m.cloud.189.cn",
            "Accept-Encoding" : "gzip, deflate",
        }
        #签到
        response = s.get(surl,headers=headers)
        netdiskBonus = response.json()['netdiskBonus']
        print(f"签到获得{netdiskBonus}M空间")
        headers = {
            'User-Agent':'Mozilla/5.0 (Linux; Android 5.1.1; SM-G930K Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36 Ecloud/8.6.3 Android/22 clientId/355325117317828 clientModel/SM-G930K imsi/460071114317824 clientChannelId/qq proVersion/1.0.6',
            "Referer" : "https://m.cloud.189.cn/zhuanti/2016/sign/index.jsp?albumBackupOpened=1",
            "Host" : "m.cloud.189.cn",
            "Accept-Encoding" : "gzip, deflate",
        }
        #第一次抽奖
        response = s.get(url,headers=headers)
        if ("prizeName" in response.text):
            #description = response.json()['description']
            #print(f"抽奖获得{description}")
            prizeName = response.json()['prizeName']
            print(f"抽奖获得{prizeName}")
        else:
            try:
                if(response.json()['errorCode'] == "User_Not_Chance"):
                    print("抽奖次数不足")
                else:
                    print(response.text)
            except:
                    print(str(response.status_code) + response.text)
        #第二次抽奖
        response = s.get(url2,headers=headers)
        if ("prizeName" in response.text):
            #description = response.json()['description']
            #print(f"抽奖获得{description}")
            prizeName = response.json()['prizeName']
            print(f"抽奖获得{prizeName}")
        else:
            try:
                if(response.json()['errorCode'] == "User_Not_Chance"):
                    print("抽奖次数不足")
                else:
                    print(response.text)
            except:
                    print(str(response.status_code) + response.text)
    
    BI_RM = list("0123456789abcdefghijklmnopqrstuvwxyz")
    def int2char(a):
        return BI_RM[a]
    
    b64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
    def b64tohex(a):
        d = ""
        e = 0
        c = 0
        for i in range(len(a)):
            if list(a)[i] != "=":
                v = b64map.index(list(a)[i])
                if 0 == e:
                    e = 1
                    d += int2char(v >> 2)
                    c = 3 & v
                elif 1 == e:
                    e = 2
                    d += int2char(c << 2 | v >> 4)
                    c = 15 & v
                elif 2 == e:
                    e = 3
                    d += int2char(c)
                    d += int2char(v >> 2)
                    c = 3 & v
                else:
                    e = 0
                    d += int2char(c << 2 | v >> 4)
                    d += int2char(15 & v)
        if e == 1:
            d += int2char(c << 2)
        return d
    
    
    def rsa_encode(j_rsakey, string):
        rsa_key = f"-----BEGIN PUBLIC KEY-----\n{j_rsakey}\n-----END PUBLIC KEY-----"
        pubkey = rsa.PublicKey.load_pkcs1_openssl_pem(rsa_key.encode())
        result = b64tohex((base64.b64encode(rsa.encrypt(f'{string}'.encode(), pubkey))).decode())
        return result
    
    def calculate_md5_sign(params):
        return hashlib.md5('&'.join(sorted(params.split('&'))).encode('utf-8')).hexdigest()
    
    def login(username, password):
        url = "https://cloud.189.cn/api/portal/loginUrl.action?redirectURL=https://cloud.189.cn/web/redirect.html"
        r = s.get(url)
        print("r:::"+r.text)
        captchaToken = re.findall(r"captchaToken' value='(.+?)'", r.text)[0]
        lt = re.findall(r'lt = "(.+?)"', r.text)[0]
        returnUrl = re.findall(r"returnUrl = '(.+?)'", r.text)[0]
        paramId = re.findall(r'paramId = "(.+?)"', r.text)[0]
        j_rsakey = re.findall(r'j_rsaKey" value="(\S+)"', r.text, re.M)[0]
        s.headers.update({"lt": lt})
    
        username = rsa_encode(j_rsakey, username)
        password = rsa_encode(j_rsakey, password)
        url = "https://open.e.189.cn/api/logbox/oauth2/loginSubmit.do"
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/76.0',
            'Referer': 'https://open.e.189.cn/',
            }
        data = {
            "appKey": "cloud",
            "accountType": '01',
            "userName": f"{{RSA}}{username}",
            "password": f"{{RSA}}{password}",
            "validateCode": "",
            "captchaToken": captchaToken,
            "returnUrl": returnUrl,
            "mailSuffix": "@189.cn",
            "paramId": paramId
            }
        r = s.post(url, data=data, headers=headers, timeout=5)
        if(r.json()['result'] == 0):
            print(r.json()['msg'])
        else:
            print(r.json()['msg'])
            return "error"
        redirect_url = r.json()['toUrl']
        r = s.get(redirect_url)
        return s
    
    if __name__ == "__main__":
        main()
    

    http://yafengliang.github.io

    L 1 条回复 最后回复
    1
    • Y yafengliang

      @lmy 试试这个

      import requests, time, re, rsa, json, base64
      from urllib import parse
      
      s = requests.Session()
      
      username = "账号"
      password = "密码"
      
      if(username == "" or password == ""):
          username = input("账号:")
          print(username[:3] + '****' + username[7:])
          password = input("密码:")
      
      def main():
          msg = login(username, password)
          if(msg == "error"):
              return None
          else:
              pass
          rand = str(round(time.time()*1000))
          surl = f'https://api.cloud.189.cn/mkt/userSign.action?rand={rand}&clientType=TELEANDROID&version=8.6.3&model=SM-G930K'
          url = f'https://m.cloud.189.cn/v2/drawPrizeMarketDetails.action?taskId=TASK_SIGNIN&activityId=ACT_SIGNIN'
          url2 = f'https://m.cloud.189.cn/v2/drawPrizeMarketDetails.action?taskId=TASK_SIGNIN_PHOTOS&activityId=ACT_SIGNIN'
          headers = {
              'User-Agent':'Mozilla/5.0 (Linux; Android 5.1.1; SM-G930K Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36 Ecloud/8.6.3 Android/22 clientId/355325117317828 clientModel/SM-G930K imsi/460071114317824 clientChannelId/qq proVersion/1.0.6',
              "Referer" : "https://m.cloud.189.cn/zhuanti/2016/sign/index.jsp?albumBackupOpened=1",
              "Host" : "m.cloud.189.cn",
              "Accept-Encoding" : "gzip, deflate",
          }
          #签到
          response = s.get(surl,headers=headers)
          netdiskBonus = response.json()['netdiskBonus']
          print(f"签到获得{netdiskBonus}M空间")
          headers = {
              'User-Agent':'Mozilla/5.0 (Linux; Android 5.1.1; SM-G930K Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36 Ecloud/8.6.3 Android/22 clientId/355325117317828 clientModel/SM-G930K imsi/460071114317824 clientChannelId/qq proVersion/1.0.6',
              "Referer" : "https://m.cloud.189.cn/zhuanti/2016/sign/index.jsp?albumBackupOpened=1",
              "Host" : "m.cloud.189.cn",
              "Accept-Encoding" : "gzip, deflate",
          }
          #第一次抽奖
          response = s.get(url,headers=headers)
          if ("prizeName" in response.text):
              #description = response.json()['description']
              #print(f"抽奖获得{description}")
              prizeName = response.json()['prizeName']
              print(f"抽奖获得{prizeName}")
          else:
              try:
                  if(response.json()['errorCode'] == "User_Not_Chance"):
                      print("抽奖次数不足")
                  else:
                      print(response.text)
              except:
                      print(str(response.status_code) + response.text)
          #第二次抽奖
          response = s.get(url2,headers=headers)
          if ("prizeName" in response.text):
              #description = response.json()['description']
              #print(f"抽奖获得{description}")
              prizeName = response.json()['prizeName']
              print(f"抽奖获得{prizeName}")
          else:
              try:
                  if(response.json()['errorCode'] == "User_Not_Chance"):
                      print("抽奖次数不足")
                  else:
                      print(response.text)
              except:
                      print(str(response.status_code) + response.text)
      
      BI_RM = list("0123456789abcdefghijklmnopqrstuvwxyz")
      def int2char(a):
          return BI_RM[a]
      
      b64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
      def b64tohex(a):
          d = ""
          e = 0
          c = 0
          for i in range(len(a)):
              if list(a)[i] != "=":
                  v = b64map.index(list(a)[i])
                  if 0 == e:
                      e = 1
                      d += int2char(v >> 2)
                      c = 3 & v
                  elif 1 == e:
                      e = 2
                      d += int2char(c << 2 | v >> 4)
                      c = 15 & v
                  elif 2 == e:
                      e = 3
                      d += int2char(c)
                      d += int2char(v >> 2)
                      c = 3 & v
                  else:
                      e = 0
                      d += int2char(c << 2 | v >> 4)
                      d += int2char(15 & v)
          if e == 1:
              d += int2char(c << 2)
          return d
      
      
      def rsa_encode(j_rsakey, string):
          rsa_key = f"-----BEGIN PUBLIC KEY-----\n{j_rsakey}\n-----END PUBLIC KEY-----"
          pubkey = rsa.PublicKey.load_pkcs1_openssl_pem(rsa_key.encode())
          result = b64tohex((base64.b64encode(rsa.encrypt(f'{string}'.encode(), pubkey))).decode())
          return result
      
      def calculate_md5_sign(params):
          return hashlib.md5('&'.join(sorted(params.split('&'))).encode('utf-8')).hexdigest()
      
      def login(username, password):
          url = "https://cloud.189.cn/api/portal/loginUrl.action?redirectURL=https://cloud.189.cn/web/redirect.html"
          r = s.get(url)
          print("r:::"+r.text)
          captchaToken = re.findall(r"captchaToken' value='(.+?)'", r.text)[0]
          lt = re.findall(r'lt = "(.+?)"', r.text)[0]
          returnUrl = re.findall(r"returnUrl = '(.+?)'", r.text)[0]
          paramId = re.findall(r'paramId = "(.+?)"', r.text)[0]
          j_rsakey = re.findall(r'j_rsaKey" value="(\S+)"', r.text, re.M)[0]
          s.headers.update({"lt": lt})
      
          username = rsa_encode(j_rsakey, username)
          password = rsa_encode(j_rsakey, password)
          url = "https://open.e.189.cn/api/logbox/oauth2/loginSubmit.do"
          headers = {
              'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/76.0',
              'Referer': 'https://open.e.189.cn/',
              }
          data = {
              "appKey": "cloud",
              "accountType": '01',
              "userName": f"{{RSA}}{username}",
              "password": f"{{RSA}}{password}",
              "validateCode": "",
              "captchaToken": captchaToken,
              "returnUrl": returnUrl,
              "mailSuffix": "@189.cn",
              "paramId": paramId
              }
          r = s.post(url, data=data, headers=headers, timeout=5)
          if(r.json()['result'] == 0):
              print(r.json()['msg'])
          else:
              print(r.json()['msg'])
              return "error"
          redirect_url = r.json()['toUrl']
          r = s.get(redirect_url)
          return s
      
      if __name__ == "__main__":
          main()
      
      L 离线
      L 离线
      LMY
      发表于 最后由 编辑
      #22

      @yafengliang 好的,谢谢大佬

      1 条回复 最后回复
      0
      • W wushuiyin

        前段时间的几个bug 撸了几个t 撸了近9年的会员 估计后面还会有bug

        868 离线
        868 离线
        86
        🍌
        发表于 最后由 编辑
        #23

        @wushuiyin 卧槽,都没听说,大佬路子还是宽啊

        1 条回复 最后回复
        0
        • spacemanS 离线
          spacemanS 离线
          spaceman
          🍌
          发表于 最后由 编辑
          #24

          想知道怎么使用的。对于小白来说现在搞点儿免费的门槛太高了

          M 1 条回复 最后回复
          0
          • spacemanS spaceman

            想知道怎么使用的。对于小白来说现在搞点儿免费的门槛太高了

            M 离线
            M 离线
            ma
            🍌
            发表于 最后由 编辑
            #25

            @spaceman
            如果本机安装有python环境,修改成自己的手机号和密码,可以直接在本机跑。
            进阶一点,可以设置电脑计划任务,自动或者定时执行,不一定非要在云端

            支付宝搜:704557483,领消费红包

            1 条回复 最后回复
            0
            • Y 离线
              Y 离线
              yafengliang
              🍌
              发表于 最后由 编辑
              #26

              gitHub可自动执行

              http://yafengliang.github.io

              1 条回复 最后回复
              0
              • I 离线
                I 离线
                invoker
                🍌
                发表于 最后由 编辑
                #27

                dalao们,一个脚本多账号该怎么弄呢

                Y 2 条回复 最后回复
                0
                • I invoker

                  dalao们,一个脚本多账号该怎么弄呢

                  Y 离线
                  Y 离线
                  yafengliang
                  🍌
                  发表于 最后由 编辑
                  #28

                  @invoker gitHub可以的 https://github.com/YafengLiang/Check189

                  http://yafengliang.github.io

                  I 1 条回复 最后回复
                  0
                  • I invoker

                    dalao们,一个脚本多账号该怎么弄呢

                    Y 离线
                    Y 离线
                    yafengliang
                    🍌
                    发表于 最后由 编辑
                    #29

                    @invoker 不懂的可以提问

                    http://yafengliang.github.io

                    1 条回复 最后回复
                    0
                    • Y 离线
                      Y 离线
                      yafengliang
                      🍌
                      发表于 最后由 编辑
                      #30

                      你们都执行成功了么?

                      http://yafengliang.github.io

                      1 条回复 最后回复
                      0
                      • Y yafengliang

                        @invoker gitHub可以的 https://github.com/YafengLiang/Check189

                        I 离线
                        I 离线
                        invoker
                        🍌
                        发表于 最后由 编辑
                        #31

                        @yafengliang 好的,感谢🙏

                        1 条回复 最后回复
                        0

                        你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

                        厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。

                        有了你的建议,这篇帖子会更精彩哦 💗

                        注册 登录
                        回复
                        • 在新帖中回复
                        登录后回复
                        • 从旧到新
                        • 从新到旧
                        • 最多赞同


                        • 1
                        • 2
                        Popular Topics - 热门主题
                        • Office24_ProPlus2024VL_MAK_AE2
                          H
                          huazone
                          1
                          2
                          90

                        • 中国移动 26年6月话费流量汇总
                          1
                          1
                          91

                        • 中国移动1 AI豆换风行视频超级会员月卡
                          N
                          nop
                          0
                          3
                          121

                        • 农行免费撸3瓶可乐/雪碧/芬达!速度!
                          黄大师鉴
                          黄大师
                          0
                          2
                          68

                        • 交通银行 交电费减了6.7元
                          A
                          abcpython
                          0
                          2
                          127

                        • staticrun免费托管
                          我是小马甲~M
                          我是小马甲~
                          0
                          2
                          124


                        • 登录

                        • 没有帐号? 注册

                        • 登录或注册以进行搜索。
                        百度网盘
                        4,221 个主题
                        夸克网盘
                        4,202 个主题
                        连续剧
                        1,494 个主题
                        国产剧
                        1,014 个主题
                        美剧
                        690 个主题
                        动作片
                        648 个主题
                        恐怖片
                        507 个主题
                        动画片
                        399 个主题

                        204

                        在线

                        43.8k

                        用户

                        49.6k

                        主题

                        125.5k

                        帖子
                        • 第一个帖子
                          最后一个帖子