11from __future__ import annotations
22
3+ import logging
34import platform
45import re
56from itertools import chain
67from typing import Literal , get_args
78
9+ import requests
810from packaging .version import Version
911from typing_extensions import LiteralString # <3.11
1012
1113from .._config import Build , BuildFile
1214from .._download_helper import download_info
1315
16+ logger = logging .getLogger (__name__ )
17+
1418provider = "johnvansickle.com"
1519home_url = "https://johnvansickle.com/ffmpeg"
1620
@@ -96,8 +100,14 @@ def gather_builds(
96100 :return nightly_catalog: list of nightly build info objects
97101 """
98102
99- release_catalog = get_latest_release (arch , requests_kws )
100- release_catalog .extend (get_old_releases (arch , requests_kws ))
103+ try :
104+ release_catalog = get_latest_release (arch , requests_kws )
105+ release_catalog .extend (get_old_releases (arch , requests_kws ))
106+ except requests .exceptions .ConnectTimeout :
107+ logging .debug (
108+ "failed to retrieve releases from https://johnvansickle.com/ffmpeg"
109+ )
110+ release_catalog = []
101111 nightly_catalog = [] if skip_nightly else get_latest_snapshot (arch , requests_kws )
102112
103113 return release_catalog , nightly_catalog
@@ -114,7 +124,13 @@ def get_latest_release(
114124 {"Accept" : "text/plain" },
115125 requests_kws = requests_kws ,
116126 ).text
117- ver = Version (re .search (r"version: (\d+\.\d+(?:\.\d+)?)" , readme )[1 ])
127+
128+ rel = re .search (r"version: (\d+\.\d+(?:\.\d+)?)" , readme )
129+ if not rel :
130+ logger .debug ("failed to retrieve https://johnvansickle.com/ffmpeg/readme.txt" )
131+ return []
132+
133+ ver = Version (rel [1 ])
118134
119135 return [
120136 Build (
0 commit comments