Skip to content

Commit

Permalink
更新登录组件
Browse files Browse the repository at this point in the history
  • Loading branch information
Hsury committed Dec 6, 2019
1 parent 3d2e5cc commit 6e7d31e
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 81 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
if: 'tag IS blank'
env:
global:
- TRAVIS_TAG=v1.9
- TRAVIS_TAG=v2.0
jobs:
include:
-
Expand Down
93 changes: 15 additions & 78 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<h1 align="center">- Bilibili Toolkit -</h1>

<p align="center">
<img src="https://img.shields.io/badge/version-2019.11.30-green.svg?longCache=true&style=for-the-badge">
<img src="https://img.shields.io/badge/version-2019.12.6-green.svg?longCache=true&style=for-the-badge">
<img src="https://img.shields.io/badge/license-SATA-blue.svg?longCache=true&style=for-the-badge">
<img src="https://img.shields.io/travis/com/Hsury/Bilibili-Toolkit?style=for-the-badge">
</p>
Expand All @@ -20,7 +20,7 @@

|组件 |版本 |描述 |
|--------------------|---------------|------------------------------|
|login |2019/9/15 |登录 |
|login |2019/12/6 |登录 |
|get_user_info |2019/9/15 |获取用户信息 |
|set_privacy |2018/7/24 |修改隐私设置 |
|silver_to_coin |2018/8/8 |银瓜子兑换硬币 |
Expand All @@ -47,7 +47,13 @@

## 使用指南

### 源代码版本(推荐)
### 二进制版本

[Release页面](https://github.com/Hsury/Bilibili-Toolkit/releases)下载并解压与您的平台适配的压缩包,修改默认配置文件config.toml后运行可执行文件bilibili即可

*若要加载非默认配置文件,将其路径作为命令行参数传入即可*

### 源代码版本

1. 克隆或[下载](https://github.com/Hsury/Bilibili-Toolkit/archive/master.zip)本代码仓库,并修改默认配置文件config.toml

Expand All @@ -69,88 +75,19 @@ pip install -r requirements.txt -U -i https://pypi.tuna.tsinghua.edu.cn/simple
python bilibili.py
```

### 二进制版本

[Release页面](https://github.com/Hsury/Bilibili-Toolkit/releases)下载并解压与您的平台适配的压缩包,修改默认配置文件config.toml后运行可执行文件bilibili即可

*若要加载非默认配置文件,将其路径作为命令行参数传入即可*

### docker版本
### Docker版本

1. 安装好[Docker](https://yeasy.gitbooks.io/docker_practice/content/install/)
2. 下载 [config.toml](https://raw.githubusercontent.com/Hsury/Bilibili-Toolkit/master/config.toml) **必须**
3. 如果需要代理,需要下载 [proxy.txt](https://raw.githubusercontent.com/Hsury/Bilibili-Toolkit/master/proxy.txt) **非必须**
5. 在本地修改好文件。
6. docker镜像启动时,把文件挂载到容器即可。
1. 安装Docker

---
2. [下载](https://raw.githubusercontent.com/Hsury/Bilibili-Toolkit/master/config.toml)默认配置文件config.toml并根据需求修改

#### Linux
3. 启动容器,并挂载配置文件

```
docker run --rm -it \
-v $(pwd)/config.toml:/app/config.toml \
-v $(pwd)/proxy.txt:/app/proxy.txt zsnmwy/bilibili-toolkit
```

```shell script
# 如果你没有配置代理。请自行移除

-v $(pwd)/proxy.txt:/app/proxy.txt

# 即不做该文件的映射
docker run --rm -it -v [YOUR PATH TO CONFIG.TOML]:/app/config.toml zsnmwy/bilibili-toolkit
```

`$(pwd)` 获取当前目录路径。

#### Windows

假设下载的文件都在`D:\python`

```
下面命令需要在powershell上面执行。
docker run --rm -it `
-v D:\python\config.toml:/app/config.toml `
-v D:\python\proxy.txt:/app/proxy.txt `
zsnmwy/bilibili-toolkit
如果你没有配置代理。请自行移除
-v D:\python\proxy.txt:/app/proxy.txt
```
---

下面的指令都是docker本身的指令,适用于`Windows`以及`Linux`

`--rm` 退出的时候,会把容器删除。

`-i` 让容器的标准输入保持打开。

`-t` 让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上。

`-d `让容器后台运行。如果你想后台,加个在`-it`后面加个`d`就行。

`-v` 可以把本机的(目录/文件)挂载到容器里面,起到加入/替换的作用。如果你使用的是项目的默认值,则不用-v来指定文件替换。但是配置文件(`config.toml`)是一定要的,不然程序找不到用户的。

---

如果有什么奇葩问题,或者需要更新镜像,使用`docker pull zsnmwy/bilibili-toolkit`进行更新(保证不更新)。

### 已知问题

`-it`交互模式下,在容器运行着的python直接用`Ctrl+C`无法正常退出容器。

需要使用`docker rm -f`强制结束。

```
$docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a746fb0325fb zsnmwy/bilibili-toolkit "/bin/sh -c 'git pul…" 44 seconds ago Up 42 seconds frosty_mccarthy
$docker rm -f a7
a7
```
*若要加载代理池,补充参数`-v [YOUR PATH TO PROXY.TXT]:/app/proxy.txt`以挂载代理列表文件*

## 图形验证码识别API

Expand Down
7 changes: 5 additions & 2 deletions bilibili.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
__author__ = "Hsury"
__email__ = "i@hsury.com"
__license__ = "SATA"
__version__ = "2019.11.30"
__version__ = "2019.12.6"

class Bilibili:
app_key = "1d8b6e7d45233436"
Expand Down Expand Up @@ -208,7 +208,7 @@ def get_key():
while True:
key = get_key()
key_hash, pub_key = key['key_hash'], key['pub_key']
url = f"{self.protocol}://passport.bilibili.com/api/v2/oauth2/login"
url = f"{self.protocol}://passport.bilibili.com/api/v3/oauth2/login"
param = f"appkey={Bilibili.app_key}&password={parse.quote_plus(base64.b64encode(rsa.encrypt(f'{key_hash}{self.password}'.encode(), pub_key)))}&username={parse.quote_plus(self.username)}"
payload = f"{param}&sign={self.calc_sign(param)}"
headers = {'Content-type': "application/x-www-form-urlencoded"}
Expand All @@ -234,6 +234,9 @@ def get_key():
if not self.set_proxy():
time.sleep(10)
break
elif response['code'] == -449:
time.sleep(1)
response = self._requests("post", url, data=payload, headers=headers)
elif response['code'] == 0 and response['data']['status'] == 0:
for cookie in response['data']['cookie_info']['cookies']:
self._session.cookies.set(cookie['name'], cookie['value'], domain=".bilibili.com")
Expand Down

0 comments on commit 6e7d31e

Please sign in to comment.