mirror of
https://github.com/Nick80835/microbot
synced 2025-08-23 10:38:51 +00:00
improve 4chan stability
This commit is contained in:
parent
4fffbfac8b
commit
cb0a91f6bd
@ -15,13 +15,14 @@ async def fourchan(event):
|
|||||||
await event.reply(f"Syntax: {ldr.prefix()}4c(f|) <board name>")
|
await event.reply(f"Syntax: {ldr.prefix()}4c(f|) <board name>")
|
||||||
return
|
return
|
||||||
|
|
||||||
if event.nsfw_disabled and event.args in NSFW_BOARDS:
|
board = event.args.lower()
|
||||||
|
as_file = bool(event.other_args[0])
|
||||||
|
|
||||||
|
if event.nsfw_disabled and board in NSFW_BOARDS:
|
||||||
await event.reply("Sorry, that board is NSFW and NSFW commands are disabled!")
|
await event.reply("Sorry, that board is NSFW and NSFW commands are disabled!")
|
||||||
return
|
return
|
||||||
|
|
||||||
as_file = bool(event.other_args[0])
|
async with ldr.aioclient.get(BOARD_URL.format(board)) as response:
|
||||||
|
|
||||||
async with ldr.aioclient.get(BOARD_URL.format(event.args)) as response:
|
|
||||||
if response.status == 200:
|
if response.status == 200:
|
||||||
board_response = await response.json()
|
board_response = await response.json()
|
||||||
op_id = choice(choice(board_response)["threads"])["no"]
|
op_id = choice(choice(board_response)["threads"])["no"]
|
||||||
@ -29,17 +30,23 @@ async def fourchan(event):
|
|||||||
await event.reply(f"An error occurred, response code: **{response.status}**")
|
await event.reply(f"An error occurred, response code: **{response.status}**")
|
||||||
return
|
return
|
||||||
|
|
||||||
async with ldr.aioclient.get(POST_URL.format(event.args, op_id)) as response:
|
async with ldr.aioclient.get(POST_URL.format(board, op_id)) as response:
|
||||||
if response.status == 200:
|
if response.status == 200:
|
||||||
post_response = await response.json()
|
post_response = await response.json()
|
||||||
post_info = choice([[i["tim"], i["ext"], i["com"] if "com" in i else None] for i in post_response["posts"] if "tim" in i and i["ext"] in VALID_ENDS])
|
post_info_list = [[i["tim"], i["ext"], i["com"] if "com" in i else None] for i in post_response["posts"] if "tim" in i and i["ext"] in VALID_ENDS]
|
||||||
post_file_url = CONTENT_URL.format(event.args, post_info[0], post_info[1])
|
|
||||||
|
if not post_info_list:
|
||||||
|
await event.reply(f"No results for board: **{board}**")
|
||||||
|
return
|
||||||
|
|
||||||
|
post_info = choice(post_info_list)
|
||||||
|
post_file_url = CONTENT_URL.format(board, post_info[0], post_info[1])
|
||||||
else:
|
else:
|
||||||
await event.reply(f"An error occurred, response code: **{response.status}**")
|
await event.reply(f"An error occurred, response code: **{response.status}**")
|
||||||
return
|
return
|
||||||
|
|
||||||
if not response:
|
if not response:
|
||||||
await event.reply(f"No results for board: **{event.args}**")
|
await event.reply(f"No results for board: **{board}**")
|
||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -48,7 +55,7 @@ async def fourchan(event):
|
|||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
await event.reply(f"Failed to fetch media for board: **{event.args}**")
|
await event.reply(f"Failed to fetch media for board: **{board}**")
|
||||||
|
|
||||||
|
|
||||||
@ldr.add_inline_photo("4c", default="4c")
|
@ldr.add_inline_photo("4c", default="4c")
|
||||||
@ -56,7 +63,9 @@ async def fourchan_inline(event):
|
|||||||
if not event.args:
|
if not event.args:
|
||||||
return
|
return
|
||||||
|
|
||||||
async with ldr.aioclient.get(BOARD_URL.format(event.args)) as response:
|
board = event.args.lower()
|
||||||
|
|
||||||
|
async with ldr.aioclient.get(BOARD_URL.format(board)) as response:
|
||||||
if response.status == 200:
|
if response.status == 200:
|
||||||
board_response = await response.json()
|
board_response = await response.json()
|
||||||
op_id = choice(choice(board_response)["threads"])["no"]
|
op_id = choice(choice(board_response)["threads"])["no"]
|
||||||
@ -65,14 +74,18 @@ async def fourchan_inline(event):
|
|||||||
|
|
||||||
post_file_url_list = []
|
post_file_url_list = []
|
||||||
|
|
||||||
async with ldr.aioclient.get(POST_URL.format(event.args, op_id)) as response:
|
async with ldr.aioclient.get(POST_URL.format(board, op_id)) as response:
|
||||||
if response.status == 200:
|
if response.status == 200:
|
||||||
post_response = await response.json()
|
post_response = await response.json()
|
||||||
post_info_list = [[i["tim"], i["ext"], i["com"] if "com" in i else None] for i in post_response["posts"] if "tim" in i and i["ext"] in VALID_ENDS]
|
post_info_list = [[i["tim"], i["ext"], i["com"] if "com" in i else None] for i in post_response["posts"] if "tim" in i and i["ext"] in VALID_ENDS]
|
||||||
|
|
||||||
|
if not post_info_list:
|
||||||
|
return
|
||||||
|
|
||||||
shuffle(post_info_list)
|
shuffle(post_info_list)
|
||||||
|
|
||||||
for post_info in post_info_list[:3]:
|
for post_info in post_info_list[:3]:
|
||||||
post_file_url_list += [CONTENT_URL.format(event.args, post_info[0], post_info[1])]
|
post_file_url_list += [CONTENT_URL.format(board, post_info[0], post_info[1])]
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user