```python
05-21 11:46:37 [TRACE] nonebot | Discord | API code: 200 response: b'[{"application_id":null,"avatar":"e0582bf64ecc58c529f16bf9f672943a","channel_id":"1180868274368548975","guild_id":"1171294052839333910","id":"111","name":"CoFH #thaumcraft-teasers","type":2,"user":{"id":"474564749217234954","username":"autuamn_end","avatar":"7a8c1eacb63acfd711543f86244e5572","discriminator":"0","public_flags":0,"flags":0,"banner":null,"accent_color":null,"global_name":"Autuamn End","avatar_decoration_data":null,"banner_color":null,"clan":null},"source_guild":{"id":"399037120930512897","icon":"e0582bf64ecc58c529f16bf9f672943a","name":"CoFH"},"source_channel":{"id":"1098341229491654827","name":"thaumcraft-teasers"}}]\n'
05-21 11:46:37 [ERROR] nonebot | Error when running WebSocketConnection hook. Running cancelled!
Traceback (most recent call last):
File "", line 17, in
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\__init__.py", line 334, in run
get_driver().run(*args, **kwargs)
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\drivers\none.py", line 56, in run
loop.run_until_complete(self._serve())
File "C:\Program Files\Python312\Lib\asyncio\base_events.py", line 651, in run_until_complete
self.run_forever()
File "C:\Program Files\Python312\Lib\asyncio\windows_events.py", line 321, in run_forever
super().run_forever()
File "C:\Program Files\Python312\Lib\asyncio\base_events.py", line 618, in run_forever
self._run_once()
File "C:\Program Files\Python312\Lib\asyncio\base_events.py", line 1951, in _run_once
handle._run()
File "C:\Program Files\Python312\Lib\asyncio\events.py", line 84, in _run
self._context.run(self._callback, *self._args)
> File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\internal\driver\abstract.py", line 156, in _run_hook
await asyncio.gather(*coros)
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\utils.py", line 249, in run_coro_with_catch
return await coro
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\dependencies\__init__.py", line 106, in __call__
return await cast(Callable[..., Awaitable[R]], self.call)(**values)
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\src\plugins\sync_message_to_discord\__init__.py", line 79, in get_webhook
list_list_webhook = await asyncio.gather(*task_get_webhook)
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\internal\adapter\bot.py", line 122, in call_api
raise exception
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\internal\adapter\bot.py", line 97, in call_api
result = await self.adapter._call_api(self, api, **data)
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\adapters\discord\adapter.py", line 455, in _call_api
return await api_handler(self, bot, **data)
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\adapters\discord\api\handle.py", line 2861, in _get_channel_webhooks
return type_validate_python(List[Webhook], await _request(adapter, bot, request))
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\compat.py", line 215, in type_validate_python
return TypeAdapter(type_).validate_python(data)
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\pydantic\type_adapter.py", line 260, in validate_python
return self.validator.validate_python(object, strict=strict, from_attributes=from_attributes, context=context)
pydantic_core._pydantic_core.ValidationError: 30 validation errors for list[Webhook]
1.source_guild.literal[]
Input should be [type=literal_error, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/literal_error
1.source_guild.Guild.splash
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.discovery_splash
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.owner_id
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.afk_channel_id
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.afk_timeout
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.verification_level
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.default_message_notifications
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.explicit_content_filter
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.roles
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.emojis
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.features
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.mfa_level
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.application_id
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.system_channel_id
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.system_channel_flags
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.rules_channel_id
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.max_presences
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.max_members
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.vanity_url_code
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.description
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.banner
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.premium_tier
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.premium_subscription_count
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.preferred_locale
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.public_updates_channel_id
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.nsfw_level
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.premium_progress_bar_enabled
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_channel.literal[]
Input should be [type=literal_error, input_value={'id': '10983412294916548...': 'thaumcraft-teasers'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/literal_error
1.source_channel.Channel.type
Field required [type=missing, input_value={'id': '10983412294916548...': 'thaumcraft-teasers'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
```
Webhook类中的
source_guild
和source_guild
并不是完整的Channel
和Guild
, 导致 pydantic 抛出 ValidationErrorExample Channel Follower Webhook
我收到的
log
```python 05-21 11:46:37 [TRACE] nonebot | Discord | API code: 200 response: b'[{"application_id":null,"avatar":"e0582bf64ecc58c529f16bf9f672943a","channel_id":"1180868274368548975","guild_id":"1171294052839333910","id":"111","name":"CoFH #thaumcraft-teasers","type":2,"user":{"id":"474564749217234954","username":"autuamn_end","avatar":"7a8c1eacb63acfd711543f86244e5572","discriminator":"0","public_flags":0,"flags":0,"banner":null,"accent_color":null,"global_name":"Autuamn End","avatar_decoration_data":null,"banner_color":null,"clan":null},"source_guild":{"id":"399037120930512897","icon":"e0582bf64ecc58c529f16bf9f672943a","name":"CoFH"},"source_channel":{"id":"1098341229491654827","name":"thaumcraft-teasers"}}]\n' 05-21 11:46:37 [ERROR] nonebot | Error when running WebSocketConnection hook. Running cancelled! Traceback (most recent call last): File "", line 17, in
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\__init__.py", line 334, in run
get_driver().run(*args, **kwargs)
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\drivers\none.py", line 56, in run
loop.run_until_complete(self._serve())
File "C:\Program Files\Python312\Lib\asyncio\base_events.py", line 651, in run_until_complete
self.run_forever()
File "C:\Program Files\Python312\Lib\asyncio\windows_events.py", line 321, in run_forever
super().run_forever()
File "C:\Program Files\Python312\Lib\asyncio\base_events.py", line 618, in run_forever
self._run_once()
File "C:\Program Files\Python312\Lib\asyncio\base_events.py", line 1951, in _run_once
handle._run()
File "C:\Program Files\Python312\Lib\asyncio\events.py", line 84, in _run
self._context.run(self._callback, *self._args)
> File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\internal\driver\abstract.py", line 156, in _run_hook
await asyncio.gather(*coros)
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\utils.py", line 249, in run_coro_with_catch
return await coro
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\dependencies\__init__.py", line 106, in __call__
return await cast(Callable[..., Awaitable[R]], self.call)(**values)
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\src\plugins\sync_message_to_discord\__init__.py", line 79, in get_webhook
list_list_webhook = await asyncio.gather(*task_get_webhook)
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\internal\adapter\bot.py", line 122, in call_api
raise exception
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\internal\adapter\bot.py", line 97, in call_api
result = await self.adapter._call_api(self, api, **data)
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\adapters\discord\adapter.py", line 455, in _call_api
return await api_handler(self, bot, **data)
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\adapters\discord\api\handle.py", line 2861, in _get_channel_webhooks
return type_validate_python(List[Webhook], await _request(adapter, bot, request))
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\nonebot\compat.py", line 215, in type_validate_python
return TypeAdapter(type_).validate_python(data)
File "C:\Users\autua\Desktop\NoneBot\DiscordBot\.venv\Lib\site-packages\pydantic\type_adapter.py", line 260, in validate_python
return self.validator.validate_python(object, strict=strict, from_attributes=from_attributes, context=context)
pydantic_core._pydantic_core.ValidationError: 30 validation errors for list[Webhook]
1.source_guild.literal[]
Input should be [type=literal_error, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/literal_error
1.source_guild.Guild.splash
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.discovery_splash
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.owner_id
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.afk_channel_id
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.afk_timeout
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.verification_level
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.default_message_notifications
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.explicit_content_filter
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.roles
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.emojis
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.features
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.mfa_level
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.application_id
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.system_channel_id
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.system_channel_flags
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.rules_channel_id
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.max_presences
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.max_members
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.vanity_url_code
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.description
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.banner
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.premium_tier
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.premium_subscription_count
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.preferred_locale
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.public_updates_channel_id
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.nsfw_level
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_guild.Guild.premium_progress_bar_enabled
Field required [type=missing, input_value={'id': '39903712093051289...72943a', 'name': 'CoFH'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
1.source_channel.literal[]
Input should be [type=literal_error, input_value={'id': '10983412294916548...': 'thaumcraft-teasers'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/literal_error
1.source_channel.Channel.type
Field required [type=missing, input_value={'id': '10983412294916548...': 'thaumcraft-teasers'}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.7/v/missing
```