Diving-Fish / maimaidx-prober

舞萌 DX 查分器
https://www.diving-fish.com/maimaidx/prober
MIT License
681 stars 52 forks source link

New way to update records. A new maimai account is required. #96

Open Dreamail opened 1 year ago

Dreamail commented 1 year ago

Here is my new project: https://github.com/Dreamail/maimai-prober-qbot-updater

Thanks to bakapiano's works, which inspired me. It uses friendVS api to get play records. So if you want to deploy a bot, you need a new maimai account (it's a WeChat account at the same time) But different from bakapiano's updater, is uses QQ to interact with user. Pretty convenient right?

Due to WAF, I will not provide a bot for you. Those who want to use this project need to do it yourself. But documents are on the way 😁 and if you have free time, welcome to open prs.

Amia33 commented 1 year ago

EDIT: I got diarrhea and reviewed this issue in the washing room. If the reply is unrelated, I'll fix it later, please wait for a moment.

Maybe just use deployer's own wechat account? I think we can implement the bot to automatically push deployer's play data to his/her own qq account. (since qq has the feature to send message to oneself) (and getting qrcode to play is independent to visiting the home page etc.)

Dreamail commented 1 year ago

Yes, it only require deployer's WeChat. Maybe it's my poor English that make you misunderstanded.

My design is that users can send update request to QQ bot and the bot will update their records.

Amia33 commented 1 year ago

Yes, it only require deployer's WeChat. Maybe it's my poor English that make you misunderstanded.

My design is that users can send update request to QQ bot and the bot will update their records.

Sorry for misunderstanding Damn it I ate some leftover food and kept going to the washing rom >_<

Reviewed code and it seems fine. Maybe you can put some time-duration test results in README, for better evaluation through update methods.

Question: It seems that the bot will keep friend status (not favorite), however maimai-home has a 100 users' upper limit. I think we should make some captcha-like authorization by forcing user to approve friend request every time (not typing the invitation code). This will also prevent abuse.

Another workaround is to use multiple wechat accounts (since maimai-home doesn't support wechat's multi-profile feature), but this will definitely break TOS, so don't do that. (logging in using same IP)

Dreamail commented 1 year ago

I do know it has maximum friend limit. But I don't remove friend after updating records because I intend to use this bot in a local maimai community. So it doesn't matter. And allowing friend request before every updation is a bit unconvinced. At the same time, public bot is easier to be banned than private one.

Dreamail commented 1 year ago

Since I don't have other WeChat account, multi-account can't be tested. And I found that maimai-home's ban seems to relay on IP address, when I posted too much API request and my personal account was banned. But it doesn't make the token (which is cookie "_t" and "userId" ) expired.

Amia33 commented 1 year ago

I do know it has maximum friend limit. But I don't remove friend after updating records because I intend to use this bot in a local maimai community. So it doesn't matter. And allowing friend request before every updation is a bit unconvinced. At the same time, public bot is easier to be banned than private one.

Oh... Then it's fine as a private bot.

Since I don't have other WeChat account, multi-account can't be tested. And I found that maimai-home's ban seems to relay on IP address, when I posted too much API request and my personal account was banned. But it doesn't make the token (which is cookie "_t" and "userId" ) expired.

maimai-home has a throttle mechanism, basically when you push request using more than 1 thread, it will return error and you will need to revisit home page. So update command should keep single-threaded.

Dreamail commented 1 year ago

maimai-home has a throttle mechanism, basically when you push request using more than 1 thread, it will return error and you will need to revisit home page.\nSo update command should keep single-threaded.

No it doesn't. I have tried that I send 10 getfriendvs request at the same time, and redo it. The token was banned after 63 times.

Dreamail commented 1 year ago

Btw you should open an issue on my repo.

Amia33 commented 1 year ago

maimai-home has a throttle mechanism, basically when you push request using more than 1 thread, it will return error and you will need to revisit home page.\nSo update command should keep single-threaded.

No it doesn't. I have tried that I send 10 getfriendvs request at the same time, and redo it. The token was banned after 63 times.

Btw you should open an issue on my repo.

Let me take some tests and get data, after that I'll open issue in your repo.

Dreamail commented 1 year ago

But you didn't star my repo hhh

Amia33 commented 1 year ago

But you didn't star my repo hhh

Because I don't use this account often (my company uses Bitbucket / Jira) orz.