File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -142,7 +142,7 @@ def __init__(
142142 self .mumble_last_check = time .time ()
143143 self .wiki_last_update = time .time ()
144144 self .wiki_last_check = time .time ()
145- self .wiki_msg = mariusz . wiki . build_wiki_message ()
145+ self .wiki_msg : str | None = None
146146
147147 if path_to_chat_db :
148148 self .chat_db : ChatDb | None = ChatDb (path_to_chat_db )
@@ -354,10 +354,15 @@ async def maybe_update_meetup_message(self) -> None:
354354
355355 async def maybe_update_wiki (self ) -> None :
356356 """Check if anybody wrote anything on our wiki."""
357+ if self .wiki_msg is None :
358+ # Initialize here, as we can't invoke async functions in __init__
359+ self .wiki_msg = await mariusz .wiki .build_wiki_message ()
360+ return
361+
357362 now = time .time ()
358363 if now - self .wiki_last_check < 60 :
359364 return
360- msg = mariusz .wiki .build_wiki_message ()
365+ msg = await mariusz .wiki .build_wiki_message ()
361366 differs = self .wiki_msg != msg
362367 late_enough = abs (now - self .wiki_last_update ) > 60
363368 no_error = msg and self .wiki_msg
Original file line number Diff line number Diff line change 44
55import dateutil .parser
66import lxml .etree as E
7- import requests
7+ import httpx
88
99NS = "{http://www.w3.org/2005/Atom}"
1010
1111
12- def get_wiki_entries (url : str ):
12+ async def get_wiki_entries (url : str ):
1313 """Returns all Wiki entries for a given URL."""
14- tree = E .fromstring (requests .get (url , timeout = 10 ).text .encode ())
14+ async with httpx .AsyncClient () as client :
15+ r = await client .get (url , timeout = 10 )
16+ r .raise_for_status ()
17+ text = r .text .encode ()
18+ tree = E .fromstring (text )
1519 entry_f = E .ETXPath (NS + "entry" )
1620 entries = entry_f (tree )
1721 updated_f = E .ETXPath (".//" + NS + "updated/text()" )
1822 entries .sort (key = lambda e : dateutil .parser .parse (updated_f (e )[0 ]))
1923 return entries
2024
2125
22- def build_wiki_message () -> str :
26+ async def build_wiki_message () -> str :
2327 """Builds a message describing the current state of the wiki."""
2428 wiki_url = "https://github.com/hakierspejs/wiki/wiki.atom"
2529 try :
26- entries = get_wiki_entries (wiki_url )
30+ entries = await get_wiki_entries (wiki_url )
2731 if not entries :
2832 return ""
2933 latest = entries .pop ()
Original file line number Diff line number Diff line change @@ -2,7 +2,7 @@ python-telegram-bot==21.9 # try python-telegram-bot<20.0 if you have issues
22standard-imghdr
33python-dateutil
44lxml
5- requests
5+ httpx
66humanize == 2.0.0
77meetupscraper >= 0.11.0
88parameterized
You can’t perform that action at this time.
0 commit comments