aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/conventionalrp/core
diff options
context:
space:
mode:
authorHsiangNianian <i@jyunko.cn>2025-03-13 01:01:20 +0800
committerHsiangNianian <i@jyunko.cn>2025-03-13 01:01:20 +0800
commit80b74f79dfbfa9afb845172a5ea84110d75f1bc8 (patch)
tree361dcb055de78b50d82619646fde28fa618f9507 /src/conventionalrp/core
parentdd873e954a92d0e3209fe98b034570b47c859589 (diff)
downloadconventional_role_play-80b74f79dfbfa9afb845172a5ea84110d75f1bc8.tar.gz
conventional_role_play-80b74f79dfbfa9afb845172a5ea84110d75f1bc8.zip
refactor(project)!: first implementation of the Conventional Role Play SDK with core components, renderers, extractors, and example usage.
Diffstat (limited to 'src/conventionalrp/core')
-rw-r--r--src/conventionalrp/core/__init__.py4
-rw-r--r--src/conventionalrp/core/parser.py15
-rw-r--r--src/conventionalrp/core/processor.py39
3 files changed, 58 insertions, 0 deletions
diff --git a/src/conventionalrp/core/__init__.py b/src/conventionalrp/core/__init__.py
new file mode 100644
index 0000000..7097e41
--- /dev/null
+++ b/src/conventionalrp/core/__init__.py
@@ -0,0 +1,4 @@
+# FILE: /trpg-log-processor/trpg-log-processor/src/trpg_log_processor/core/__init__.py
+"""
+This file initializes the core module of the trpg_log_processor SDK.
+""" \ No newline at end of file
diff --git a/src/conventionalrp/core/parser.py b/src/conventionalrp/core/parser.py
new file mode 100644
index 0000000..32b1b9f
--- /dev/null
+++ b/src/conventionalrp/core/parser.py
@@ -0,0 +1,15 @@
+class Parser:
+ def __init__(self):
+ self.rules = []
+
+ def load_rules(self, rules):
+ """Load parsing rules."""
+ self.rules = rules
+
+ def parse_log(self, log):
+ """Parse the TRPG log based on loaded rules."""
+ parsed_data = []
+ for rule in self.rules:
+ # Implement rule-based parsing logic here
+ pass
+ return parsed_data \ No newline at end of file
diff --git a/src/conventionalrp/core/processor.py b/src/conventionalrp/core/processor.py
new file mode 100644
index 0000000..40033cf
--- /dev/null
+++ b/src/conventionalrp/core/processor.py
@@ -0,0 +1,39 @@
+class Processor:
+ def __init__(self, rules):
+ self.rules = rules
+
+ def process_tokens(self, tokens):
+ processed_data = []
+ for token in tokens:
+ processed_data.append(self.apply_rules(token))
+ return processed_data
+
+ def apply_rules(self, token):
+ # Implement rule application logic here
+ for rule in self.rules:
+ if rule.matches(token):
+ return rule.apply(token)
+ return token
+
+ def generate_output(self, processed_data, format_type):
+ # Implement output generation logic based on format_type
+ if format_type == 'json':
+ return self.generate_json_output(processed_data)
+ elif format_type == 'html':
+ return self.generate_html_output(processed_data)
+ elif format_type == 'markdown':
+ return self.generate_markdown_output(processed_data)
+ else:
+ raise ValueError("Unsupported format type")
+
+ def generate_json_output(self, processed_data):
+ import json
+ return json.dumps(processed_data)
+
+ def generate_html_output(self, processed_data):
+ # Implement HTML output generation
+ return "<html><body>" + "".join(f"<p>{data}</p>" for data in processed_data) + "</body></html>"
+
+ def generate_markdown_output(self, processed_data):
+ # Implement Markdown output generation
+ return "\n".join(f"- {data}" for data in processed_data) \ No newline at end of file