mirror of
https://gitea.invidious.io/iv-org/documentation.git
synced 2024-08-15 00:53:34 +00:00
Overhaul md list create script and instance.yaml
See https://github.com/iv-org/documentation/pull/76#issuecomment-864416290
This commit is contained in:
parent
b3d8f1b8bc
commit
62a0c73c28
3 changed files with 205 additions and 234 deletions
226
instances.yaml
226
instances.yaml
|
@ -19,9 +19,7 @@ instances:
|
||||||
https:
|
https:
|
||||||
# Template instance
|
# Template instance
|
||||||
# - url: https://example.com
|
# - url: https://example.com
|
||||||
# country:
|
# country: FI
|
||||||
# flag: 🇫🇮
|
|
||||||
# name: Finland
|
|
||||||
# status:
|
# status:
|
||||||
# url: https://status.example.com
|
# url: https://status.example.com
|
||||||
# display_content: https://status-image.example.com
|
# display_content: https://status-image.example.com
|
||||||
|
@ -30,16 +28,13 @@ instances:
|
||||||
# privacy_policy: example.com/privacy
|
# privacy_policy: example.com/privacy
|
||||||
# ddos_mitm_protection: null
|
# ddos_mitm_protection: null
|
||||||
# owner: https://github.com/example
|
# owner: https://github.com/example
|
||||||
# modified:
|
# is_modified: false
|
||||||
# is_modified: False
|
# source: null
|
||||||
# source_url: null
|
|
||||||
|
|
||||||
|
|
||||||
- url: https://invidious.snopyta.org
|
- url: https://invidious.snopyta.org
|
||||||
country:
|
country: FI
|
||||||
flag: 🇫🇮
|
status:
|
||||||
name: Finland
|
|
||||||
status:
|
|
||||||
url: https://status.unixfox.eu/783898765
|
url: https://status.unixfox.eu/783898765
|
||||||
display_content: https://img.shields.io/uptimerobot/status/m783898765-2a4efa67aa8d1c7be6b1dd9d
|
display_content: https://img.shields.io/uptimerobot/status/m783898765-2a4efa67aa8d1c7be6b1dd9d
|
||||||
display_content_is_image: True
|
display_content_is_image: True
|
||||||
|
@ -47,26 +42,20 @@ instances:
|
||||||
privacy_policy: https://snopyta.org/privacy_policy
|
privacy_policy: https://snopyta.org/privacy_policy
|
||||||
ddos_mitm_protection: null
|
ddos_mitm_protection: null
|
||||||
owner: https://github.com/Perflyst
|
owner: https://github.com/Perflyst
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
- url: https://yewtu.be
|
- url: https://yewtu.be
|
||||||
country:
|
country: FR
|
||||||
flag: 🇫🇷
|
|
||||||
name: France
|
|
||||||
status: null
|
status: null
|
||||||
privacy_policy: null
|
privacy_policy: null
|
||||||
ddos_mitm_protection: null
|
ddos_mitm_protection: null
|
||||||
owner: https://github.com/unixfox
|
owner: https://github.com/unixfox
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
- url: https://invidious.kavin.rocks
|
- url: https://invidious.kavin.rocks
|
||||||
country:
|
country: IN
|
||||||
flag: 🇮🇳
|
|
||||||
name: India
|
|
||||||
status:
|
status:
|
||||||
url: https://status.kavin.rocks/786132664
|
url: https://status.kavin.rocks/786132664
|
||||||
display_content: https://img.shields.io/uptimerobot/status/m786132664-f9fa738fba1c4dc2f7364f71
|
display_content: https://img.shields.io/uptimerobot/status/m786132664-f9fa738fba1c4dc2f7364f71
|
||||||
|
@ -75,14 +64,11 @@ instances:
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
ddos_mitm_protection: Cloudflare
|
ddos_mitm_protection: Cloudflare
|
||||||
owner: https://github.com/FireMasterK
|
owner: https://github.com/FireMasterK
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
- url: https://invidious-us.kavin.rocks
|
- url: https://invidious-us.kavin.rocks
|
||||||
country:
|
country: US
|
||||||
flag: 🇺🇸
|
|
||||||
name: USA
|
|
||||||
status:
|
status:
|
||||||
url: https://status.kavin.rocks/788216947
|
url: https://status.kavin.rocks/788216947
|
||||||
display_content: https://img.shields.io/uptimerobot/status/m788216947-f3f63d30899a10dbe9a0338a
|
display_content: https://img.shields.io/uptimerobot/status/m788216947-f3f63d30899a10dbe9a0338a
|
||||||
|
@ -91,30 +77,11 @@ instances:
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
ddos_mitm_protection: Cloudflare
|
ddos_mitm_protection: Cloudflare
|
||||||
owner: https://github.com/FireMasterK
|
owner: https://github.com/FireMasterK
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
- url: https://invidious.048596.xyz
|
|
||||||
country:
|
|
||||||
flag: 🇨🇦
|
|
||||||
name: Canada
|
|
||||||
status:
|
|
||||||
url: https://status.048596.xyz/786792286
|
|
||||||
display_content: https://img.shields.io/uptimerobot/status/m786792286-b5894e4e11c42b8332375076
|
|
||||||
display_content_is_image: True
|
|
||||||
display_content_image_fallback: Uptime Robot status
|
|
||||||
privacy_policy:
|
|
||||||
ddos_mitm_protection:
|
|
||||||
owner: https://github.com/tenpura-shrimp
|
|
||||||
modified:
|
|
||||||
is_modified: False
|
|
||||||
source_url: null
|
|
||||||
|
|
||||||
- url: https://vid.puffyan.us
|
- url: https://vid.puffyan.us
|
||||||
country:
|
country: US
|
||||||
flag: 🇺🇸
|
|
||||||
name: USA
|
|
||||||
status:
|
status:
|
||||||
url: https://stats.uptimerobot.com/n7A08HGVl6/786947233
|
url: https://stats.uptimerobot.com/n7A08HGVl6/786947233
|
||||||
display_content: https://img.shields.io/uptimerobot/status/m786947233-1131c3f67b9a20621b1926d3
|
display_content: https://img.shields.io/uptimerobot/status/m786947233-1131c3f67b9a20621b1926d3
|
||||||
|
@ -123,42 +90,20 @@ instances:
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
ddos_mitm_protection:
|
ddos_mitm_protection:
|
||||||
owner: https://github.com/ItsSt0ne
|
owner: https://github.com/ItsSt0ne
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
- url: https://ytprivate.com
|
|
||||||
country:
|
|
||||||
flag: 🇺🇸
|
|
||||||
name: USA
|
|
||||||
status:
|
|
||||||
url: https://status.ytprivate.com/786947505
|
|
||||||
display_content: https://img.shields.io/uptimerobot/status/m786947505-2a50cf3262906bb28c6cf8fc
|
|
||||||
display_content_is_image: True
|
|
||||||
display_content_image_fallback: Uptime Robot status
|
|
||||||
privacy_policy:
|
|
||||||
ddos_mitm_protection: DDoS-Guard
|
|
||||||
owner: https://github.com/ytprivatecom
|
|
||||||
modified:
|
|
||||||
is_modified: True
|
|
||||||
source_url: https://github.com/ytprivatecom/invidious
|
|
||||||
|
|
||||||
- url: https://invidious.namazso.eu
|
- url: https://invidious.namazso.eu
|
||||||
country:
|
country: DE
|
||||||
flag: 🇩🇪
|
|
||||||
name: Germany
|
|
||||||
status:
|
status:
|
||||||
privacy_policy: https://namazso.eu/privacy.html
|
privacy_policy: https://namazso.eu/privacy.html
|
||||||
ddos_mitm_protection:
|
ddos_mitm_protection:
|
||||||
owner: https://github.com/namazso
|
owner: https://github.com/namazso
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
- url: https://invidious.silkky.cloud
|
- url: https://invidious.silkky.cloud
|
||||||
country:
|
country: FI
|
||||||
flag: 🇫🇮
|
|
||||||
name: Finland
|
|
||||||
status:
|
status:
|
||||||
url: https://status.silkky.cloud/787784614
|
url: https://status.silkky.cloud/787784614
|
||||||
display_content: https://img.shields.io/uptimerobot/status/m787784614-79d1acc4b425d1ed813fc793
|
display_content: https://img.shields.io/uptimerobot/status/m787784614-79d1acc4b425d1ed813fc793
|
||||||
|
@ -167,14 +112,12 @@ instances:
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
ddos_mitm_protection:
|
ddos_mitm_protection:
|
||||||
owner: https://github.com/TheSilkky
|
owner: https://github.com/TheSilkky
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
- url: https://invidious.exonip.de
|
- url: https://invidious.exonip.de
|
||||||
country:
|
country: DE
|
||||||
flag: 🇩🇪
|
|
||||||
name: Germany
|
|
||||||
status:
|
status:
|
||||||
url: https://status.exonip.de/
|
url: https://status.exonip.de/
|
||||||
display_content: Uptime Robot status
|
display_content: Uptime Robot status
|
||||||
|
@ -182,65 +125,48 @@ instances:
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
ddos_mitm_protection:
|
ddos_mitm_protection:
|
||||||
owner: https://github.com/Exonip
|
owner: https://github.com/Exonip
|
||||||
modified:
|
is_modified: True
|
||||||
is_modified: True
|
source: https://github.com/exonip-de/invidious-source-modifications
|
||||||
source_url: https://github.com/exonip-de/invidious-source-modifications
|
|
||||||
|
|
||||||
- url: https://inv.riverside.rocks
|
- url: https://inv.riverside.rocks
|
||||||
country:
|
country: US
|
||||||
flag: 🇺🇸
|
|
||||||
name: USA
|
|
||||||
status:
|
status:
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
ddos_mitm_protection:
|
ddos_mitm_protection:
|
||||||
owner: https://github.com/RiversideRocks
|
owner: https://github.com/RiversideRocks
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
- url: https://invidious.blamefran.net
|
- url: https://invidious.blamefran.net
|
||||||
country:
|
country: US
|
||||||
flag: 🇺🇸
|
|
||||||
name: USA
|
|
||||||
status:
|
status:
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
ddos_mitm_protection:
|
ddos_mitm_protection:
|
||||||
owner: https://github.com/Aidan16
|
owner: https://github.com/Aidan16
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
- url: https://invidious.moomoo.me
|
- url: https://invidious.moomoo.me
|
||||||
country:
|
country: DE
|
||||||
flag: 🇩🇪
|
|
||||||
name: Germany
|
|
||||||
status:
|
status:
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
ddos_mitm_protection: Cloudflare
|
ddos_mitm_protection: Cloudflare
|
||||||
owner: https://github.com/moom0o
|
owner: https://github.com/moom0o
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
|
|
||||||
- url: https://ytb.trom.tf
|
- url: https://ytb.trom.tf
|
||||||
|
country: DE
|
||||||
country:
|
|
||||||
flag: 🇩🇪
|
|
||||||
name: Germany
|
|
||||||
status:
|
status:
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
ddos_mitm_protection:
|
ddos_mitm_protection:
|
||||||
owner: https://github.com/TROMsite
|
owner: https://github.com/TROMsite
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
|
|
||||||
- url: https://yt.cyberhost.uk/
|
- url: https://yt.cyberhost.uk/
|
||||||
country:
|
country: FI
|
||||||
flag: 🇫🇮
|
|
||||||
name: Finland
|
|
||||||
status:
|
status:
|
||||||
url: https://stats.uptimerobot.com/JlM0qH8Ygn
|
url: https://stats.uptimerobot.com/JlM0qH8Ygn
|
||||||
display_content: https://img.shields.io/uptimerobot/status/m788432154-c8801112193f349268ea6104
|
display_content: https://img.shields.io/uptimerobot/status/m788432154-c8801112193f349268ea6104
|
||||||
|
@ -250,86 +176,66 @@ instances:
|
||||||
ddos_mitm_protection:
|
ddos_mitm_protection:
|
||||||
owner: https://github.com/cyberhost-uk
|
owner: https://github.com/cyberhost-uk
|
||||||
modified:
|
modified:
|
||||||
is_modified: False
|
is_modified: false
|
||||||
source_url: null
|
source: null
|
||||||
|
|
||||||
|
|
||||||
- url: https://y.com.cm/
|
- url: https://y.com.cm/
|
||||||
country:
|
country: DE
|
||||||
flag: 🇩🇪
|
|
||||||
name: Germany
|
|
||||||
status:
|
status:
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
ddos_mitm_protection: Cloudflare
|
ddos_mitm_protection: Cloudflare
|
||||||
owner: https://github.com/Showfom
|
owner: https://github.com/Showfom
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
onion:
|
onion:
|
||||||
# Template onion instance
|
# Template onion instance
|
||||||
# - url: http://example.onion
|
# url: http://example.onion
|
||||||
# country:
|
# country: FI
|
||||||
# flag: 🇺🇸
|
|
||||||
# name: USA
|
|
||||||
# associated_clearnet_instance: https://example.com
|
# associated_clearnet_instance: https://example.com
|
||||||
# privacy_policy: https://privacy.example.com
|
# privacy_policy: https://privacy.example.com
|
||||||
# owner: https://github.com/example
|
# owner: https://github.com/example
|
||||||
# modified:
|
# modified:
|
||||||
# is_modified: False
|
# is_modified: false
|
||||||
# source_url: null
|
# source: null
|
||||||
|
|
||||||
- url: http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion
|
- url: http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion
|
||||||
country:
|
country: FI
|
||||||
flag: 🇫🇮
|
|
||||||
name: Finland
|
|
||||||
associated_clearnet_instance: https://invidious.snopyta.org
|
associated_clearnet_instance: https://invidious.snopyta.org
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
owner: https://github.com/Perflyst
|
owner: https://github.com/Perflyst
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
- url: http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion/
|
- url: http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion/
|
||||||
country:
|
country: IN
|
||||||
flag: 🇮🇳
|
|
||||||
name: India
|
|
||||||
associated_clearnet_instance: https://invidious.kavin.rocks
|
associated_clearnet_instance: https://invidious.kavin.rocks
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
owner: https://github.com/FireMasterK
|
owner: https://github.com/FireMasterK
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
- url: http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion/
|
- url: http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion/
|
||||||
country:
|
country: NL
|
||||||
flag: 🇳🇱
|
|
||||||
name: Netherlands
|
|
||||||
associated_clearnet_instance:
|
associated_clearnet_instance:
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
owner: https://github.com/tirz
|
owner: https://github.com/tirz
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
- url: http://grwp24hodrefzvjjuccrkw3mjq4tzhaaq32amf33dzpmuxe7ilepcmad.onion/
|
- url: http://grwp24hodrefzvjjuccrkw3mjq4tzhaaq32amf33dzpmuxe7ilepcmad.onion/
|
||||||
country:
|
country: US
|
||||||
flag: 🇺🇸
|
|
||||||
name: USA
|
|
||||||
associated_clearnet_instance: https://vid.puffyan.us
|
associated_clearnet_instance: https://vid.puffyan.us
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
owner: https://github.com/ItsSt0ne
|
owner: https://github.com/ItsSt0ne
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
||||||
- url: http://hpniueoejy4opn7bc4ftgazyqjoeqwlvh2uiku2xqku6zpoa4bf5ruid.onion/
|
- url: http://hpniueoejy4opn7bc4ftgazyqjoeqwlvh2uiku2xqku6zpoa4bf5ruid.onion/
|
||||||
country:
|
country: US
|
||||||
flag: 🇺🇸
|
|
||||||
name: USA
|
|
||||||
associated_clearnet_instance: https://invidious-us.kavin.rocks/
|
associated_clearnet_instance: https://invidious-us.kavin.rocks/
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
owner: https://github.com/FireMasterK
|
owner: https://github.com/FireMasterK
|
||||||
modified:
|
is_modified: false
|
||||||
is_modified: False
|
source: null
|
||||||
source_url: null
|
|
||||||
|
|
|
@ -1,92 +1,156 @@
|
||||||
"""Extremely quick and dirty module for creating a markdown file from the instances.yaml file"""
|
"""Extremely quick and dirty module for creating a markdown file from the instances.yaml file"""
|
||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
|
import pycountry
|
||||||
import yaml
|
import yaml
|
||||||
from mdutils.mdutils import MdUtils
|
from mdutils.mdutils import MdUtils
|
||||||
|
|
||||||
|
|
||||||
def create_table(table_data, instance_data):
|
class ColumnBuilder:
|
||||||
rows = []
|
def route(self, name):
|
||||||
for field, value in instance_data.items():
|
router = {
|
||||||
if value is None:
|
"url": self._create_url_column,
|
||||||
rows.append("")
|
"associated_clearnet_instance": self._create_url_column,
|
||||||
|
"country": self._create_country_column,
|
||||||
# Use markdown links for Addresses
|
"status": self._create_status_column,
|
||||||
elif field in ["url", "associated_clearnet_instance"]:
|
"is_modified": self._create_modified_column,
|
||||||
url = urlparse(value).hostname
|
"privacy_policy": self._create_privacy_policy_column,
|
||||||
rows.append(f"[{url}]({value})")
|
"ddos_mitm_protection": self.ddos_protection,
|
||||||
|
"owner": self._create_owner_column
|
||||||
|
}
|
||||||
|
|
||||||
elif field == "status" and value is not None:
|
return router[name]
|
||||||
if value.get("display_content_is_image"):
|
|
||||||
rows.append(f"[![{value['display_content_image_fallback']}]({value['display_content']})]({value['url']})")
|
|
||||||
else:
|
|
||||||
rows.append(f"[{value['display_content']}]({value['url']})")
|
|
||||||
|
|
||||||
elif field == "country" and value:
|
|
||||||
rows.append(f"{value['flag']} {value['name']}")
|
|
||||||
|
|
||||||
elif field == "modified":
|
@staticmethod
|
||||||
if value.get("is_modified"):
|
def _create_url_column(url):
|
||||||
rows.append(f"[Yes]({value['source_url']})")
|
if not url:
|
||||||
else:
|
return ""
|
||||||
rows.append("No")
|
|
||||||
|
|
||||||
# We're going to use a markdown link here
|
hostname = urlparse(url).hostname
|
||||||
elif field == "privacy_policy":
|
return f"[{hostname}]({url})"
|
||||||
rows.append(f"[Here]({value})")
|
|
||||||
|
|
||||||
# Handle author name
|
@staticmethod
|
||||||
elif field == "owner":
|
def _create_country_column(country_code):
|
||||||
# Assuming github url
|
country_name = pycountry.countries.get(alpha_2=country_code).name
|
||||||
author_name = value.split("/")
|
# https://stackoverflow.com/a/42235254
|
||||||
rows.append(f"[@{author_name[-1]}]({value})")
|
flag = (lambda s, e: chr(ord(s.upper()) - 0x41 + 0x1F1E6) +
|
||||||
|
chr(ord(e.upper()) - 0x41 + 0x1F1E6)
|
||||||
|
)(*list(country_code))
|
||||||
|
|
||||||
|
return f"{flag} {country_name}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _create_status_column(status_dict):
|
||||||
|
if not status_dict:
|
||||||
|
return ""
|
||||||
|
|
||||||
|
status_url = status_dict["url"]
|
||||||
|
display_content = status_dict["display_content"]
|
||||||
|
|
||||||
|
if status_dict.get("display_content_is_image"):
|
||||||
|
fallback = status_dict["display_content_image_fallback"]
|
||||||
|
|
||||||
|
return f"[]({status_url})"
|
||||||
else:
|
else:
|
||||||
rows.append(value)
|
return f"[{display_content}]({status_url})"
|
||||||
|
|
||||||
table_data.extend(rows)
|
@staticmethod
|
||||||
|
def _create_modified_column(is_modified, source):
|
||||||
|
if is_modified:
|
||||||
|
return f"[Yes]({source})"
|
||||||
|
return f"No"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _create_privacy_policy_column(privacy):
|
||||||
|
return f"[Here]({privacy})"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def ddos_protection(ddos):
|
||||||
|
return f"{ddos}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _create_owner_column(owner):
|
||||||
|
author_name = owner.split("/")
|
||||||
|
return f"[@{author_name[-1]}]({owner})"
|
||||||
|
|
||||||
|
|
||||||
|
class MDInstanceListBuilder:
|
||||||
|
def __init__(self, instance_list_config):
|
||||||
|
self.config = instance_list_config
|
||||||
|
self.md = MdUtils(file_name='Invidious-Instances.md')
|
||||||
|
self.builder = ColumnBuilder()
|
||||||
|
|
||||||
|
def _generate_heading(self):
|
||||||
|
self.md.new_header(level=1, title='Public Instances')
|
||||||
|
self.md.new_paragraph("Uptime History: [uptime.invidious.io](https://uptime.invidious.io)")
|
||||||
|
self.md.new_paragraph("Instances API: [api.invidious.io](api.invidious.io)")
|
||||||
|
|
||||||
|
def _create_instance_tables(self):
|
||||||
|
# HTTPS
|
||||||
|
self.md.new_header(level=1, title='Instances list')
|
||||||
|
rows = ["Address", "Country", "Status", "Privacy policy", "DDos Protection / MITM", "Owner", "Modified"]
|
||||||
|
for instance in self.config["instances"]["https"]:
|
||||||
|
rows.extend(self._create_http_row(instance))
|
||||||
|
self.md.new_table(columns=7, rows=len(self.config["instances"]["https"]) + 1, text=rows, text_align='center')
|
||||||
|
|
||||||
|
self.md.new_line()
|
||||||
|
|
||||||
|
# Onion
|
||||||
|
self.md.new_header(level=1, title='Onion instances list')
|
||||||
|
rows = ["Address", "Country", "Associated clearnet instance", "Privacy policy", "Owner", "Modified"]
|
||||||
|
for instance in self.config["instances"]["onion"]:
|
||||||
|
rows.extend(self._create_onion_row(instance))
|
||||||
|
self.md.new_table(columns=6, rows=len(self.config["instances"]["onion"]) + 1, text=rows, text_align='center')
|
||||||
|
|
||||||
|
def _create_prerequisite_list(self):
|
||||||
|
self.md.new_header(level=2, title='Prerequisites')
|
||||||
|
self.md.new_list(self.config["adding_instance"]["prerequisites"])
|
||||||
|
self.md.new_line()
|
||||||
|
|
||||||
|
def _create_direction_list(self):
|
||||||
|
self.md.new_header(level=2, title='Directions')
|
||||||
|
self.md.new_list(self.config["adding_instance"]["directions"], marked_with="1")
|
||||||
|
self.md.create_md_file()
|
||||||
|
|
||||||
|
def _create_http_row(self, instance):
|
||||||
|
return [
|
||||||
|
self.builder.route("url")(instance["url"]),
|
||||||
|
self.builder.route("country")(instance["country"]),
|
||||||
|
self.builder.route("status")(instance["status"]),
|
||||||
|
self.builder.route("privacy_policy")(instance["privacy_policy"]),
|
||||||
|
self.builder.route("ddos_mitm_protection")(instance["ddos_mitm_protection"]),
|
||||||
|
self.builder.route("owner")(instance["owner"]),
|
||||||
|
self.builder.route("is_modified")(instance["is_modified"], instance["source"])
|
||||||
|
]
|
||||||
|
|
||||||
|
def _create_onion_row(self, instance):
|
||||||
|
return [
|
||||||
|
self.builder.route("url")(instance["url"]),
|
||||||
|
self.builder.route("country")(instance["country"]),
|
||||||
|
self.builder.route("associated_clearnet_instance")(instance["associated_clearnet_instance"]),
|
||||||
|
self.builder.route("privacy_policy")(instance["privacy_policy"]),
|
||||||
|
self.builder.route("owner")(instance["owner"]),
|
||||||
|
self.builder.route("is_modified")(instance["is_modified"], instance["source"])
|
||||||
|
]
|
||||||
|
|
||||||
|
def create(self):
|
||||||
|
self._generate_heading()
|
||||||
|
self.md.new_line()
|
||||||
|
|
||||||
|
self._create_instance_tables()
|
||||||
|
self.md.new_line()
|
||||||
|
|
||||||
|
# Instance adding directions and prerequisites
|
||||||
|
self.md.new_header(level=1, title='Adding your instance')
|
||||||
|
self._create_prerequisite_list()
|
||||||
|
self.md.new_line()
|
||||||
|
self._create_direction_list()
|
||||||
|
|
||||||
|
self.md.create_md_file()
|
||||||
|
|
||||||
|
|
||||||
with open("instances.yaml") as configuration_yaml:
|
with open("instances.yaml") as configuration_yaml:
|
||||||
data = yaml.safe_load(configuration_yaml)
|
data = yaml.safe_load(configuration_yaml)
|
||||||
|
|
||||||
instance_list = data["instances"]
|
md_builder = MDInstanceListBuilder(data)
|
||||||
|
md_builder.create()
|
||||||
# Initial information
|
|
||||||
md_instance_list = MdUtils(file_name='Invidious-Instances.md')
|
|
||||||
md_instance_list.new_header(level=1, title='Public Instances')
|
|
||||||
md_instance_list.new_paragraph("Uptime History: [uptime.invidious.io](https://uptime.invidious.io)")
|
|
||||||
md_instance_list.new_paragraph("Instances API: [api.invidious.io](api.invidious.io)")
|
|
||||||
|
|
||||||
|
|
||||||
# Clearnet instances
|
|
||||||
md_instance_list.new_header(level=1, title='Instances list')
|
|
||||||
table_data = ["Address", "Country", "Status", "Privacy policy", "DDos Protection / MITM", "Owner", "Modified"]
|
|
||||||
for instance_data in instance_list["https"]:
|
|
||||||
create_table(table_data, instance_data)
|
|
||||||
|
|
||||||
md_instance_list.new_line()
|
|
||||||
md_instance_list.new_table(columns=7, rows=len(instance_list["https"]) + 1, text=table_data, text_align='center')
|
|
||||||
|
|
||||||
|
|
||||||
# Onion instances
|
|
||||||
md_instance_list.new_header(level=1, title='Tor onion instances list')
|
|
||||||
table_data = ["Address", "Country", "Associated clearnet instance", "Privacy policy", "Owner", "Modified"]
|
|
||||||
for instance_data in instance_list["onion"]:
|
|
||||||
create_table(table_data, instance_data)
|
|
||||||
|
|
||||||
md_instance_list.new_line()
|
|
||||||
md_instance_list.new_table(columns=6, rows=len(instance_list["onion"]) + 1, text=table_data, text_align='center')
|
|
||||||
|
|
||||||
|
|
||||||
# Instance adding directions and prerequisites
|
|
||||||
md_instance_list.new_header(level=1, title='Adding your instance')
|
|
||||||
|
|
||||||
# Prerequisites
|
|
||||||
md_instance_list.new_header(level=2, title='Prerequisites')
|
|
||||||
md_instance_list.new_list(data["adding_instance"]["prerequisites"])
|
|
||||||
md_instance_list.new_line()
|
|
||||||
|
|
||||||
# Directions
|
|
||||||
md_instance_list.new_header(level=2, title='Directions')
|
|
||||||
md_instance_list.new_list(data["adding_instance"]["directions"], marked_with="1")
|
|
||||||
md_instance_list.create_md_file()
|
|
|
@ -1,2 +1,3 @@
|
||||||
mdutils==1.3.0
|
mdutils==1.3.0
|
||||||
|
pycountry==20.7.3
|
||||||
PyYAML==5.4.1
|
PyYAML==5.4.1
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue