Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
attrs==26.1.0
certifi==2026.6.17
certifi==2026.7.22
charset-normalizer==3.4.9
idna==3.18
jsonschema==4.25.1
Expand Down
12 changes: 6 additions & 6 deletions src/pl.arm64.json
Original file line number Diff line number Diff line change
Expand Up @@ -121,10 +121,10 @@
{
"folder-name": "HTMLTag",
"display-name": "HTML Tag",
"version": "1.6.0.0",
"version": "1.6.1.0",
"npp-compatible-versions": "[8.3,]",
"id": "0f172f4244f31c180953682d3d30ba0c912ded7e2b235fea22aa9a117cb327bb",
"repository": "https://github.com/rdipardo/nppHTMLTag/releases/download/v1.6.0/HTMLTag_v1.6.0_arm64.zip",
"id": "870a1bd94c141e1c7d441a5ec1ae01a1c2650a86759b2b56822411738d4d1491",
"repository": "https://github.com/rdipardo/nppHTMLTag/releases/download/v1.6.1/HTMLTag_v1.6.1_arm64.zip",
"description": "Provides three core functions:\r\n- HTML and XML tag jumping, like the built-in brace matching and selection\r\n of tags and/or contents.\r\n- HTML entity encoding/decoding (example: é to é)\r\n- JS character encoding/decoding (example: é to \\u00E9)",
"author": "Martijn Coppoolse",
"homepage": "https://github.com/rdipardo/nppHTMLTag"
Expand Down Expand Up @@ -184,10 +184,10 @@
{
"folder-name": "MarkdownTableEditor",
"display-name": "Markdown Table Editor",
"version": "11.0.2",
"version": "11.1.0",
"npp-compatible-versions": "[8.3.1,]",
"id": "e6652a689d6b1781a23fb578eb9034dbbfd483ca608348ca4379b708465c0c6e",
"repository": "https://github.com/krotname/NppMarkdownTableEditor/releases/download/v11.0.2/MarkdownTableEditor-11.0.2-arm64-pluginadmin.zip",
"id": "37ed2e3ac28b514d3267e9bcd0cca18683d67ae817075e9f91a5b944c78e18ea",
"repository": "https://github.com/krotname/NppMarkdownTableEditor/releases/download/v11.1.0/MarkdownTableEditor-11.1.0-arm64-pluginadmin.zip",
"description": "Edits Markdown pipe tables as aligned text. Align, fit width, narrow or widen columns, navigate, insert, delete, move and sort rows or columns, convert CSV/TSV blocks, and insert new tables from Notepad++.",
"author": "Kreout",
"homepage": "https://github.com/krotname/NppMarkdownTableEditor"
Expand Down
12 changes: 6 additions & 6 deletions src/pl.x64.json
Original file line number Diff line number Diff line change
Expand Up @@ -656,11 +656,11 @@
{
"folder-name": "HTMLTag",
"display-name": "HTML Tag",
"version": "1.6.0.0",
"version": "1.6.1.0",
"npp-compatible-versions": "[8.3,]",
"old-versions-compatibility": "[,1.1][,8.2.1]",
"id": "0281be7b6f0c77661ba004e0c2f52f7f8b3289071535042879f8c69b242af5f4",
"repository": "https://github.com/rdipardo/nppHTMLTag/releases/download/v1.6.0/HTMLTag_v1.6.0_x64.zip",
"id": "32127f58479d106840a9790ed52296d62406e5715b63740ac96338d8ae8d515b",
"repository": "https://github.com/rdipardo/nppHTMLTag/releases/download/v1.6.1/HTMLTag_v1.6.1_x64.zip",
"description": "Provides three core functions:\r\n- HTML and XML tag jumping, like the built-in brace matching and selection\r\n of tags and/or contents.\r\n- HTML entity encoding/decoding (example: é to é)\r\n- JS character encoding/decoding (example: é to \\u00E9)",
"author": "Martijn Coppoolse",
"homepage": "https://github.com/rdipardo/nppHTMLTag"
Expand Down Expand Up @@ -867,10 +867,10 @@
{
"folder-name": "MarkdownTableEditor",
"display-name": "Markdown Table Editor",
"version": "11.0.2",
"version": "11.1.0",
"npp-compatible-versions": "[8.3.1,]",
"id": "1c22f73d52b3586e00d8a757dd9af52589d497659dca81fb2c5b26d06d2ed553",
"repository": "https://github.com/krotname/NppMarkdownTableEditor/releases/download/v11.0.2/MarkdownTableEditor-11.0.2-x64-pluginadmin.zip",
"id": "a39a5f4cce2b726c585b80d142c755b1d2cd7cd3ef8c1afe6e3be41c0ff5fa40",
"repository": "https://github.com/krotname/NppMarkdownTableEditor/releases/download/v11.1.0/MarkdownTableEditor-11.1.0-x64-pluginadmin.zip",
"description": "Edits Markdown pipe tables as aligned text. Align, fit width, narrow or widen columns, navigate, insert, delete, move and sort rows or columns, convert CSV/TSV blocks, and insert new tables from Notepad++.",
"author": "Kreout",
"homepage": "https://github.com/krotname/NppMarkdownTableEditor"
Expand Down
12 changes: 6 additions & 6 deletions src/pl.x86.json
Original file line number Diff line number Diff line change
Expand Up @@ -655,11 +655,11 @@
{
"folder-name": "HTMLTag_unicode",
"display-name": "HTML Tag",
"version": "1.6.0.0",
"version": "1.6.1.0",
"npp-compatible-versions": "[7.7,]",
"old-versions-compatibility": "[,1.1][,7.6.6]",
"id": "94872e5cc49d7b7e8bff641b1fc292ffbaba7a2d6841fe708137d4276d1384f6",
"repository": "https://github.com/rdipardo/nppHTMLTag/releases/download/v1.6.0/HTMLTag_v1.6.0.zip",
"id": "1d4fb8d05d14837620af8efa9314beb999ee99ab6760d0d3ea511afcab489808",
"repository": "https://github.com/rdipardo/nppHTMLTag/releases/download/v1.6.1/HTMLTag_v1.6.1.zip",
"description": "Provides three core functions:\r\n- HTML and XML tag jumping, like the built-in brace matching and selection\r\n of tags and/or contents.\r\n- HTML entity encoding/decoding (example: é to é)\r\n- JS character encoding/decoding (example: é to \\u00E9)",
"author": "Martijn Coppoolse",
"homepage": "https://github.com/rdipardo/nppHTMLTag"
Expand Down Expand Up @@ -882,10 +882,10 @@
{
"folder-name": "MarkdownTableEditor",
"display-name": "Markdown Table Editor",
"version": "11.0.2",
"version": "11.1.0",
"npp-compatible-versions": "[7.5.9,]",
"id": "2f8fe08ab6c4c55b2111df2de398ecb185fa2691dea41083fad0e1f2138cb785",
"repository": "https://github.com/krotname/NppMarkdownTableEditor/releases/download/v11.0.2/MarkdownTableEditor-11.0.2-x86-pluginadmin.zip",
"id": "8d5b66e539cceef2bce664433616eacdf57c22cbd590d155f11c5d6266877bf5",
"repository": "https://github.com/krotname/NppMarkdownTableEditor/releases/download/v11.1.0/MarkdownTableEditor-11.1.0-x86-pluginadmin.zip",
"description": "Edits Markdown pipe tables as aligned text. Align, fit width, narrow or widen columns, navigate, insert, delete, move and sort rows or columns, convert CSV/TSV blocks, and insert new tables from Notepad++.",
"author": "Kreout",
"homepage": "https://github.com/krotname/NppMarkdownTableEditor"
Expand Down
29 changes: 28 additions & 1 deletion validator.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,26 @@

import requests
from jsonschema import Draft202012Validator, FormatChecker
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
from win32api import GetFileVersionInfo, LOWORD, HIWORD, error as win32api_error

api_url = os.environ.get('APPVEYOR_API_URL')
has_error = False

# Every run downloads the archive of every plugin in the list, so a single transient hiccup on any
# entry - a dropped connection, a gateway timeout - fails the whole validation and hides the real
# result. Retry those, and give up only when a host is genuinely unreachable.
DOWNLOAD_TIMEOUT_SECONDS = 60
DOWNLOAD_RETRIES = Retry(
total=3,
backoff_factor=2,
status_forcelist=(408, 425, 429, 500, 502, 503, 504),
allowed_methods=frozenset(['GET']),
# Let the existing status code check report a persistent failure with its own message.
raise_on_status=False,
)

# Constants for creating the plugin list overview
C_LINE_BREAK = '\x0d'
C_LINE_FEED = '\x0a'
Expand All @@ -38,6 +53,14 @@ def get_version_number(filename):
return '.'.join(map(str, [HIWORD(ms), LOWORD(ms), HIWORD(ls), LOWORD(ls)]))


def create_download_session():
session = requests.Session()
adapter = HTTPAdapter(max_retries=DOWNLOAD_RETRIES)
session.mount('https://', adapter)
session.mount('http://', adapter)
return session


def post_error(message):
global has_error

Expand Down Expand Up @@ -182,6 +205,7 @@ def parse(filename):
shutil.rmtree("./" + provided_architecture, True)

os.mkdir("./" + provided_architecture)
download_session = create_download_session()
for plugin in pl["npp-plugins"]:
print(plugin["display-name"], end='')

Expand All @@ -201,7 +225,10 @@ def parse(filename):
print(f' *** {"; ".join(compatibility_messages)} ***')

try:
response = requests.get(unquote_url(plugin["repository"]))
response = download_session.get(
unquote_url(plugin["repository"]),
timeout=DOWNLOAD_TIMEOUT_SECONDS,
)
except requests.exceptions.RequestException as e:
post_error(f'{plugin["display-name"]}: {str(e)}')
continue
Expand Down
Loading