This commit is contained in:
2026-01-31 16:11:25 -08:00
parent c854f8c6a8
commit dcf16e0cc4
6 changed files with 112 additions and 43 deletions

View File

@@ -100,8 +100,8 @@ def _resolve_verify_value(verify_ssl: bool) -> Union[bool, str]:
pass
return None
# Prefer pip_system_certs if available
for mod_name in ("pip_system_certs",):
# Prefer helpful modules if available (use safe checks to avoid first-chance import errors)
for mod_name in ("pip_system_certs", "certifi_win32"):
path = _try_module_bundle(mod_name)
if path:
try:
@@ -111,29 +111,18 @@ def _resolve_verify_value(verify_ssl: bool) -> Union[bool, str]:
logger.info(f"SSL_CERT_FILE not set; using bundle from {mod_name}: {path}")
return path
# Special-case helpers that merge system certs (eg. certifi_win32)
# Fallback to certifi
try:
import certifi_win32 as _cw # type: ignore
if hasattr(_cw, "add_windows_store_certs") and callable(_cw.add_windows_store_certs):
try:
_cw.add_windows_store_certs()
except Exception:
pass
try:
import certifi # type: ignore
import certifi # type: ignore
path = certifi.where()
if path:
try:
os.environ["SSL_CERT_FILE"] = path
except Exception:
pass
logger.info(
f"SSL_CERT_FILE not set; using certifi bundle after certifi_win32: {path}"
)
return path
path = certifi.where()
if path:
try:
os.environ["SSL_CERT_FILE"] = path
except Exception:
pass
logger.info(f"SSL_CERT_FILE not set; using certifi bundle: {path}")
return path
except Exception:
pass

View File

@@ -234,7 +234,7 @@
"ddl\\.to/([0-9a-zA-Z]{12})"
],
"regexp": "((ddownload\\.com/[0-9a-zA-Z]{12}))|(ddl\\.to/([0-9a-zA-Z]{12}))",
"status": false
"status": true
},
"dropapk": {
"name": "dropapk",
@@ -622,7 +622,7 @@
"(simfileshare\\.net/download/[0-9]+/)"
],
"regexp": "(simfileshare\\.net/download/[0-9]+/)",
"status": true
"status": false
},
"streamtape": {
"name": "streamtape",
@@ -4759,6 +4759,17 @@
],
"regexp": "(https?://(?:www\\.)?eroprofile\\.com/m/videos/album/([^/]+))|(https?://(?:www\\.)?eroprofile\\.com/m/videos/view/([^/]+))"
},
"errarhiiv": {
"name": "errarhiiv",
"type": "free",
"domains": [
"arhiiv.err.ee"
],
"regexps": [
"https://arhiiv\\.err\\.ee/video/(?:vaata/)?([^/?#]+)"
],
"regexp": "https://arhiiv\\.err\\.ee/video/(?:vaata/)?([^/?#]+)"
},
"errjupiter": {
"name": "errjupiter",
"type": "free",
@@ -5315,6 +5326,19 @@
],
"regexp": "https?://(?:www\\.)?radiofrance\\.fr/(?:franceculture|franceinfo|franceinter|francemusique|fip|mouv)/podcasts/(?:[^?#]+/)?([^?#]+)-(\\d{6,})(?:$|[?#])"
},
"franceinfo": {
"name": "franceinfo",
"type": "free",
"domains": [
"francetvinfo.fr",
"france3-regions.francetvinfo.fr",
"franceinfo.fr"
],
"regexps": [
"https?://(?:www|mobile|france3-regions)\\.france(?:tv)?info.fr/(?:[^/?#]+/)*([^/?#&.]+)"
],
"regexp": "https?://(?:www|mobile|france3-regions)\\.france(?:tv)?info.fr/(?:[^/?#]+/)*([^/?#&.]+)"
},
"franceinter": {
"name": "franceinter",
"type": "free",
@@ -5337,18 +5361,6 @@
],
"regexp": "(francetv:([^@#]+))|(https?://(?:(?:www\\.)?france\\.tv|mobile\\.france\\.tv)/(?:[^/]+/)*([^/]+)\\.html)"
},
"francetvinfo.fr": {
"name": "francetvinfo.fr",
"type": "free",
"domains": [
"francetvinfo.fr",
"france3-regions.francetvinfo.fr"
],
"regexps": [
"https?://(?:www|mobile|france3-regions)\\.francetvinfo\\.fr/(?:[^/]+/)*([^/?#&.]+)"
],
"regexp": "https?://(?:www|mobile|france3-regions)\\.francetvinfo\\.fr/(?:[^/]+/)*([^/?#&.]+)"
},
"freesound": {
"name": "freesound",
"type": "free",
@@ -9760,7 +9772,7 @@
"name": "nitter",
"type": "free",
"domains": [
"nitter.projectsegfau.lt"
"nitter.fdn.fr"
],
"regexps": [
"https?://(?:3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad\\.onion|nitter\\.l4qlywnpwqsluw65ts7md3khrivpirse744un3x7mlskqauz5pyuzgqd\\.onion|nitter7bryz3jv7e3uekphigvmoyoem4al3fynerxkj22dmoxoq553qd\\.onion|npf37k3mtzwxreiw52ccs5ay4e6qt2fkcs2ndieurdyn2cuzzsfyfvid\\.onion|nitter\\.v6vgyqpa7yefkorazmg5d5fimstmvm2vtbirt6676mt7qmllrcnwycqd\\.onion|i23nv6w3juvzlw32xzoxcqzktegd4i4fu3nmnc2ewv4ggiu4ledwklad\\.onion|26oq3gioiwcmfojub37nz5gzbkdiqp7fue5kvye7d4txv4ny6fb4wwid\\.onion|vfaomgh4jxphpbdfizkm5gbtjahmei234giqj4facbwhrfjtcldauqad\\.onion|iwgu3cv7ywf3gssed5iqtavmrlszgsxazkmwwnt4h2kdait75thdyrqd\\.onion|erpnncl5nhyji3c32dcfmztujtl3xaddqb457jsbkulq24zqq7ifdgad\\.onion|ckzuw5misyahmg7j5t5xwwuj3bwy62jfolxyux4brfflramzsvvd3syd\\.onion|jebqj47jgxleaiosfcxfibx2xdahjettuydlxbg64azd4khsxv6kawid\\.onion|nttr2iupbb6fazdpr2rgbooon2tzbbsvvkagkgkwohhodjzj43stxhad\\.onion|nitraeju2mipeziu2wtcrqsxg7h62v5y4eqgwi75uprynkj74gevvuqd\\.onion|nitter\\.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd\\.onion|ibsboeui2im5o7dxnik3s5yghufumgy5abevtij5nbizequfpu4qi4ad\\.onion|ec5nvbycpfa5k6ro77blxgkyrzbkv7uy6r5cngcbkadtjj2733nm3uyd\\.onion|nitter\\.i2p|u6ikd6zndl3c4dsdq4mmujpntgeevdk5qzkfb57r4tnfeccrn2qa\\.b32\\.i2p|nitterlgj3n5fgwesu3vxc5h67ruku33nqaoeoocae2mvlzhsu6k7fqd\\.onion|nitter\\.lacontrevoie\\.fr|nitter\\.fdn\\.fr|nitter\\.1d4\\.us|nitter\\.kavin\\.rocks|nitter\\.unixfox\\.eu|nitter\\.domain\\.glass|nitter\\.namazso\\.eu|birdsite\\.xanny\\.family|nitter\\.moomoo\\.me|bird\\.trom\\.tf|nitter\\.it|twitter\\.censors\\.us|nitter\\.grimneko\\.de|twitter\\.076\\.ne\\.jp|nitter\\.fly\\.dev|notabird\\.site|nitter\\.weiler\\.rocks|nitter\\.sethforprivacy\\.com|nitter\\.cutelab\\.space|nitter\\.nl|nitter\\.mint\\.lgbt|nitter\\.bus\\-hit\\.me|nitter\\.esmailelbob\\.xyz|tw\\.artemislena\\.eu|nitter\\.winscloud\\.net|nitter\\.tiekoetter\\.com|nitter\\.spaceint\\.fr|nitter\\.privacy\\.com\\.de|nitter\\.poast\\.org|nitter\\.bird\\.froth\\.zone|nitter\\.dcs0\\.hu|twitter\\.dr460nf1r3\\.org|nitter\\.garudalinux\\.org|twitter\\.femboy\\.hu|nitter\\.cz|nitter\\.privacydev\\.net|nitter\\.evil\\.site|tweet\\.lambda\\.dance|nitter\\.kylrth\\.com|nitter\\.foss\\.wtf|nitter\\.priv\\.pw|nitter\\.tokhmi\\.xyz|nitter\\.catalyst\\.sx|unofficialbird\\.com|nitter\\.projectsegfau\\.lt|nitter\\.eu\\.projectsegfau\\.lt|singapore\\.unofficialbird\\.com|canada\\.unofficialbird\\.com|india\\.unofficialbird\\.com|nederland\\.unofficialbird\\.com|uk\\.unofficialbird\\.com|n\\.l5\\.ca|nitter\\.slipfox\\.xyz|nitter\\.soopy\\.moe|nitter\\.qwik\\.space|read\\.whatever\\.social|nitter\\.rawbit\\.ninja|nt\\.vern\\.cc|ntr\\.odyssey346\\.dev|nitter\\.ir|nitter\\.privacytools\\.io|nitter\\.sneed\\.network|n\\.sneed\\.network|nitter\\.manasiwibi\\.com|nitter\\.smnz\\.de|nitter\\.twei\\.space|nitter\\.inpt\\.fr|nitter\\.d420\\.de|nitter\\.caioalonso\\.com|nitter\\.at|nitter\\.drivet\\.xyz|nitter\\.pw|nitter\\.nicfab\\.eu|bird\\.habedieeh\\.re|nitter\\.hostux\\.net|nitter\\.adminforge\\.de|nitter\\.platypush\\.tech|nitter\\.mask\\.sh|nitter\\.pufe\\.org|nitter\\.us\\.projectsegfau\\.lt|nitter\\.arcticfoxes\\.net|t\\.com\\.sb|nitter\\.kling\\.gg|nitter\\.ktachibana\\.party|nitter\\.riverside\\.rocks|nitter\\.girlboss\\.ceo|nitter\\.lunar\\.icu|twitter\\.moe\\.ngo|nitter\\.freedit\\.eu|ntr\\.frail\\.duckdns\\.org|nitter\\.librenode\\.org|n\\.opnxng\\.com|nitter\\.plus\\.st|nitter\\.ethibox\\.fr|nitter\\.net|is\\-nitter\\.resolv\\.ee|lu\\-nitter\\.resolv\\.ee|nitter\\.13ad\\.de|nitter\\.40two\\.app|nitter\\.cattube\\.org|nitter\\.cc|nitter\\.dark\\.fail|nitter\\.himiko\\.cloud|nitter\\.koyu\\.space|nitter\\.mailstation\\.de|nitter\\.mastodont\\.cat|nitter\\.tedomum\\.net|nitter\\.tokhmi\\.xyz|nitter\\.weaponizedhumiliation\\.com|nitter\\.vxempire\\.xyz|tweet\\.lambda\\.dance|nitter\\.ca|nitter\\.42l\\.fr|nitter\\.pussthecat\\.org|nitter\\.nixnet\\.services|nitter\\.eu|nitter\\.actionsack\\.com|nitter\\.hu|twitr\\.gq|nittereu\\.moomoo\\.me|bird\\.from\\.tf|twitter\\.grimneko\\.de|nitter\\.alefvanoon\\.xyz|n\\.hyperborea\\.cloud|twitter\\.mstdn\\.social|nitter\\.silkky\\.cloud|nttr\\.stream|fuckthesacklers\\.network|nitter\\.govt\\.land|nitter\\.datatunnel\\.xyz|de\\.nttr\\.stream|twtr\\.bch\\.bar|nitter\\.exonip\\.de|nitter\\.mastodon\\.pro|nitter\\.notraxx\\.ch|nitter\\.skrep\\.in|nitter\\.snopyta\\.org)/(.+)/status/([0-9]+)(#.)?"
@@ -14557,9 +14569,9 @@
"watch.thechosen.tv"
],
"regexps": [
"https?://(?:www\\.)?watch\\.thechosen\\.tv/video/([0-9]+)"
"https?://(?:www\\.)?watch\\.thechosen\\.tv/watch/([0-9]+)"
],
"regexp": "https?://(?:www\\.)?watch\\.thechosen\\.tv/video/([0-9]+)"
"regexp": "https?://(?:www\\.)?watch\\.thechosen\\.tv/watch/([0-9]+)"
},
"thechosengroup": {
"name": "thechosengroup",
@@ -16353,9 +16365,11 @@
"volej.tv"
],
"regexps": [
"https?://volej\\.tv/video/(\\d+)"
"https?://volej\\.tv/kategorie/([^/$?]+)",
"https?://volej\\.tv/klub/(\\d+)",
"https?://volej\\.tv/match/(\\d+)"
],
"regexp": "https?://volej\\.tv/video/(\\d+)"
"regexp": "(https?://volej\\.tv/kategorie/([^/$?]+))|(https?://volej\\.tv/klub/(\\d+))|(https?://volej\\.tv/match/(\\d+))"
},
"voxmedia": {
"name": "voxmedia",