zhenxun_bot/plugins/epic/data_source.py

47 lines
1.6 KiB
Python
Raw Normal View History

2021-05-20 17:06:54 +08:00
import aiohttp
import aiofiles
from util.utils import get_local_proxy
import feedparser
import platform
from util.init_result import image
from configs.path_config import IMAGE_PATH
from util.user_agent import get_user_agent
if platform.system() == 'Windows':
import asyncio
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
url = 'https://rsshub.app/epicgames/freegames'
async def get_epic_game() -> str:
result = ''
async with aiohttp.ClientSession(headers=get_user_agent()) as session:
async with session.get(url, proxy=get_local_proxy(), timeout=7) as response:
data = feedparser.parse(await response.text())['entries']
if len(data) == 0:
return result
index = 0
for item in data:
title = item['title']
img_url = item['summary'][item['summary'].find('src="')+5: item['summary'].rfind('"')]
async with session.get(img_url, proxy=get_local_proxy(), timeout=7) as res:
async with aiofiles.open(IMAGE_PATH + f'temp/epic_{index}.jpg', 'wb') as f:
await f.write(await res.read())
link = item['link']
result += image(f'epic_{index}.jpg', 'temp') + f'\n【游戏】| {title}\n【链接】 | {link}\n'
index += 1
if result != '':
result = 'epic限免游戏速速白嫖\n' + result
else:
result = '今天没有游戏可以白嫖了!'
print(result)
return result
# print(asyncio.get_event_loop().run_until_complete(get_epic_game()))