|
@@ -0,0 +1,90 @@
|
|
|
|
|
+import time
|
|
|
|
|
+import aiohttp
|
|
|
|
|
+import asyncio
|
|
|
|
|
+import json
|
|
|
|
|
+from fake_useragent import UserAgent
|
|
|
|
|
+from utils.utils_send_gotify import *
|
|
|
|
|
+
|
|
|
|
|
+goto_url = 'https://app.getgrass.io/'
|
|
|
|
|
+
|
|
|
|
|
+account_list = [
|
|
|
|
|
+ 'jack0210_@hotmail.com:aaaAAA111!!!',
|
|
|
|
|
+ 'yujiec0210@gmail.com:aaaAAA111!!!',
|
|
|
|
|
+ 'yujieccyj01@hotmail.com:aaaAAA111!!!',
|
|
|
|
|
+ 'yujieccyj02@hotmail.com:aaaAAA111!!!',
|
|
|
|
|
+ 'yujieccyj03@hotmail.com:aaaAAA111!!!',
|
|
|
|
|
+ 'yujieccyj04@hotmail.com:aaaAAA111!!!',
|
|
|
|
|
+ 'yujieccyj05@hotmail.com:aaaAAA111!!!',
|
|
|
|
|
+ 'yujieccyj06@hotmail.com:aaaAAA111!!!',
|
|
|
|
|
+ 'yujieccyj07@hotmail.com:aaaAAA111!!!',
|
|
|
|
|
+ 'yujieccyj08@hotmail.com:aaaAAA111!!!',
|
|
|
|
|
+ 'yujieccyj09@hotmail.com:aaaAAA111!!!',
|
|
|
|
|
+ 'yujieccyj10@hotmail.com:aaaAAA111!!!',
|
|
|
|
|
+ 'yujieccyj11@hotmail.com:aaaAAA111!!!'
|
|
|
|
|
+]
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+class LoginClient:
|
|
|
|
|
+ def __init__(self, email, password, user_agent):
|
|
|
|
|
+ self.email = email
|
|
|
|
|
+ self.password = password
|
|
|
|
|
+ self.user_agent = user_agent
|
|
|
|
|
+ self.website_headers = {
|
|
|
|
|
+ 'authority': 'api.getgrass.io',
|
|
|
|
|
+ 'accept': 'application/json, text/plain, */*',
|
|
|
|
|
+ 'accept-language': 'uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7',
|
|
|
|
|
+ 'content-type': 'application/json',
|
|
|
|
|
+ 'origin': 'https://app.getgrass.io',
|
|
|
|
|
+ 'referer': 'https://app.getgrass.io/',
|
|
|
|
|
+ 'sec-ch-ua': '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',
|
|
|
|
|
+ 'sec-ch-ua-mobile': '?0',
|
|
|
|
|
+ 'sec-ch-ua-platform': '"Windows"',
|
|
|
|
|
+ 'sec-fetch-dest': 'empty',
|
|
|
|
|
+ 'sec-fetch-mode': 'cors',
|
|
|
|
|
+ 'sec-fetch-site': 'same-site',
|
|
|
|
|
+ 'user-agent': self.user_agent,
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ async def login(self, session):
|
|
|
|
|
+ url = 'https://api.getgrass.io/login'
|
|
|
|
|
+
|
|
|
|
|
+ json_data = {
|
|
|
|
|
+ 'password': self.password,
|
|
|
|
|
+ 'username': self.email,
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ try:
|
|
|
|
|
+ response = await session.post(url, headers=self.website_headers, data=json.dumps(json_data))
|
|
|
|
|
+ response_text = await response.text()
|
|
|
|
|
+ if response.status != 200:
|
|
|
|
|
+ print(f"Login failed: {response_text}")
|
|
|
|
|
+ return None
|
|
|
|
|
+ return await response.json()
|
|
|
|
|
+ except aiohttp.ClientConnectionError as e:
|
|
|
|
|
+ print(f"Connection error occurred: {e}")
|
|
|
|
|
+ return None
|
|
|
|
|
+ except Exception as e:
|
|
|
|
|
+ print(f"An error occurred: {e}")
|
|
|
|
|
+ return None
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+if __name__ == "__main__":
|
|
|
|
|
+ async def main():
|
|
|
|
|
+ async with aiohttp.ClientSession() as session:
|
|
|
|
|
+ for account in account_list:
|
|
|
|
|
+ email = account.split(':')[0]
|
|
|
|
|
+ password = account.split(':')[1]
|
|
|
|
|
+ user_agent = UserAgent().random
|
|
|
|
|
+
|
|
|
|
|
+ client = LoginClient(email, password, user_agent)
|
|
|
|
|
+ login_result = await client.login(session)
|
|
|
|
|
+ if login_result:
|
|
|
|
|
+ email = login_result['result']['data']['email']
|
|
|
|
|
+ user_id = login_result['result']['data']['userId']
|
|
|
|
|
+ print(f'account: {email}\nuser_id: {user_id}')
|
|
|
|
|
+
|
|
|
|
|
+ else:
|
|
|
|
|
+ print("Login failed.")
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ asyncio.run(main())
|