-
-
Save D-Brox/8cfc8a8a11bd8f9034f6892274afb1c7 to your computer and use it in GitHub Desktop.
Replace classes for all .scss or .css themes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import glob | |
from tqdm import tqdm | |
from pathlib import Path | |
from urllib.request import urlopen | |
import shutil | |
keep_old = True | |
use_old = True | |
fix_quickcss = True | |
default_path = True | |
if default_path: | |
powercord_path = os.path.join(os.path.expanduser('~'),"powercord") | |
else: | |
powercord_path = "" # replace with custom powercord folder location | |
themes_path = os.path.join(powercord_path,"src","Powercord","themes") # you can change this if you want to run in other places | |
path_list = glob.glob(f"{themes_path}/**/*.*css",recursive=True) | |
with urlopen("https://gist.githubusercontent.com/D-Brox/5ea0d9cec29c4921a9e397163f447646/raw/classes2.txt") as f: | |
raw_classes = f.read().decode("utf8").split("\n") | |
classes = [i.split(" = ") for i in raw_classes] | |
remote_imports = [] | |
def replace_classes(file_path): | |
if use_old and Path(file_path+".old").is_file(): | |
css_path = file_path+".old" | |
else: | |
css_path = file_path | |
if keep_old and not Path(file_path+".old").is_file(): | |
shutil.copy(file_path, file_path+".old") | |
try: | |
with open(css_path,"r",encoding="utf8") as f: | |
css = f.read() | |
except: | |
print("Unable to read "+ file_path.split("/").split("\\")[-1]+" due to codec issues") | |
return | |
if "@import url" in css: | |
remote_imports.append(file_path) | |
for class_pair in classes: | |
css = css.replace(class_pair[0],class_pair[1]) | |
with open(file_path,"w",encoding="utf8") as f: | |
f.write(css) | |
for file_path in tqdm(path_list): | |
replace_classes(file_path) | |
quickcss_path = f"{powercord_path}/src/Powercord/plugins/pc-moduleManager/quickcss.css" | |
if fix_quickcss and Path(quickcss_path).is_file(): | |
replace_classes(quickcss_path) | |
if remote_imports: | |
print("This is script is unable to fix css from remote imports") | |
print("The following files contain remote imports:") | |
[print(i.replace(themes_path+"/","")) for i in remote_imports] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
you absolute MADLAD!
Oh also you should of noted that the script need to do
pip install tqdm
if it errors about it.