1- from typing import Any
1+ from typing import Any, Union
22
3+ {% for import_ in imports %}
4+ from githubkit.webhooks.models import {{ import_ }}
5+ {% endfor %}
36from githubkit.utils import UNSET
47from nonebot.typing import overrides
8+ from nonebot.utils import escape_tag
59
610from nonebot.adapters import Event as BaseEvent
711
@@ -19,14 +23,24 @@ class Event(BaseEvent):
1923
2024 @overrides(BaseEvent)
2125 def get_event_name(self) -> str:
22- return self.event_name + f".{action}" if (action := getattr(self, "action", UNSET)) else ""
26+ return self.name + (
27+ f".{action}" if (action := getattr(self.payload, "action", None)) else ""
28+ )
2329
2430 @overrides(BaseEvent)
2531 def get_event_description(self) -> str:
2632 return escape_tag(
27- f"{self.__class__.__name__} " +
28- (f"from sender {sender.login}" if (sender := getattr(self, "sender", UNSET)) else "") +
29- (f"in repository {repo.full_name}" if (repo := getattr(self, "repository", UNSET)) else "") +
33+ f"{self.__class__.__name__} "
34+ + (
35+ f"from sender {sender.login}"
36+ if (sender := getattr(self.payload, "sender", None))
37+ else ""
38+ )
39+ + (
40+ f"in repository {repo.full_name}"
41+ if (repo := getattr(self.payload, "repository", None))
42+ else ""
43+ )
3044 )
3145
3246 @overrides(BaseEvent)
@@ -35,7 +49,7 @@ class Event(BaseEvent):
3549
3650 @overrides(BaseEvent)
3751 def get_user_id(self) -> str:
38- if sender := getattr(self, "sender", UNSET ):
52+ if sender := getattr(self.payload , "sender", None ):
3953 return sender.login
4054 raise ValueError("Event has no context!")
4155
@@ -46,3 +60,11 @@ class Event(BaseEvent):
4660 @overrides(BaseEvent)
4761 def is_tome(self) -> bool:
4862 return self.to_me
63+
64+
65+ {% for event in events %}
66+
67+ class {{ event.class_name }}(Event):
68+ payload: {{ event.payload_type }}
69+
70+ {% endfor %}
0 commit comments