Fixed the bug where the changelog doesn't get shown if you close and open the plugin manager

This commit is contained in:
Vishal 2024-05-04 22:53:10 +05:30 committed by GitHub
parent cd8535f610
commit 5e71b03bdc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1386,6 +1386,7 @@ class PluginManager:
self._index_setup_in_progress = False self._index_setup_in_progress = False
async def get_changelog(self) -> str: async def get_changelog(self) -> str:
requested = False
if not self._changelog: if not self._changelog:
request = urllib.request.Request(CHANGELOG_META.format( request = urllib.request.Request(CHANGELOG_META.format(
repository_url=REPOSITORY_URL, repository_url=REPOSITORY_URL,
@ -1395,7 +1396,8 @@ class PluginManager:
headers=self.request_headers) headers=self.request_headers)
response = await async_send_network_request(request) response = await async_send_network_request(request)
self._changelog = response.read().decode() self._changelog = response.read().decode()
return self._changelog requested = True
return [self._changelog, requested]
async def setup_changelog(self, version=None) -> None: async def setup_changelog(self, version=None) -> None:
if version is None: if version is None:
@ -1407,12 +1409,15 @@ class PluginManager:
self._changelog_setup_in_progress = not bool(self._changelog) self._changelog_setup_in_progress = not bool(self._changelog)
try: try:
full_changelog = await self.get_changelog() full_changelog = await self.get_changelog()
if full_changelog[1]:
pattern = rf"### {version} \(\d\d-\d\d-\d{{4}}\)\n(.*?)(?=### \d+\.\d+\.\d+|\Z)" pattern = rf"### {version} \(\d\d-\d\d-\d{{4}}\)\n(.*?)(?=### \d+\.\d+\.\d+|\Z)"
matches = re.findall(pattern, full_changelog, re.DOTALL) matches = re.findall(pattern, full_changelog[0], re.DOTALL)
if matches: if matches:
changelog = matches[0].strip() changelog = matches[0].strip()
else: else:
changelog = f"Changelog entry for version {version} not found." changelog = f"Changelog entry for version {version} not found."
else:
changelog = full_changelog[0]
except urllib.error.URLError: except urllib.error.URLError:
changelog = 'Could not get ChangeLog due to Internet Issues.' changelog = 'Could not get ChangeLog due to Internet Issues.'
self.set_changelog_global_cache(changelog) self.set_changelog_global_cache(changelog)