增加CICD

This commit is contained in:
work
2025-04-27 16:19:10 +08:00
parent bb3dd0ca4a
commit 4ad1eed171
5 changed files with 117 additions and 55 deletions

58
.gitea/workflows/cd.yaml Normal file
View File

@@ -0,0 +1,58 @@
name: Update Code
on:
push:
branches:
- master
env:
DESTINATION: C:\Facebook
REPOSITORY_URL: http://deploy:123qwe123@123.58.209.87:3000/py_facebook/py_facebook.git
jobs:
CD:
runs-on: ${{ matrix.machine }}
defaults:
run:
shell: powershell
strategy:
matrix:
machine:
- windows-101.36.102.136
steps:
- name: 更新或clone项目
shell: powershell
run: |
if (-not (Test-Path -Path $env:DESTINATION\.git)) {
# 目录不存在,执行 git clone
git clone $env:REPOSITORY_URL $env:DESTINATION
}
else {
# 目录存在,执行 git pull
Set-Location $env:DESTINATION
git pull
}
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.10"
- name: Install dependencies
run: |
Set-Location $env:DESTINATION
"${{ matrix.machine }}" | Set-Content -Path "ip.txt" -Encoding UTF8
python -m pip install --upgrade pip
pip install -r requirements.txt
python -m playwright install
python -m playwright install-deps
# python -m playwright install msedge
- name: Stop previous service
run: |
try {
Stop-Process -Name "python" -Force -ErrorAction SilentlyContinue
} catch {}
- name: PIP LIST
run: pip list
- name: Start FastAPI server
timeout-minutes: 3 # 设定超时时间为 3 分钟
run: |
Set-Location $env:DESTINATION
Start-Process -WindowStyle hidden -FilePath python .\main.py

View File

@@ -19,7 +19,7 @@ ELEMENT = {
ENDPOINT = "154.19.186.49" ENDPOINT = "154.19.186.49"
ACCESS_KEY = '3QcjsqdCYCoy1khuDqia' ACCESS_KEY = '3QcjsqdCYCoy1khuDqia'
SECRET_KEY = 'iPXte32y1deoySiDq0RwONUJIiIgvjTVhbfCL8tV' SECRET_KEY = 'iPXte32y1deoySiDq0RwONUJIiIgvjTVhbfCL8tV'
BUCKET = 'test' BUCKET = 'facebook'
# DOVE PROXY # DOVE PROXY
DOVE_USER = 'fetdog' DOVE_USER = 'fetdog'

View File

@@ -12,7 +12,7 @@ TASK_TYPE = {
'login_account': playwright_login 'login_account': playwright_login
} }
HOST = "http://192.168.1.69:8001" HOST = "http://118.193.40.152:8002"
def get_task(): def get_task():

Binary file not shown.

View File

@@ -1,19 +1,24 @@
import io import io
import json
import os
import random
import sys
import threading
import time import time
import uuid import uuid
import json
import random
import requests
import threading
import sys
import os
import pyotp import pyotp
from const import MIMETYPE, BUCKET, PIC_TYPE, BASE_PATH, api_url import pywintypes
from miniofile import client, put_object import requests
from exceptions import AuthException, OperationFailed import win32api
from playwright.sync_api import sync_playwright, Error, TimeoutError import win32con
from PIL import ImageGrab from PIL import ImageGrab
from lxml import html from playwright.sync_api import sync_playwright, Error, TimeoutError
from const import BUCKET, BASE_PATH
from exceptions import AuthException, OperationFailed
from logger import error_logger
from miniofile import client, put_object
# def get_dtsg_token(cookies): # def get_dtsg_token(cookies):
@@ -720,10 +725,6 @@ def _full_screenshot():
def update_windows_distinguish(x=1920, y=1080): def update_windows_distinguish(x=1920, y=1080):
"""更改windows分辨率""" """更改windows分辨率"""
if sys.platform == "win32": if sys.platform == "win32":
import win32api
import win32con
import pywintypes
devmode = pywintypes.DEVMODEType() devmode = pywintypes.DEVMODEType()
# screenSize = [1280,800] # screenSize = [1280,800]
@@ -782,9 +783,12 @@ def parse_cookies(cookies):
def check_account_status(page, cookies): def check_account_status(page, cookies):
try: # 检查是否失效
_change_language(page) error_logger.info(f"page Title == {page.title()}")
except TimeoutError: if page.title() != "Facebook":
raise AuthException('该账号状态已失效', 'invalid')
# 检查是否冻结
headers = { headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
@@ -814,7 +818,9 @@ def check_account_status(page, cookies):
if response.status_code == 302: if response.status_code == 302:
if response.headers.get('Location') == 'https://static.xx.fbcdn.net/rsrc.php/v1/yh/r/C5yt7Cqf3zU.jpg': if response.headers.get('Location') == 'https://static.xx.fbcdn.net/rsrc.php/v1/yh/r/C5yt7Cqf3zU.jpg':
raise AuthException('该账号已被冻结', 'frozen') raise AuthException('该账号已被冻结', 'frozen')
else: try:
_change_language(page)
except TimeoutError:
raise OperationFailed('操作超时或该账户异常,请重试') raise OperationFailed('操作超时或该账户异常,请重试')
@@ -1120,9 +1126,7 @@ def playwright_check_account_cookies(cookies):
page = context.new_page() page = context.new_page()
url = 'https://www.facebook.com' url = 'https://www.facebook.com'
page.goto(url) page.goto(url)
time.sleep(1) time.sleep(3)
page.goto(url)
time.sleep(10)
check_account_status(page, parse_cookies(cookies)) check_account_status(page, parse_cookies(cookies))
context.close() context.close()
browser.close() browser.close()
@@ -1254,8 +1258,8 @@ if __name__ == '__main__':
# # lastname='Keals', # # lastname='Keals',
# # image_key='rg.jpg' # # image_key='rg.jpg'
# ) # )
# cookies = '{"datr": "AywLaEqnpuloEMFZFDsT2M_n", "sb": "AywLaHIpk4AHGJP1Fd9c9QFY", "locale": "en_US", "wd": "1920x945", "c_user": "61575694132528", "fr": "0uwYJ79B5B5QtHQlb.AWfITZg5T5P_nadNOxtrCjnArAa3M3q_nhI96McABALXYwpB55A.BoCywD..AAA.0.0.BoCywS.AWdWYvZYad3s8s25sh3-a_oZsxU", "xs": "12%3AJmqcjLatZzjPoQ%3A2%3A1745562643%3A-1%3A-1"}' cookies = '{"c_user":"61565823476070","datr":"q13hZowje6bbViFxECQpYyp8","fr":"01C6Lt4VArm5hELvx.AWXg75HOo-QNJgbiDl8qFtw_5lc.Bm4V2r..AAA.0.0.Bm4V25.AWWHzUeMTuI","m_pixel_ratio":"1.875","sb":"q13hZgJARsRIDmNJG8xUauAe","wd":"384x686","xs":"50%3A8luhgQ-Ea0vnhg%3A2%3A1726045627%3A-1%3A-1"}'
# playwright_check_account_cookies(cookies) playwright_check_account_cookies(cookies)
cookies = playwright_login('61575694132528', '@Badhon@20', 'LK3UVPADNOEGWIWPBAWWVGDPCMJOZN7M') # cookies = playwright_login('61575694132528', '@Badhon@20', 'LK3UVPADNOEGWIWPBAWWVGDPCMJOZN7M')
print(cookies) # print(cookies)
pass pass