diff --git a/README.md b/README.md index 13b2fab..710be35 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ CERT_KEY=cert.key CERT_DIR=certs/ OPENSSL_BINPATH=openssl CLIENT_ENCODING=utf-8 +USE_EXTENSIONS=wayback.Wayback,bio.PyBio ``` - (Optional) Create a certificate for SSL decryption diff --git a/base.py b/base.py index 1d121e1..47fcb50 100644 --- a/base.py +++ b/base.py @@ -7,7 +7,7 @@ # Namyheon Go (Catswords Research) # https://github.com/gnh1201/caterpillar # Created at: 2024-05-20 -# Updated at: 2024-07-06 +# Updated at: 2024-07-09 # import hashlib @@ -72,13 +72,16 @@ class Extension(): cls.buffer_size = _buffer_size @classmethod - def register(cls, module_path, class_name): + def register(cls, s): + module_name, class_name = s.strip().split('.')[0:2] + module_path = 'plugins.' + module_name + try: module = importlib.import_module(module_path) _class = getattr(module, class_name) cls.extensions.append(_class()) except (ImportError, AttributeError) as e: - raise ImportError(class_name + " in " + module_path) + raise ImportError(class_name + " in the extension " + module_name) @classmethod def get_filters(cls): diff --git a/server.py b/server.py index 317e8bb..b5679c8 100644 --- a/server.py +++ b/server.py @@ -7,7 +7,7 @@ # Namyheon Go (Catswords Research) # https://github.com/gnh1201/caterpillar # Created at: 2022-10-06 -# Updated at: 2024-07-04 +# Updated at: 2024-07-09 # import argparse @@ -47,6 +47,7 @@ try: client_encoding = config('CLIENT_ENCODING', default='utf-8') local_domain = config('LOCAL_DOMAIN', default='') proxy_pass = config('PROXY_PASS', default='') + use_extensions = config('USE_EXTENSIONS', default='') except KeyboardInterrupt: print("\n[*] User has requested an interrupt") print("[*] Application Exiting.....") @@ -498,10 +499,8 @@ def start(): #Main Program if __name__== "__main__": # load extensions - #Extension.register("plugins.fediverse", "Fediverse") - #Extension.register("plugins.container", "Container") - Extension.register("plugins.wayback", "Wayback") - #Extension.register("plugins.bio", "PyBio") + for s in use_extensions.split(','): + Extension.register(s) - # start Caterpillar + # start Caterpillar start() diff --git a/web.py b/web.py index 857e360..6e4affa 100644 --- a/web.py +++ b/web.py @@ -7,7 +7,7 @@ # Namyheon Go (Catswords Research) # https://github.com/gnh1201/caterpillar # Created at: 2024-05-20 -# Updated at: 2024-07-06 +# Updated at: 2024-07-10 # from flask import Flask, request, redirect, url_for, render_template @@ -94,6 +94,7 @@ if __name__ == "__main__": Extension.set_protocol('http') # load extensions - #Extension.register("plugins.YOUR_OWN_MODULE_NAME", "YOUR_OWN_CLASS_NAME"); + for s in use_extensions.split(','): + Extension.register(s) app.run(debug=True, host='0.0.0.0', port=listening_port)