Add syntax for comments <|...|>

This commit is contained in:
Gnome Ann 2021-11-20 01:27:57 -05:00
parent 409be6645a
commit c2ed31de28
3 changed files with 13 additions and 4 deletions

View File

@ -123,6 +123,8 @@ class vars:
regex_sl = re.compile(r'\n*(?<=.) *\n(.|\n)*') # Pattern for limiting the output to a single line regex_sl = re.compile(r'\n*(?<=.) *\n(.|\n)*') # Pattern for limiting the output to a single line
acregex_ai = re.compile(r'\n* *>(.|\n)*') # Pattern for matching adventure actions from the AI so we can remove them acregex_ai = re.compile(r'\n* *>(.|\n)*') # Pattern for matching adventure actions from the AI so we can remove them
acregex_ui = re.compile(r'^ *(&gt;.*)$', re.MULTILINE) # Pattern for matching actions in the HTML-escaped story so we can apply colouring, etc (make sure to encase part to format in parentheses) acregex_ui = re.compile(r'^ *(&gt;.*)$', re.MULTILINE) # Pattern for matching actions in the HTML-escaped story so we can apply colouring, etc (make sure to encase part to format in parentheses)
comregex_ui = re.compile(r'<\|(?:.|\n)*?\|>') # Pattern for matching comments to remove them before sending them to the AI
comregex_ui = re.compile(r'(&lt;\|(?:.|\n)*?\|&gt;)') # Pattern for matching comments in the editor
actionmode = 1 actionmode = 1
adventure = False adventure = False
dynamicscan = False dynamicscan = False
@ -1270,7 +1272,7 @@ def calcsubmitbudget(actionlen, winfo, mem, anotetxt, actions):
lnanote = 0 # Placeholder for Author's Note length lnanote = 0 # Placeholder for Author's Note length
# Calculate token budget # Calculate token budget
prompttkns = tokenizer.encode(vars.prompt) prompttkns = tokenizer.encode(vars.comregex_ai.sub('', vars.prompt))
lnprompt = len(prompttkns) lnprompt = len(prompttkns)
memtokens = tokenizer.encode(mem) memtokens = tokenizer.encode(mem)
@ -1292,7 +1294,7 @@ def calcsubmitbudget(actionlen, winfo, mem, anotetxt, actions):
if(actionlen == 0): if(actionlen == 0):
# First/Prompt action # First/Prompt action
subtxt = vars.memory + winfo + anotetxt + vars.prompt subtxt = vars.memory + winfo + anotetxt + vars.comregex_ai.sub('', vars.prompt)
lnsub = lnsp + lnmem + lnwi + lnprompt + lnanote lnsub = lnsp + lnmem + lnwi + lnprompt + lnanote
return subtxt, lnsub+1, lnsub+vars.genamt return subtxt, lnsub+1, lnsub+vars.genamt
else: else:
@ -1305,7 +1307,7 @@ def calcsubmitbudget(actionlen, winfo, mem, anotetxt, actions):
# Get most recent action tokens up to our budget # Get most recent action tokens up to our budget
n = 0 n = 0
for key in reversed(actions): for key in reversed(actions):
chunk = actions[key] chunk = vars.comregex_ai.sub('', actions[key])
if(budget <= 0): if(budget <= 0):
break break
@ -1782,6 +1784,7 @@ def refresh_story():
item = vars.actions[idx] item = vars.actions[idx]
idx += 1 idx += 1
item = html.escape(item) item = html.escape(item)
item = vars.comregex_ui.sub(lambda m: '\n'.join('<comment>' + l + '</comment>' for l in m.group().split('\n')), item) # Add special formatting to comments
item = vars.acregex_ui.sub('<action>\\1</action>', item) # Add special formatting to adventure actions item = vars.acregex_ui.sub('<action>\\1</action>', item) # Add special formatting to adventure actions
text_parts.extend(('<chunk n="', str(idx), '" id="n', str(idx), '" tabindex="-1">', item, '</chunk>')) text_parts.extend(('<chunk n="', str(idx), '" id="n', str(idx), '" tabindex="-1">', item, '</chunk>'))
emit('from_server', {'cmd': 'updatescreen', 'gamestarted': vars.gamestarted, 'data': formatforhtml(''.join(text_parts))}, broadcast=True) emit('from_server', {'cmd': 'updatescreen', 'gamestarted': vars.gamestarted, 'data': formatforhtml(''.join(text_parts))}, broadcast=True)
@ -1809,6 +1812,7 @@ def update_story_chunk(idx: Union[int, str]):
text = vars.actions[idx - 1] text = vars.actions[idx - 1]
item = html.escape(text) item = html.escape(text)
item = vars.comregex_ui.sub(lambda m: '\n'.join('<comment>' + l + '</comment>' for l in m.group().split('\n')), item) # Add special formatting to comments
item = vars.acregex_ui.sub('<action>\\1</action>', item) # Add special formatting to adventure actions item = vars.acregex_ui.sub('<action>\\1</action>', item) # Add special formatting to adventure actions
chunk_text = f'<chunk n="{idx}" id="n{idx}" tabindex="-1">{formatforhtml(item)}</chunk>' chunk_text = f'<chunk n="{idx}" id="n{idx}" tabindex="-1">{formatforhtml(item)}</chunk>'

View File

@ -11,6 +11,11 @@ chunk {
font-weight: bold; font-weight: bold;
} }
#gametext comment {
color: #888;
font-style: italic;
}
chunk.editing, chunk.editing * { chunk.editing, chunk.editing * {
color: #cdf !important; color: #cdf !important;
font-weight: normal !important; font-weight: normal !important;

View File

@ -13,7 +13,7 @@
<link rel="stylesheet" href="static/bootstrap.min.css"> <link rel="stylesheet" href="static/bootstrap.min.css">
<link rel="stylesheet" href="static/bootstrap-toggle.min.css"> <link rel="stylesheet" href="static/bootstrap-toggle.min.css">
<link rel="stylesheet" href="static/custom.css?ver=1.16.4a"> <link rel="stylesheet" href="static/custom.css?ver=1.16.4b">
<link rel="stylesheet" href="static/open-iconic-bootstrap.min.css"> <link rel="stylesheet" href="static/open-iconic-bootstrap.min.css">
</head> </head>
<body> <body>