2023-02-15 19:50:50 +00:00
|
|
|
#!/usr/bin/env python
|
|
|
|
# This module generates the listing of supported sites which can be found in
|
|
|
|
# sites.md. It also organizes all the sites in alphanumeric order
|
2018-12-29 23:16:43 +00:00
|
|
|
import json
|
2024-06-20 11:04:30 +00:00
|
|
|
import os
|
2019-01-27 09:31:55 +00:00
|
|
|
|
2024-08-23 05:21:49 +00:00
|
|
|
|
|
|
|
DATA_REL_URI: str = "sherlock_project/resources/data.json"
|
|
|
|
|
2023-02-15 19:50:50 +00:00
|
|
|
# Read the data.json file
|
2024-08-23 05:21:49 +00:00
|
|
|
with open(DATA_REL_URI, "r", encoding="utf-8") as data_file:
|
2024-05-06 04:09:00 +00:00
|
|
|
data: dict = json.load(data_file)
|
|
|
|
|
|
|
|
# Removes schema-specific keywords for proper processing
|
|
|
|
social_networks: dict = dict(data)
|
2024-05-08 04:08:45 +00:00
|
|
|
social_networks.pop('$schema', None)
|
2018-12-29 23:16:43 +00:00
|
|
|
|
2023-02-15 19:50:50 +00:00
|
|
|
# Sort the social networks in alphanumeric order
|
2024-05-06 04:09:00 +00:00
|
|
|
social_networks: list = sorted(social_networks.items())
|
2019-01-24 11:01:34 +00:00
|
|
|
|
2024-06-20 11:04:30 +00:00
|
|
|
# Make output dir where the site list will be written
|
|
|
|
os.mkdir("output")
|
|
|
|
|
2023-02-15 19:50:50 +00:00
|
|
|
# Write the list of supported sites to sites.md
|
2024-06-20 11:04:30 +00:00
|
|
|
with open("output/sites.mdx", "w") as site_file:
|
2024-06-24 19:42:08 +00:00
|
|
|
site_file.write("---\ntitle: 'List of supported sites'\nsidebarTitle: 'Supported sites'\nicon: 'globe'\ndescription: 'Sherlock currently supports **400+** sites'\n---\n\n")
|
2023-02-15 19:50:50 +00:00
|
|
|
for social_network, info in social_networks:
|
|
|
|
url_main = info["urlMain"]
|
2023-02-26 10:51:56 +00:00
|
|
|
is_nsfw = "**(NSFW)**" if info.get("isNSFW") else ""
|
2024-06-20 11:04:30 +00:00
|
|
|
site_file.write(f"1. [{social_network}]({url_main}) {is_nsfw}\n")
|
2019-01-23 14:14:37 +00:00
|
|
|
|
2023-02-15 19:50:50 +00:00
|
|
|
# Overwrite the data.json file with sorted data
|
2024-08-23 05:21:49 +00:00
|
|
|
with open(DATA_REL_URI, "w") as data_file:
|
2023-02-15 19:50:50 +00:00
|
|
|
sorted_data = json.dumps(data, indent=2, sort_keys=True)
|
|
|
|
data_file.write(sorted_data)
|
2021-12-11 16:34:35 +00:00
|
|
|
data_file.write("\n")
|
2019-01-23 14:14:37 +00:00
|
|
|
|
2020-08-07 19:55:33 +00:00
|
|
|
print("Finished updating supported site listing!")
|
2024-06-20 11:04:30 +00:00
|
|
|
|