add travel code notify

This commit is contained in:
2024-03-31 18:15:17 +08:00
parent 78215fca70
commit bfcbd72a10
4 changed files with 54 additions and 13 deletions

View File

@@ -2,10 +2,14 @@ from aiosmtpd.controller import Controller
import quopri
from loguru import logger
import re
from clicker import Clicker
from browser import PrimaryLocationClicker, TravelVerificationClicker
import asyncio
from line_notifier import LineNotifier
URL_PATTERN = re.compile(b'"(https://www.netflix.com/account/update-primary-location.*?)"', re.DOTALL)
VERIFY_URL_PATTERN = re.compile(b'"(https://www.netflix.com/account/travel/verify.*?)"', re.DOTALL)
notifier = LineNotifier()
class NetflixHandler:
@@ -23,13 +27,19 @@ class NetflixHandler:
envelope.content.decode('utf8', errors='replace')
)
if urls := URL_PATTERN.findall(data):
with Clicker() as browser:
with PrimaryLocationClicker() as browser:
url = urls[0]
logger.info(f'Found Update link: {url}')
try:
browser.click(url.decode())
except Exception as e:
logger.error(e)
elif urls := VERIFY_URL_PATTERN.findall(data):
with TravelVerificationClicker() as browser:
url = urls[0]
logger.info(f'Found Travel Verification link: {url}')
code = browser.get_code(url)
notifier.notify(f'代碼為 {code}')
elif 'google' in envelope.mail_from:
logger.info(data)