2023-11-12 16:42:57 +00:00
|
|
|
import re
|
|
|
|
import os
|
|
|
|
|
2023-12-18 11:36:23 +00:00
|
|
|
|
2023-11-12 18:28:49 +00:00
|
|
|
def beginners_guide(text: str):
|
2023-12-18 11:36:23 +00:00
|
|
|
text = re.sub("\[TOC\]\n", "", text, flags=re.MULTILINE)
|
|
|
|
text = re.sub("\*\*Table of Contents\*\*\n\[TOC2\]\n", "", text, flags=re.MULTILINE)
|
|
|
|
text = re.sub(
|
|
|
|
"# -> \*\*\*Beginners Guide to Piracy\*\*\* <-\n", "", text, flags=re.MULTILINE
|
|
|
|
)
|
2023-11-12 16:42:57 +00:00
|
|
|
text = re.sub(r"!!!note\s(.+?)\n", r":::info\n\1\n:::\n", text, flags=re.MULTILINE)
|
|
|
|
text = re.sub(r"!!!info\s(.+?)\n", r":::info\n\1\n:::\n", text, flags=re.MULTILINE)
|
2023-12-18 11:36:23 +00:00
|
|
|
text = re.sub(
|
|
|
|
r"!!!warning\s(.+?)\n", r":::warning\n\1\n:::\n", text, flags=re.MULTILINE
|
|
|
|
)
|
2023-11-12 16:42:57 +00:00
|
|
|
text = re.sub(r">\s(.+?)\n", r"> \1\n\n", text, flags=re.MULTILINE)
|
2023-12-18 11:36:23 +00:00
|
|
|
text = re.sub(
|
|
|
|
"\*\*\[\^ Back to Top\]\(#beginners-guide-to-piracy\)\*\*",
|
|
|
|
"",
|
|
|
|
text,
|
|
|
|
flags=re.MULTILINE,
|
|
|
|
)
|
2023-11-12 16:42:57 +00:00
|
|
|
text = re.sub(r"!!!\s(.+?)\n", r":::info\n\1\n:::\n", text, flags=re.MULTILINE)
|
|
|
|
text = re.sub("\n\*\*\[", "\n* **[", text, flags=re.MULTILINE)
|
2023-12-18 11:36:23 +00:00
|
|
|
text = re.sub(r">(.*)\n\n(.*)", r":::details \1\n\2\n:::", text, flags=re.MULTILINE)
|
2023-11-12 16:42:57 +00:00
|
|
|
return text
|
|
|
|
|
2023-12-18 11:36:23 +00:00
|
|
|
|
2023-11-12 18:28:49 +00:00
|
|
|
def individual(text: str):
|
2023-12-18 11:36:23 +00:00
|
|
|
# special cases of link not replaced correctly
|
|
|
|
text = re.sub(
|
|
|
|
"/storage/#encode--decode_urls", "/storage/#encode--decode-urls", text
|
|
|
|
)
|
|
|
|
text = re.sub("/base64/#do-k-ument", "/base64/#do_k_ument", text)
|
|
|
|
text = re.sub("/devtools/#machine-learning2", "/devtools/#machine-learning-1", text)
|
2023-11-12 16:42:57 +00:00
|
|
|
|
2023-12-18 11:36:23 +00:00
|
|
|
# Base64-decoder script link
|
|
|
|
text = re.sub(
|
|
|
|
"(.+?) site or extension\.\n",
|
|
|
|
"Click on the texts to copy them decoded.\n",
|
|
|
|
text,
|
|
|
|
flags=re.MULTILINE,
|
|
|
|
)
|
2023-11-12 16:42:57 +00:00
|
|
|
|
|
|
|
return text
|
|
|
|
|
2023-12-18 11:36:23 +00:00
|
|
|
|
2023-11-12 18:28:49 +00:00
|
|
|
def general(text: str):
|
2023-12-18 11:36:23 +00:00
|
|
|
text = re.sub("\*\*\*\n\n", "", text, flags=re.MULTILINE)
|
|
|
|
text = re.sub("\*\*\*\n", "", text, flags=re.MULTILINE)
|
|
|
|
|
|
|
|
text = re.sub("# ►", "##", text)
|
|
|
|
text = re.sub("## ▷", "###", text)
|
|
|
|
text = re.sub("####", "###", text)
|
|
|
|
|
|
|
|
text = re.sub(
|
|
|
|
r"^\*\*Note\*\* - (.+)$", r":::tip\n\1\n:::", text, flags=re.MULTILINE
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
r"^\* \*\*Note\*\* - (.+)$", r":::tip\n\1\n:::", text, flags=re.MULTILINE
|
|
|
|
)
|
|
|
|
text = re.sub(r"^Note - (.+)$", r":::tip\n\1\n:::", text, flags=re.MULTILINE)
|
|
|
|
text = re.sub(
|
|
|
|
r"^\*\*Warning\*\* - (.+)$", r":::warning\n\1\n:::", text, flags=re.MULTILINE
|
|
|
|
)
|
|
|
|
|
|
|
|
text = re.sub(r"^\*\s([^*])", "- \\1", text, 0, re.MULTILINE)
|
2023-11-12 16:42:57 +00:00
|
|
|
return text
|
|
|
|
|
2023-12-18 11:36:23 +00:00
|
|
|
|
2023-11-12 18:28:49 +00:00
|
|
|
def remove_backtowiki_toc(text):
|
2023-12-18 11:36:23 +00:00
|
|
|
text = re.sub(
|
|
|
|
"\*\*\[◄◄ Back to Wiki Index\]\(https://www\.reddit\.com/r/FREEMEDIAHECKYEAH/wiki/index\)\*\*\n",
|
|
|
|
"",
|
|
|
|
text,
|
|
|
|
flags=re.MULTILINE,
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"\*\*\[◄◄ Back to Wiki Index\]\(https://www\.reddit\.com/r/FREEMEDIAHECKYEAH/wiki/tools-index\)\*\*\n",
|
|
|
|
"",
|
|
|
|
text,
|
|
|
|
flags=re.MULTILINE,
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
r"\*\*\[Table of Contents\]\(https?:\/\/.*?ibb\.co.*\)\*\* - For mobile users\n",
|
|
|
|
"",
|
|
|
|
text,
|
|
|
|
flags=re.MULTILINE,
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"\*\*\*\n\*\*\*\n\*\*\*\n\*\*\*\n\n\n\*\*\*\n\*\*\*\n\n",
|
|
|
|
"",
|
|
|
|
text,
|
|
|
|
flags=re.MULTILINE,
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"\*\*\*\n\*\*\*\n\*\*\*\n\*\*\*\n\n\n\*\*\*\n\*\*\* \n\n",
|
|
|
|
"",
|
|
|
|
text,
|
|
|
|
flags=re.MULTILINE,
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"\*\*\*\n\*\*\*\n\*\*\*\n\n\n\*\*\*\n\*\*\*\n\n", "", text, flags=re.MULTILINE
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"\*\*\*\n\*\*\*\n\*\*\*\n\*\*\*\n\n\n\*\*\*\n\n", "", text, flags=re.MULTILINE
|
|
|
|
)
|
|
|
|
text = re.sub("\*\*\*\n\*\*\*\n\n\n\*\*\*\n\n", "", text, flags=re.MULTILINE)
|
2023-11-12 16:42:57 +00:00
|
|
|
return text
|
|
|
|
|
2023-12-18 11:36:23 +00:00
|
|
|
|
2023-11-12 18:28:49 +00:00
|
|
|
def replace_pages(text):
|
2023-12-18 11:36:23 +00:00
|
|
|
text = re.sub("https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/ai", "/ai", text)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/adblock-vpn-privacy",
|
|
|
|
"/adblockvpnguide",
|
|
|
|
text,
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/android",
|
|
|
|
"/android-iosguide",
|
|
|
|
text,
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/games",
|
|
|
|
"/gamingpiracyguide",
|
|
|
|
text,
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/reading",
|
|
|
|
"/readingpiracyguide",
|
|
|
|
text,
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/download",
|
|
|
|
"/downloadpiracyguide",
|
|
|
|
text,
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/torrent",
|
|
|
|
"/torrentpiracyguide",
|
|
|
|
text,
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/edu", "/edupiracyguide", text
|
|
|
|
)
|
|
|
|
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/system-tools",
|
|
|
|
"/system-tools",
|
|
|
|
text,
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/file-tools",
|
|
|
|
"/file-tools",
|
|
|
|
text,
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/internet-tools",
|
|
|
|
"/internet-tools",
|
|
|
|
text,
|
|
|
|
)
|
2023-12-19 18:44:05 +00:00
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/social-media",
|
|
|
|
"/social-media-tools",
|
|
|
|
text,
|
|
|
|
)
|
2023-12-18 11:36:23 +00:00
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/text-tools",
|
|
|
|
"/text-tools",
|
|
|
|
text,
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/video-tools",
|
|
|
|
"/video-tools",
|
|
|
|
text,
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/audio-tools",
|
|
|
|
"/audio-tools",
|
|
|
|
text,
|
|
|
|
)
|
|
|
|
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/video",
|
|
|
|
"/videopiracyguide",
|
|
|
|
text,
|
|
|
|
) # This replace has to go after the /video-tools replace
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/audio",
|
|
|
|
"/audiopiracyguide",
|
|
|
|
text,
|
|
|
|
) # This replace has to go after the /audio-tools replace
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/linux", "/linuxguide", text
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/non-eng", "/non-english", text
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/misc", "/miscguide", text
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/storage", "/storage", text
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/dev-tools", "/devtools", text
|
|
|
|
)
|
|
|
|
text = re.sub(
|
|
|
|
"https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/img-tools", "/img-tools", text
|
|
|
|
)
|
|
|
|
|
|
|
|
text = re.sub(
|
|
|
|
"https://github.com/nbats/FMHYedit/blob/main/base64.md#", "/base64/#", text
|
|
|
|
)
|
2023-11-12 16:42:57 +00:00
|
|
|
|
|
|
|
return text
|
|
|
|
|
2023-12-18 11:36:23 +00:00
|
|
|
|
2023-11-12 18:28:49 +00:00
|
|
|
def replace_underscore(text):
|
2023-12-18 11:36:23 +00:00
|
|
|
pattern = r"(/#[\w\-]+(?:_[\w]+)*)"
|
2023-11-12 16:42:57 +00:00
|
|
|
matches = re.findall(pattern, text)
|
|
|
|
for match in matches:
|
2023-12-18 11:36:23 +00:00
|
|
|
replacement = match.replace("_", "-")
|
2023-11-12 16:42:57 +00:00
|
|
|
text = text.replace(match, replacement)
|
|
|
|
return text
|
|
|
|
|
2023-12-18 11:36:23 +00:00
|
|
|
|
2023-11-12 16:42:57 +00:00
|
|
|
def reformat_subsections(text):
|
2023-12-18 11:36:23 +00:00
|
|
|
text = re.sub("/#wiki_", "/#", text)
|
|
|
|
text = re.sub("#wiki_", "/#", text)
|
|
|
|
text = re.sub(".25BA_", "", text)
|
|
|
|
text = re.sub(".25B7_", "", text)
|
|
|
|
text = re.sub("_.2F_", "-", text)
|
2023-11-12 18:28:49 +00:00
|
|
|
text = replace_underscore(text)
|
2023-11-12 16:42:57 +00:00
|
|
|
return text
|
|
|
|
|
2023-12-18 11:36:23 +00:00
|
|
|
|
2023-11-12 18:28:49 +00:00
|
|
|
def replace_urls(text):
|
|
|
|
text = remove_backtowiki_toc(text)
|
|
|
|
text = replace_pages(text)
|
2023-11-12 16:42:57 +00:00
|
|
|
text = reformat_subsections(text)
|
2023-12-18 11:36:23 +00:00
|
|
|
text = re.sub("/#", "#", text)
|
2023-11-12 18:28:49 +00:00
|
|
|
text = general(text)
|
|
|
|
text = individual(text)
|
2023-11-12 16:42:57 +00:00
|
|
|
return text
|
|
|
|
|
2023-12-18 11:36:23 +00:00
|
|
|
|
2023-11-12 18:28:49 +00:00
|
|
|
def main():
|
2023-12-18 11:36:23 +00:00
|
|
|
files = os.listdir(".")
|
2023-11-12 16:42:57 +00:00
|
|
|
for file in files:
|
2023-12-18 11:36:23 +00:00
|
|
|
if file.endswith(".md"):
|
|
|
|
with open(file, "r", encoding="utf-8") as f:
|
2023-11-12 16:42:57 +00:00
|
|
|
content = f.read()
|
2023-11-12 18:28:49 +00:00
|
|
|
content = replace_urls(content)
|
2023-11-12 16:42:57 +00:00
|
|
|
if file == "Beginners-Guide.md":
|
2023-11-12 18:28:49 +00:00
|
|
|
content = beginners_guide(content)
|
2023-12-18 11:36:23 +00:00
|
|
|
with open(file, "w", encoding="utf-8") as f2:
|
2023-11-12 16:42:57 +00:00
|
|
|
f2.write(content)
|
|
|
|
|
2023-12-18 11:36:23 +00:00
|
|
|
|
2023-11-12 18:28:49 +00:00
|
|
|
main()
|
2023-12-18 11:36:23 +00:00
|
|
|
|
|
|
|
what = """
|
|
|
|
![meow](https://files.catbox.moe/901c40.gif)
|
|
|
|
"""
|
|
|
|
|
|
|
|
with open("meow.md", "w", encoding="utf-8") as file:
|
|
|
|
file.write(what)
|