Skip to content
Advertisement

The bot gives an error when using the “with” operator

i’ve come across this error. Found on the Internet based on discord.py code to create YouTube alerts on the server. When starting the bot, the system encounters a syntax error and points to the “with” operator. Previously, this operator has already been used in the code and did not give errors. Please help those who know. Screenshot: https://imgur.com/L3yroea Code:

async def newvideo(): #система оповещений ютуб
    with open("youtubeuser.json", "r") as f:
        data=json.load(f)

    print(" All systems online. Searching new vids...")

    for youtube_channel in data:

        channel = f"https://www.youtube.com/channel/{youtube_channel}"

        html = requests.get(channel+"/videos").text

        try:
            latest_video_url = f"https://www.youtube.com/watch?v=" + re.search('(?<="videoId":").*?(?=")', html).group() #!Разобраться в смысле этого кода

        except:
            continue 
        #это типо как if else, только круче!

        if not str(data[youtube_channel]["latest_video_url"]) == latest_video_url:

            data[str [youtube_channel]['latest_video_url'] == latest_video_url

                with open("youtubeuser.json", "w") as f:
                    json.dump(data, f)

            discord_channel_id = data[str(youtube_channel)]['notifying_discord_channel']
            discord_channel = bot.get_channel(int(discord_channel_id))

            msg = f"Хэй! На канале {data[str(youtube_channel)]['channel_name']} происходит какой-то движ! Наши системы уловили что-то интересное. Бегом смотреть! n"
            "{latest_video_url}"

            await discord_channel.send(msg)```

Advertisement

Answer

The actual error is on the line before the with statement:

        data[str [youtube_channel]['latest_video_url'] == latest_video_url

This has unbalanced brackets, and generally doesn’t make any sense. Fix that error and the with statement will work just fine.

User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement