mirror of
https://github.com/KimigaiiWuyi/GenshinUID.git
synced 2025-06-01 13:09:56 +08:00
向下兼容Python 3.8
This commit is contained in:
parent
02f3595ede
commit
8fd1ad6e8f
26
README.md
26
README.md
@ -26,16 +26,17 @@
|
||||
|
||||
## 丨我该如何获取Cookies?[#92](https://github.com/KimigaiiWuyi/GenshinUID/issues/92)([@RemKeeper](https://github.com/RemKeeper))
|
||||
|
||||
```
|
||||
```js
|
||||
var cookie = document.cookie;
|
||||
var Str_Num = cookie.indexOf('_MHYUUID=');
|
||||
cookie = '添加 ' + cookie.substring(Str_Num);
|
||||
var ask = confirm('Cookie:' + cookie + '\n\n按确认,然后粘贴发送给机器人');
|
||||
if(ask==true)
|
||||
{copy(cookie);
|
||||
msg=cookie}
|
||||
else
|
||||
{msg='Cancel'}
|
||||
if (ask == true) {
|
||||
copy(cookie);
|
||||
msg = cookie
|
||||
} else {
|
||||
msg = 'Cancel'
|
||||
}
|
||||
```
|
||||
|
||||
1. 复制上面全部代码,然后打开https://bbs.mihoyo.com/ys/
|
||||
@ -46,11 +47,18 @@ else
|
||||
**警告:Cookies属于个人隐私,其效用相当于账号密码,请勿随意公开!**
|
||||
|
||||
## 丨获取米游社Stoken([AutoMihoyoBBS](https://github.com/Womsxd/AutoMihoyoBBS#%E8%8E%B7%E5%8F%96%E7%B1%B3%E6%B8%B8%E7%A4%BECookie))
|
||||
|
||||
**前提**:已经添加过米游社Cookies,并且已经绑定过uid(仅用于米游社币的获取)
|
||||
```sh
|
||||
|
||||
```js
|
||||
var cookie = document.cookie;
|
||||
var ask = confirm('Cookie:' + cookie + '\n\nDo you want to copy the cookie to the clipboard?');
|
||||
if(ask==true){copy("添加 stoken" + cookie);msg=cookie}else{msg='Cancel'}
|
||||
if (ask == true) {
|
||||
copy("添加 stoken" + cookie);
|
||||
msg = cookie
|
||||
} else {
|
||||
msg = 'Cancel'
|
||||
}
|
||||
```
|
||||
|
||||
1. 复制上面全部代码,然后打开http://user.mihoyo.com/
|
||||
@ -76,7 +84,7 @@ if(ask==true){copy("添加 stoken" + cookie);msg=cookie}else{msg='Cancel'}
|
||||
|
||||
## 丨其他
|
||||
|
||||
+ 如果对本插件有功能建议&Bug报告,欢迎提Issuse & Pr,每一条都会详细看过
|
||||
+ 如果对本插件有功能建议&Bug报告,欢迎提Issue & Pr,每一条都会详细看过
|
||||
+ 如果本插件对你有帮助,不要忘了点个Star~
|
||||
+ 本项目仅供学习使用,请勿用于商业用途
|
||||
+ [爱发电](https://afdian.net/@KimigaiiWuyi)
|
||||
|
@ -34,7 +34,7 @@ async def send_weapon_adv(bot: HoshinoBot, ev: CQEvent):
|
||||
name = str(ev.message).strip().replace(" ", "")[:-3]
|
||||
im = await weapon_adv(name)
|
||||
await bot.send(ev, im)
|
||||
except Exception as e:
|
||||
except Exception:
|
||||
logger.exception("获取建议失败。")
|
||||
|
||||
|
||||
|
@ -4,7 +4,7 @@ import threading
|
||||
from base64 import b64encode
|
||||
from io import BytesIO
|
||||
from re import Match, findall
|
||||
from typing import Optional
|
||||
from typing import Optional, Tuple, List
|
||||
|
||||
import numpy as np
|
||||
from PIL import Image, ImageDraw, ImageFilter, ImageFont
|
||||
@ -67,7 +67,7 @@ class CustomizeImage:
|
||||
return bg_img
|
||||
|
||||
@staticmethod
|
||||
def get_bg_color(edit_bg: Image) -> tuple[int, int, int]:
|
||||
def get_bg_color(edit_bg: Image) -> Tuple[int, int, int]:
|
||||
# 获取背景主色
|
||||
color = 8
|
||||
q = edit_bg.quantize(colors=color, method=2)
|
||||
@ -85,7 +85,7 @@ class CustomizeImage:
|
||||
return bg_color
|
||||
|
||||
@staticmethod
|
||||
def get_text_color(bg_color: tuple[int, int, int]) -> tuple[int, int, int]:
|
||||
def get_text_color(bg_color: Tuple[int, int, int]) -> Tuple[int, int, int]:
|
||||
# 通过背景主色(bg_color)确定文字主色
|
||||
r = 125
|
||||
if max(*bg_color) > 255 - r:
|
||||
@ -96,7 +96,7 @@ class CustomizeImage:
|
||||
return text_color
|
||||
|
||||
@staticmethod
|
||||
def get_char_color(bg_color: tuple[int, int, int]) -> tuple[int, int, int]:
|
||||
def get_char_color(bg_color: Tuple[int, int, int]) -> Tuple[int, int, int]:
|
||||
r = 140
|
||||
if max(*bg_color) > 255 - r:
|
||||
r *= -1
|
||||
@ -106,7 +106,7 @@ class CustomizeImage:
|
||||
return char_color
|
||||
|
||||
@staticmethod
|
||||
def get_char_high_color(bg_color: tuple[int, int, int]) -> tuple[int, int, int]:
|
||||
def get_char_high_color(bg_color: Tuple[int, int, int]) -> Tuple[int, int, int]:
|
||||
r = 140
|
||||
d = 20
|
||||
if max(*bg_color) > 255 - r:
|
||||
@ -117,7 +117,7 @@ class CustomizeImage:
|
||||
return char_color
|
||||
|
||||
@staticmethod
|
||||
def get_bg_detail_color(bg_color: tuple[int, int, int]) -> tuple[int, int, int]:
|
||||
def get_bg_detail_color(bg_color: Tuple[int, int, int]) -> Tuple[int, int, int]:
|
||||
r = 140
|
||||
if max(*bg_color) > 255 - r:
|
||||
r *= -1
|
||||
@ -127,7 +127,7 @@ class CustomizeImage:
|
||||
return bg_detail_color
|
||||
|
||||
@staticmethod
|
||||
def get_highlight_color(color: tuple[int, int, int]) -> tuple[int, int, int]:
|
||||
def get_highlight_color(color: Tuple[int, int, int]) -> Tuple[int, int, int]:
|
||||
red_color = color[0]
|
||||
green_color = color[1]
|
||||
blue_color = color[2]
|
||||
@ -980,7 +980,7 @@ async def draw_abyss_pic(uid: str, nickname: str, floor_num: int, image: Optiona
|
||||
return resultmes
|
||||
|
||||
|
||||
async def get_all_calculate_info(client: ClientSession, uid: str, char_id: list[str], ck: str, name: list):
|
||||
async def get_all_calculate_info(client: ClientSession, uid: str, char_id: List[str], ck: str, name: list):
|
||||
tasks = []
|
||||
for id_, name_ in zip(char_id, name):
|
||||
tasks.append(get_calculate_info(client, uid, id_, ck, name_))
|
||||
@ -991,9 +991,9 @@ async def get_all_calculate_info(client: ClientSession, uid: str, char_id: list[
|
||||
return data
|
||||
|
||||
|
||||
async def draw_char_pic(img: Image, char_data: dict, index: int, bg_color: tuple[int, int, int],
|
||||
text_color: tuple[int, int, int], bg_detail_color: tuple[int, int, int],
|
||||
char_high_color: tuple[int, int, int], char_talent_data: dict):
|
||||
async def draw_char_pic(img: Image, char_data: dict, index: int, bg_color: Tuple[int, int, int],
|
||||
text_color: Tuple[int, int, int], bg_detail_color: Tuple[int, int, int],
|
||||
char_high_color: Tuple[int, int, int], char_talent_data: dict):
|
||||
char_mingzuo = 0
|
||||
for k in char_data['constellations']:
|
||||
if k['is_actived']:
|
||||
|
@ -1,6 +1,6 @@
|
||||
import time
|
||||
import random
|
||||
import string
|
||||
import time
|
||||
|
||||
from httpx import AsyncClient
|
||||
|
||||
@ -8,10 +8,12 @@ from get_data import old_version_get_ds_token,random_hex
|
||||
|
||||
# 米游社的API列表
|
||||
bbs_Cookieurl = "https://webapi.account.mihoyo.com/Api/cookie_accountinfo_by_loginticket?login_ticket={}"
|
||||
bbs_Cookieurl2 = "https://api-takumi.mihoyo.com/auth/api/getMultiTokenByLoginTicket?login_ticket={}&token_types=3&uid={}"
|
||||
bbs_Cookieurl2 = "https://api-takumi.mihoyo.com/auth/api/getMultiTokenByLoginTicket" \
|
||||
"?login_ticket={}&token_types=3&uid={}"
|
||||
bbs_Taskslist = "https://bbs-api.mihoyo.com/apihub/sapi/getUserMissionsState" # 获取任务列表
|
||||
bbs_Signurl = "https://bbs-api.mihoyo.com/apihub/sapi/signIn?gids={}" # post
|
||||
bbs_Listurl = "https://bbs-api.mihoyo.com/post/api/getForumPostList?forum_id={}&is_good=false&is_hot=false&page_size=20&sort_type=1"
|
||||
bbs_Listurl = "https://bbs-api.mihoyo.com/post/api/getForumPostList?" \
|
||||
"forum_id={}&is_good=false&is_hot=false&page_size=20&sort_type=1"
|
||||
bbs_Detailurl = "https://bbs-api.mihoyo.com/post/api/getPostFull?post_id={}"
|
||||
bbs_Shareurl = "https://bbs-api.mihoyo.com/apihub/api/getShareConf?entity_id={}&entity_type=1"
|
||||
bbs_Likeurl = "https://bbs-api.mihoyo.com/apihub/sapi/upvotePost" # post json
|
||||
@ -48,10 +50,12 @@ mihoyobbs_List = [{
|
||||
"url": "https://bbs.mihoyo.com/sr/"
|
||||
}]
|
||||
|
||||
|
||||
def random_text(num: int) -> str:
|
||||
return ''.join(random.sample(string.ascii_lowercase + string.digits, num))
|
||||
|
||||
class mihoyobbs_coin:
|
||||
|
||||
class MihoyoBBSCoin:
|
||||
def __init__(self, cookies):
|
||||
self.headers = {
|
||||
"DS": old_version_get_ds_token(True),
|
||||
@ -81,24 +85,24 @@ class mihoyobbs_coin:
|
||||
self.Have_coins = 0
|
||||
|
||||
async def task_run(self):
|
||||
await self.Load_Mihoyobbs_List_Use()
|
||||
start = await self.Get_taskslist()
|
||||
await self.load_mihoyo_bbs_list_use()
|
||||
start = await self.get_tasks_list()
|
||||
self.postsList = await self.get_list()
|
||||
sign = await self.signing()
|
||||
read = await self.read_posts()
|
||||
like = await self.Likeposts()
|
||||
like = await self.like_posts()
|
||||
share = await self.share_post()
|
||||
im = start + "\n" + sign + "\n" + read + "\n" + like + "\n" + share
|
||||
return im
|
||||
|
||||
async def Load_Mihoyobbs_List_Use(self):
|
||||
async def load_mihoyo_bbs_list_use(self):
|
||||
for i in [2, 5]:
|
||||
for k in mihoyobbs_List:
|
||||
if i == int(k["id"]):
|
||||
self.mihoyobbs_List_Use.append(k)
|
||||
|
||||
# 获取任务列表,用来判断做了哪些任务
|
||||
async def Get_taskslist(self):
|
||||
async def get_tasks_list(self):
|
||||
# log.info("正在获取任务列表")
|
||||
async with AsyncClient() as client:
|
||||
req = await client.get(url=bbs_Taskslist, headers=self.headers)
|
||||
@ -175,7 +179,6 @@ class mihoyobbs_coin:
|
||||
return "你的Cookies已失效。"
|
||||
return "已完成签到任务~"
|
||||
|
||||
|
||||
# 看帖子
|
||||
async def read_posts(self):
|
||||
if self.Task_do["bbs_Read_posts"]:
|
||||
@ -190,8 +193,9 @@ class mihoyobbs_coin:
|
||||
num_ok += 1
|
||||
time.sleep(random.randint(2, 8))
|
||||
return "已完成看帖任务~共计成功{}次~".format(str(num_ok))
|
||||
|
||||
# 点赞
|
||||
async def Likeposts(self):
|
||||
async def like_posts(self):
|
||||
if self.Task_do["bbs_Like_posts"]:
|
||||
return "点赞任务已经完成过了~"
|
||||
else:
|
||||
|
@ -3,13 +3,15 @@ import os
|
||||
import sys
|
||||
from base64 import b64encode
|
||||
from io import BytesIO
|
||||
from typing import List
|
||||
|
||||
from openpyxl import load_workbook
|
||||
|
||||
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||
from .get_data import *
|
||||
from .get_image import draw_event_pic
|
||||
import get_mihoyo_bbs_coin as coin
|
||||
# 忽略PEP8 E402 module level import not at top of file 警告
|
||||
from .get_data import * # noqa: E402
|
||||
from .get_image import draw_event_pic # noqa: E402
|
||||
import get_mihoyo_bbs_coin as coin # noqa: E402
|
||||
|
||||
FILE_PATH = os.path.dirname(__file__)
|
||||
FILE2_PATH = os.path.join(FILE_PATH, 'mihoyo_bbs')
|
||||
@ -444,7 +446,7 @@ async def daily(mode="push", uid=None):
|
||||
current_expedition_num = dailydata['current_expedition_num']
|
||||
max_expedition_num = dailydata['max_expedition_num']
|
||||
finished_expedition_num = 0
|
||||
expedition_info: list[str] = []
|
||||
expedition_info: List[str] = []
|
||||
for expedition in dailydata['expeditions']:
|
||||
avatar: str = expedition['avatar_side_icon'][89:-4]
|
||||
try:
|
||||
@ -528,7 +530,7 @@ async def mihoyo_coin(qid, s_cookies=None):
|
||||
s_cookies = await get_stoken(uid)
|
||||
|
||||
if s_cookies:
|
||||
get_coin = coin.mihoyobbs_coin(s_cookies)
|
||||
get_coin = coin.MihoyoBBSCoin(s_cookies)
|
||||
im = await get_coin.task_run()
|
||||
else:
|
||||
im = "你还没有绑定Stoken~"
|
||||
|
Loading…
x
Reference in New Issue
Block a user