Compare commits
No commits in common. "ab4ba9b75c696b2ab66ecd3a9d2a5e3f0811cb01" and "7b7d41d279851fe4816e4a0721913002a481057f" have entirely different histories.
ab4ba9b75c
...
7b7d41d279
81
mas2ff2.py
81
mas2ff2.py
@ -7,7 +7,6 @@ from datetime import datetime
|
||||
from loguru import logger
|
||||
import os
|
||||
import sentry_sdk
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
sentry_sdk.init(
|
||||
dsn="https://c42de79f364a12228f184bc54fec4dfd@o4506942768021504.ingest.us.sentry.io/4506982441615360",
|
||||
@ -16,9 +15,6 @@ sentry_sdk.init(
|
||||
# cookie = "u=%7EBVoC1S9tgw4; uuid=24edfe42401cbb03cf1f.1676446846.20; PHPSESSID=4ev7ef0f9cim18lrest8l52kn6; m=looo.ching%40gmail.com; tgw_l7_route=f174d6f255742a6ee2e9a07cf9cca0fa"
|
||||
# token = "9927e23b"
|
||||
logger.add('/root/develop/log/mas2ff-hegui.log', level='INFO')
|
||||
|
||||
file_path = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
def post_fanfou(cookie, token, fanfou_status, images=None):
|
||||
if not images:
|
||||
images = []
|
||||
@ -60,10 +56,9 @@ def post_fanfou(cookie, token, fanfou_status, images=None):
|
||||
response.status_code))
|
||||
if not '你在做什么?' in response.text:
|
||||
logger.error('Post %s maybe failed', fanfou_status)
|
||||
raise requests.exceptions.RequestException
|
||||
except requests.exceptions.RequestException:
|
||||
logger.error('Post %s failed', fanfou_status)
|
||||
raise requests.exceptions.RequestException
|
||||
|
||||
else:
|
||||
# post with images
|
||||
image_urls = [media['url'] for media in images if media['type'] == 'image']
|
||||
@ -99,16 +94,15 @@ def post_fanfou(cookie, token, fanfou_status, images=None):
|
||||
status = fanfou_status + ' ' + image_count % (x+1)
|
||||
if image_resp.status_code == 200:
|
||||
# 创建一个临时文件
|
||||
temp_file = file_path + '/temp.jpg'
|
||||
with open(temp_file, 'wb') as file:
|
||||
with open('temp.jpg', 'wb') as file:
|
||||
file.write(response.content)
|
||||
|
||||
# 确保文件存在
|
||||
if os.path.exists(temp_file):
|
||||
with open(temp_file, 'rb') as file:
|
||||
if os.path.exists('temp.jpg'):
|
||||
with open('temp.jpg', 'rb') as file:
|
||||
# 以下是您的multipart/form-data请求部分
|
||||
files = {
|
||||
'picture': (temp_file, file, 'image/jpeg') # 注意这里仍然需要指定MIME类型
|
||||
'picture': ('temp.jpg', file, 'image/jpeg') # 注意这里仍然需要指定MIME类型
|
||||
}
|
||||
data = {
|
||||
'desc': status,
|
||||
@ -126,7 +120,6 @@ def post_fanfou(cookie, token, fanfou_status, images=None):
|
||||
response.status_code))
|
||||
except requests.exceptions.RequestException:
|
||||
logger.error('Post %s failed', status)
|
||||
sentry_sdk.capture_exception(requests.exceptions.RequestException)
|
||||
except:
|
||||
continue
|
||||
|
||||
@ -141,8 +134,7 @@ def run(instance, access_token, fanfou_cookie, fanfou_token):
|
||||
# first time run
|
||||
posted_ids = []
|
||||
# if file not exist, create it
|
||||
last_id_file = file_path + '/last_id.txt'
|
||||
with open(last_id_file, 'r') as f:
|
||||
with open('last_id.txt', 'r') as f:
|
||||
# read lines
|
||||
posted_ids = f.readlines()
|
||||
# remove \n
|
||||
@ -167,7 +159,7 @@ def run(instance, access_token, fanfou_cookie, fanfou_token):
|
||||
content = re.sub('<.*?>', '', content)
|
||||
logger.info(status['id'] + ' ' + content)
|
||||
post_fanfou(fanfou_cookie, fanfou_token, content, status['media_attachments'])
|
||||
with open(last_id_file, 'a') as f:
|
||||
with open('last_id.txt', 'a') as f:
|
||||
f.write(str(status['id']) + '\n')
|
||||
posted_ids.append(status['id'])
|
||||
logger.info('write toot %s', status['content'])
|
||||
@ -177,69 +169,14 @@ def run(instance, access_token, fanfou_cookie, fanfou_token):
|
||||
min_id = statuses[-1]['id']
|
||||
else:
|
||||
if min_id:
|
||||
with open(last_id_file, 'a') as f:
|
||||
with open('last_id.txt', 'a') as f:
|
||||
f.write(str(min_id) + '\n')
|
||||
min_id = None
|
||||
|
||||
def login_to_fanfou(email, password):
|
||||
url = 'https://m.fanfou.com/home'
|
||||
resp = requests.get(url)
|
||||
soup = BeautifulSoup(resp.text, 'html.parser')
|
||||
try:
|
||||
token = soup.find('input', {'name': 'token'}).get('value')
|
||||
except:
|
||||
token = None
|
||||
if not token:
|
||||
logger.error('Get token failed')
|
||||
return False
|
||||
data = {
|
||||
"loginname": email,
|
||||
"loginpass": password,
|
||||
"auto_login": "on",
|
||||
"action": "login",
|
||||
"token": token,
|
||||
}
|
||||
headers = {
|
||||
"Content-Type": "application/x-www-form-urlencoded",
|
||||
"Origin": "https://m.fanfou.com",
|
||||
"Referer": "https://m.fanfou.com/home",
|
||||
"Sec-Fetch-Dest": "document",
|
||||
"Sec-Fetch-Mode": "navigate",
|
||||
"Sec-Fetch-Site": "same-origin",
|
||||
"Sec-Fetch-User": "?1",
|
||||
"Upgrade-Insecure-Requests": "1",
|
||||
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
|
||||
}
|
||||
resp = requests.post(url, data=data, headers=headers)
|
||||
soup = BeautifulSoup(resp.text, 'html.parser')
|
||||
if not '你在做什么?' in soup.text:
|
||||
return False
|
||||
cookie = resp.headers['Set-Cookie']
|
||||
token = None
|
||||
if soup.find('input', {'name': 'token'}):
|
||||
token = soup.find('input', {'name': 'token'}).get('value')
|
||||
|
||||
with open(file_path + '/cookie.txt', 'w') as f:
|
||||
f.write(cookie)
|
||||
with open(file_path + '/token.txt', 'w') as f:
|
||||
f.write(token)
|
||||
return cookie, token
|
||||
|
||||
if __name__ == '__main__':
|
||||
cookie = 'u=stokesia; uuid=24edfe42401cbb03cf1f.1676446846.21; PHPSESSID=d4l9m3tp09gasff6r3u8mv9p12; m=yvettezhong%40gmail.com; tgw_l7_route=f174d6f255742a6ee2e9a07cf9cca0fa'
|
||||
token = '742ac481'
|
||||
with open(file_path + '/cookie.txt', 'r') as f:
|
||||
cookie = f.read()
|
||||
with open(file_path + '/token.txt', 'r') as f:
|
||||
token = f.read()
|
||||
m_ins = 'https://nofan.xyz'
|
||||
m_token = 'C5zKq2Mf54E7gaSDe47Bds080ySpsdvaykZBAtt5jvo'
|
||||
email = ''
|
||||
password = ''
|
||||
try:
|
||||
run(m_ins, m_token, cookie, token)
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
sentry_sdk.capture_exception(e)
|
||||
login_to_fanfou(email, password)
|
||||
run(m_ins, m_token, cookie, token)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user