通过雨云白嫖我的世界面板服

最近刷b站,发现了一个新服务器商:雨云

了解了一下,发现雨云可以通过积分兑换我的世界面板服,并且使用积分续期。

又发现雨云通过调用api可以实现自动签到+自动续期,实现无限免费获得面板服,于是产生本篇文章。

首先说一下面板服的配置,一共有两套配置。

经过我的测试,发现两套配置虽然性能不一样,初始购买价格(一个2000积分,一个4000积分)不一样,但是续期价格基本相同。所以我们选择配置较高的一款。

配置如下:

1
2
CPU:Intel Xeon Platinum 8275cl
2vCPU 4GB的RAM 10GB的SSD存储 上行20Mbps 下行100Mbps

同时可自定义服务器域名。

前期准备

首先到雨云官网 注册账号,登录。

然后到赚取积分,把能做的都做了,积分攒到4000

接着去积分商城,找到免费游戏云领取,领取“游戏云mcsm面板服-P8入门版”

领取后,去生成api密钥。至此,前期准备已完成。

启动脚本,每日签到+续期

接着到github创建一个仓库,名称随便,记得设为私有防止apikey泄露,这样方便使用github action每日自动签到+续期。

仓库文件结构如下:

1
2
3
4
5
6
7
Rainyun-main
├─ qiandao.py
├─ requirements.txt
├─ xuqi.py
└─ .github
└─ workflows
└─ main.yml

首先创建一个qiandao.py,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import requests
import json
import time

api_keys = [
"YOUR_API_KEY1",
"YOUR_API_KEY2"
]
url = "https://api.v2.rainyun.com/user/reward/tasks"

print("Rainyun-AutoSignin-V2 script, by CodeZhangBorui\n[Time] ", end='')
print(time.ctime())

for key in api_keys:
print("# 用 X-API-KEY 登录: " + key[:10] + "*"*22)
headers = {
'x-api-key': key,
'User-Agent': 'Rainyun-AutoSignin'
}
response = requests.request("GET", url, headers=headers, data={})
result = json.loads(response.text)
print("# 获取可领取任务列表")
undone = []
for task in result['data']:
if(task['Status'] == 0):
print("## - 未完成:" + task['Name'])
elif(task['Status'] == 1):
print("## > 可领取:" + task['Name'] + " | 可获得积分:" + str(task['Points']))
undone.append(task['Name'])
elif(task['Status'] == 2):
print("## V 已领取:" + task['Name'])
else:
print("## ? 未知状态:" + task['Name'] + " | 服务器 DATA:" + str(task))
# undone.append("每日签到")
if(undone == []):
print("# 没有可领取任务!")
else:
for task in undone:
try:
print("## 请求完成任务:" + task, end='')
response = requests.request("POST", url, headers=headers, json={"task_name": task})
result = json.loads(response.text)
print(" | 服务器 DATA:" + str(result))
except:
print(":( Something went wrong, retry in 10 seconds...")
time.sleep(10)
try:
print("## 请求完成任务:" + task, end='')
response = requests.request("POST", url, headers=headers, json={"task_name": task})
result = json.loads(response.text)
print(" | 服务器 DATA:" + str(result))
except:
print(":( Something went wrong, retry in 30 seconds...")
time.sleep(30)
try:
print("## 请求完成任务:" + task, end='')
response = requests.request("POST", url, headers=headers, json={"task_name": task})
result = json.loads(response.text)
print(" | 服务器 DATA:" + str(result))
except:
print(":( Something went wrong, skip this task")
continue
print("")
print("# 程序已结束!")
time.sleep(10)

记得把上面的api_keys改成自己的,也可以多填写几个。

接着创建一个xuqi.py用来续期:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import requests
import json
import time
import datetime

instances = [
["YOUR_API_KEY",'PRODUCT_ID'],
["YOUR_API_KEY2",'PRODUCT_ID2']
]
url_getinfo = "https://api.v2.rainyun.com/product/rgs/{id}/"
url_renew = "https://api.v2.rainyun.com/product/point_renew"

# 一次续费的天数
duration_day = 7

def GetRemainingDays(unix_timestamp):
# 获取当前时间的UNIX时间戳
current_timestamp = datetime.datetime.now().timestamp()
# 将UNIX时间戳转换为datetime对象
target_date = datetime.datetime.fromtimestamp(unix_timestamp)
# 将当前时间的UNIX时间戳转换为datetime对象
current_date = datetime.datetime.fromtimestamp(current_timestamp)
# 计算两个日期之间的差异
difference = current_date - target_date
# 获取差异的天数部分
days_difference = difference.days
return -days_difference

print("Rainyun-PointRenew-V1 script, by CodeZhangBorui\n[Time] ", end='')
print(time.ctime())

for instance in instances:
key = instance[0]
pid = instance[1]
print("# 处理实例: API-KEY=" + key[:10] + "*"*22 + ",产品ID=" + pid)
headers = {
'x-api-key': key,
'User-Agent': 'Rainyun-AutoRenew'
}
response = requests.request("GET", url_getinfo.replace('{id}',pid), headers=headers, data={})
result = json.loads(response.text)
try:
timestamp = result['data']['Data']['ExpDate']
except:
print("! 当在获取剩余天数时出错\n")
continue
remainingdays = GetRemainingDays(timestamp)
if(remainingdays > 3):
print("## 服务器还剩 " + str(remainingdays) + " 天到期,无法用积分续费!\n")
continue
print("## 服务器还剩 " + str(remainingdays) + " 天到期,尝试续费... ",end='')
try:
response = requests.request("POST", url_renew, headers=headers, json={"duration_day":duration_day,"product_id":int(pid),"product_type":"rgs"})
result = json.loads(response.text)
print(" | 服务器 DATA:" + str(result))
except:
print(":( Something went wrong, retry in 10 seconds...")
time.sleep(10)
try:
response = requests.request("POST", url_renew, headers=headers, json={"duration_day":duration_day,"product_id":int(pid),"product_type":"rgs"})
result = json.loads(response.text)
print(" | 服务器 DATA:" + str(result))
except:
print(":( Something went wrong, retry in 30 seconds...")
time.sleep(30)
try:
response = requests.request("POST", url_renew, headers=headers, json={"duration_day":duration_day,"product_id":int(pid),"product_type":"rgs"})
result = json.loads(response.text)
print(" | 服务器 DATA:" + str(result))
except:
print(":( Something went wrong, skip this task")
continue
print("")
print("# 程序已结束!")
time.sleep(10)

上述代码中YOUR_API_KEY换成自己的API_KEY,PRODUCT_ID换成你要续期的产品ID,在自己的产品列表能看到产品ID

在这里我们要续期的产品ID是:62037。

接着创建一个requirements.txt,填写如下代码:

1
requests

最后去actions选项卡,创建一个自定义action,在main.yml里填写如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
name: 雨云签到

on:
schedule:
- cron: '0 1 * * *' # 每天凌晨 1:00 执行
workflow_dispatch: {} # 添加 workflow_dispatch 触发器,方便调试

jobs:
run-qiandao:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.7'

- name: Install dependencies
run: pip install -r requirements.txt

- name: Run qiandao.py
run: python qiandao.py

- name: Run xuqi.py
run: python xuqi.py

结束了,最后手动触发一次测试一下,应该就好了。

一次续期可用七天,一共自动签到获得2100积分,续期七天需要2709积分,入不敷出。好在到期之后不会直接删除,而是会停用。过三天又可以继续续期。

另外发现雨云的积分是可以提现的,2000积分=1元,满60000可以体现,每天签到有300积分,需要连续签到200天以提现30块,账号之间积分不可以互相转让。

但账号注册甚至不需要邮箱验证,可以随意注册大量账号,很难确保之后不被薅秃,且用且珍惜。