Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
wwwanlingxiao
public-apis
Commits
97cb773f
Commit
97cb773f
authored
Mar 20, 2021
by
Marek Dano
Browse files
Add check for checking duplicated links in README file
Closes #1592
parent
14698bab
Changes
1
Hide whitespace changes
Inline
Side-by-side
build/validate_links.py
View file @
97cb773f
...
...
@@ -5,6 +5,11 @@ import re
import
socket
import
sys
ignored_links
=
[
'https://github.com/public-apis/public-apis/actions?query=workflow%3A%22Run+tests%22'
,
'https://github.com/public-apis/public-apis/workflows/Validate%20links/badge.svg?branch=master'
,
'https://github.com/public-apis/public-apis/actions?query=workflow%3A%22Validate+links%22'
,
]
def
parse_links
(
filename
):
"""Returns a list of URLs from text file"""
...
...
@@ -16,6 +21,29 @@ def parse_links(filename):
links
=
[
raw_link
[
0
]
for
raw_link
in
raw_links
]
return
links
def
dup_links
(
links
):
"""Check for duplicated links"""
print
(
f
'Checking for duplicated links...'
)
hasError
=
False
seen
=
{}
dupes
=
[]
for
x
in
links
:
if
x
in
ignored_links
:
continue
if
x
not
in
seen
:
seen
[
x
]
=
1
else
:
if
seen
[
x
]
==
1
:
dupes
.
append
(
x
)
if
not
dupes
:
print
(
f
"No duplicated links"
)
else
:
print
(
f
"Found duplicated links:
{
dupes
}
"
)
hasError
=
True
return
hasError
def
validate_links
(
links
):
"""Checks each entry in JSON file for live link"""
...
...
@@ -58,6 +86,9 @@ if __name__ == "__main__":
if
num_args
<
2
:
print
(
"No .md file passed"
)
sys
.
exit
(
1
)
hasError
=
validate_links
(
parse_links
(
sys
.
argv
[
1
]))
links
=
parse_links
(
sys
.
argv
[
1
])
hasError
=
dup_links
(
links
)
if
not
hasError
:
hasError
=
validate_links
(
links
)
if
hasError
:
sys
.
exit
(
1
)
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment