Compare commits

..

2 Commits

Author SHA1 Message Date
Ching
bcbc299167 refactor: 保存每次请求到的最新消息 id 2024-03-26 18:05:26 +08:00
Ching
02a51c6bef refactor: 修改获取新消息逻辑 2024-03-26 17:52:59 +08:00

View File

@ -126,37 +126,16 @@ def run(instance, access_token, fanfou_cookie, fanfou_token):
me_id = me_info['id'] me_id = me_info['id']
me_timeline = mastodon_cli.account_statuses( me_timeline = mastodon_cli.account_statuses(
me_id, exclude_replies=True) me_id, exclude_replies=True)
min_id = None
max_id = None
# first time run # first time run
# init min_id
for status in me_timeline:
if not status['reblog'] and status['visibility'] == 'public':
min_id = status['id']
logger.info(status['content'])
break
# if is in already posted status
posted_ids = [] posted_ids = []
# if file not exist, create it # if file not exist, create it
with open('last_id.txt', 'a+') as f: with open('last_id.txt', 'r') as f:
f.seek(0)
# read lines # read lines
posted_ids = f.readlines() posted_ids = f.readlines()
# remove \n # remove \n
posted_ids = [x.strip() for x in posted_ids] posted_ids = [x.strip() for x in posted_ids]
#print(posted_ids)
if str(min_id) not in posted_ids:
content = status['content'].replace('<br />', '\n')
content = re.sub('<.*?>', '', content)
post_fanfou(fanfou_cookie, fanfou_token, content, status['media_attachments'])
# write to file
with open('last_id.txt', 'a') as f:
f.write(str(min_id) + '\n')
posted_ids.append(min_id)
logger.info('write toot')
time.sleep(10)
min_id = posted_ids[-1] if posted_ids else None
# get every new status # get every new status
while min_id: while min_id:
me_timeline = mastodon_cli.account_statuses( me_timeline = mastodon_cli.account_statuses(
@ -184,6 +163,9 @@ def run(instance, access_token, fanfou_cookie, fanfou_token):
if statuses: if statuses:
min_id = statuses[-1]['id'] min_id = statuses[-1]['id']
else: else:
if min_id:
with open('last_id.txt', 'a') as f:
f.write(str(min_id) + '\n')
min_id = None min_id = None
if __name__ == '__main__': if __name__ == '__main__':