我有一个以内联模式发送星座的机器人代码:

import re
from aiogram.types import InputTextMessageContent, InlineQuery, InlineQueryResultArt,python,telegram-bot"/>
	














首页 > 解决方案 > 未来从未检索到任务异常:

我有一个以内联模式发送星座的机器人代码:

import re
from aiogram.types import InputTextMessageContent, InlineQuery, InlineQueryResultArt

问题描述

我有一个以内联模式发送星座的机器人代码:

import re
from aiogram.types import InputTextMessageContent, InlineQuery, InlineQueryResultArticle
from aiogram.utils.emoji import emojize
from aiogram.utils.markdown import hbold

from groups.horo_parser import memory_of_horo
from loader import dp, bot
some_emoji = {
    'овен': 'aries',
    'телець': 'taurus',
    'близнюки': 'gemini',
    'рак': 'cancer',
    'лев': 'lion',
    'діва': 'virgo',
    'терези': 'libra',
    'скорпіон': 'scorpio',
    'стрілець': 'sagittarius',
    'козеріг': 'capricorn',
    'водолій': 'aquarius',
    'риби': 'pisces',
}
def parser():
    dict_of_site = memory_of_horo()
    return dict_of_site

@dp.inline_handler()
async def inline_echo(inline_query: InlineQuery):
    text = inline_query.query
    text = text.lower()
    pattern = re.compile(r"\w+")
    try:
        intermed_progress = re.match(pattern, text)
        some_var = intermed_progress.group()

    except AttributeError as ex:
        return

    dict_of_site = parser()
    result = str((await dict_of_site)[f'{some_var}'])
    result = result.replace("[", "")
    result = result.replace("]", "")
    result = result.replace("'", "")
    upper_text = text.upper()
    fin_res = hbold(upper_text)
    emojized = ''
    if some_var in some_emoji:
        emozi = some_emoji[f"{some_var}"]
        emojized = emojize(f":{emozi}:")
    ost_result = f"{fin_res}{emojized}\n{result}"
    input_content = InputTextMessageContent(ost_result)
    item = InlineQueryResultArticle(
        id=1,
        #??????
        title="Гороскоп на сьогодні",#horo for today
        input_message_content=input_content,
    )
    await bot.answer_inline_query(inline_query.id, results=[item], cache_time=300)

我也有 horo 的解析器

    import requests
from bs4 import BeautifulSoup

from loader import shreduler

horo_ukr = ["овен", "телець", "близнюки", "рак", "лев", "діва", "терези", "скорпіон", "стрілець", "козеріг",
            "водолій", "риби"]
horo = ['aries', 'taurus', 'gemini', 'cancer', 'lion', 'virgo', 'libra', 'scorpio', 'sagittarius', 'capricorn',
        'aquarius', 'pisces']


def horo_parser():
    dict_of_site = {}
    i = -1
    for items in horo:
        i += 1
        url = f'https://orakul.com/horoscope/astrologic/general/{items}/today.html'
        res = requests.get(url).text
        soup = BeautifulSoup(res, "lxml")
        page = soup.find('div', class_='horoBlock').find('p').text
        page = page.replace("\r", "")
        page = page.replace("\n", "")
        page = page.strip()
        dict_of_site[horo_ukr[i]] = [page]
    return dict_of_site

async def memory_of_horo():
    some_new_var = horo_parser()
    return some_new_var

def some_new_job():
    shreduler.add_job(memory_of_horo, 'cron', day_of_week="mon-sun", hour=1, minute=0)

问题是,当我想知道一个有很多字母的星座的星座时,我没有得到结果,并且在日志中我得到了我在标题中提到的错误。提前感谢您帮助解决问题!


我相信这与 Windows 中的路径长度限制有关。在 RMD 中渲染输出“内联”时,它似乎是通过 tmp 目录发生的,该目录会引发错误,因为它的父路径太长。但是,如果您只是更改选项以使输出在控制台中,而不是通过添加内联

editor_options: 
  chunk_output_type: console

在文档的顶部,它似乎为我修复了它。这也可以在从 RStudio 源窗格顶部的齿轮图标下拉的菜单中完成。

标签: pythontelegram-bot

解决方案


推荐阅读