Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/CaoZ/JD-Coin
自动登录京东,打卡领钢镚,签到领京豆
https://github.com/CaoZ/JD-Coin
Last synced: about 1 month ago
JSON representation
自动登录京东,打卡领钢镚,签到领京豆
- Host: GitHub
- URL: https://github.com/CaoZ/JD-Coin
- Owner: CaoZ
- License: apache-2.0
- Created: 2017-03-18T04:19:59.000Z (over 7 years ago)
- Default Branch: browser
- Last Pushed: 2019-10-14T06:53:44.000Z (about 5 years ago)
- Last Synced: 2024-08-03T09:12:26.657Z (4 months ago)
- Language: Python
- Homepage:
- Size: 270 KB
- Stars: 920
- Watchers: 61
- Forks: 340
- Open Issues: 36
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-github-star - JD-Coin
README
## 自动登录京东,打卡领钢镚,签到领京豆
[![Python](https://img.shields.io/badge/Python-3.5%2B-blue.svg)](https://www.python.org)
### 使用方法:
1. 安装`Python` (3.5 或更高版本)
2. 建立虚拟运行环境(可选)
3. 下载代码
4. 安装依赖:`pip install -r requirements.txt`
5. 创建配置文件(可选)
6. 运行:`python app/main.py`
## 说明
直接登录京东较复杂,不易实现,因此采用了以下两种方式进行登录:
#### 方式一:
> 2017-08-13 更新:即现在的默认分支`browser`。
借助内置浏览器登录。本方式中使用 `PyQt5` 的 `WebEngine` 构建了个简易浏览器,在其中登录京东即可。
登录后浏览器窗口会自动关闭,程序会获取到 cookie,然后就可以继续签到了~
![浏览器方式登录](docs/browser.png)
#### 方式二:
> 2017-08-13 更新:目前此方式[依赖的包](https://github.com/gera2ld/qqlib)存在一些问题,暂不可用,请使用「浏览器方式」登录。
通过第三方登录的方式,登录了[绑定的 QQ 帐号](https://safe.jd.com/union/index.action),也就登录了京东。
在登录 QQ 时有时会出现需要输入验证码的情况,若是在 [iTerm2](http://www.iterm2.com/) 中运行,验证码图片会显示在终端中,直接输入即可;否则会调用系统关联应用打开验证码图片。
![通过 QQ 登录](docs/qq.png)
## 其他
### 配置文件说明
#### 帐号/密码:
可以将帐号/密码保存到配置文件中(若使用浏览器方式,可以只保存帐号),这样就不用在每次登录时手动输入了(虽然使用了 cookie 保存登录状态,但京东还是会每隔几天就让你重新登录的...)。
将默认配置文件复制为`config.json`,然后使用 [Base85](https://en.wikipedia.org/wiki/Ascii85) 方式将对应的帐号、密码编码后填入配置文件中即可,完成后是这样子的:
```json
{
"debug": false,
"jd": {
"username": "b#rBMZeeX@",
"password": "aA9+EcW-iJ"
}
}
```(是不是比明文安全性多了一点点呢?^_^)
编码示例(Python):
```python
>>> import base64
>>> base64.b85encode(b'username').decode()
'b#rBMZeeX@'
```#### 我没有小白卡/我想跳过某些任务:
将想要跳过的任务填写到配置文件中的 `jobs_skip` 中即可。比如想跳过「小白卡钢镚打卡」任务,填写 `Daka` 即可:
```json
"jobs_skip": ["Daka"]
```跳过多个任务:
```json
"jobs_skip": ["DataStation", "Daka"]
```任务列表:
| 任务 | 描述 |
| --- | --- |
| DaKa | 小白卡钢镚打卡(已下线) |
| DakaApp | 京东客户端钢镚打卡 |
| BeanApp | 京东客户端签到领京豆 |
| DoubleSign | 客户端双签赢奖励活动(不定时开放) |
| Bean | 京东会员页签到领京豆 |
| SignJR | 京东金融签到领奖励 |
| DataStation | 流量加油站签到领流量 |
| RedPacket | 京东小金库现金红包(已下线) |
### 设置网络代理
设置环境变量 `HTTP_PROXY` / `HTTPS_PROXY` 即可。
## Example
```log
2017-03-15 10:38:48,711 root[config] INFO: 使用配置文件 "config.json".
2017-03-15 10:38:48,745 root[main] INFO: # 从文件加载 cookies 成功.
2017-03-15 10:38:48,745 jobs[daka] INFO: Job Start: 小白卡钢镚打卡
2017-03-15 10:38:49,734 jobs[daka] INFO: 登录状态: True
2017-03-15 10:38:50,642 jobs[daka] INFO: 今日已打卡: False; 打卡天数: 2
2017-03-15 10:38:50,742 jobs[daka] INFO: 打卡成功: True; Message: 打卡成功
2017-03-15 10:38:50,743 jobs[daka] INFO: Job End.
2017-03-15 10:38:50,743 jobs[daka] INFO: Job Start: 京东客户端钢镚打卡
2017-03-15 10:38:50,843 jobs[daka] INFO: 登录状态: True
2017-03-15 10:38:50,923 jobs[daka_app] INFO: 今日已打卡: False; 打卡天数: 2
2017-03-15 10:38:51,105 jobs[daka_app] INFO: 打卡成功: True; Message: 打卡成功,成功领取了0.1个钢镚!
2017-03-15 10:38:51,105 jobs[daka] INFO: Job End.
2017-03-15 10:38:51,105 jobs[daka] INFO: Job Start: 京东客户端签到领京豆
2017-03-15 10:38:51,249 jobs[daka] INFO: 登录状态: True
2017-03-15 10:38:51,344 jobs[bean_app] INFO: 今日已签到: False; 签到天数: 2
2017-03-15 10:38:51,452 jobs[bean_app] INFO: 签到成功; 获得 2 个京豆.
2017-03-15 10:38:51,452 jobs[daka] INFO: Job End.
2017-03-15 10:38:51,452 jobs[daka] INFO: Job Start: 京东会员页签到领京豆
2017-03-15 10:38:51,967 jobs[daka] INFO: 登录状态: True
2017-03-15 10:38:52,472 jobs[bean] INFO: 今日已签到: False; 现在有 1087 个京豆.
2017-03-15 10:38:52,922 jobs[bean] INFO: 签到成功,获得 20 个京豆.
2017-03-15 10:38:52,923 jobs[daka] INFO: Job End.
2017-03-15 10:38:52,923 jobs[daka] INFO: Job Start: 京东金融签到领京豆
2017-03-15 10:38:53,514 jobs[daka] INFO: 登录状态: True
2017-03-15 10:38:53,582 jobs[bean_jr] INFO: 今天已签到: False; 签到天数: 2
2017-03-15 10:38:53,681 jobs[bean_jr] INFO: 签到成功,获得 5 个京豆.
2017-03-15 10:38:53,681 jobs[daka] INFO: Job End.
=================================
= 任务数: 5; 失败数: 0
= 全部成功 ~
=================================
```