mirror of
https://github.com/KoboldAI/KoboldAI-Client.git
synced 2025-02-02 18:46:48 +01:00
Also allow downloading stories as plaintext
This commit is contained in:
parent
fab51b64a3
commit
543acf9ba4
25
aiserver.py
25
aiserver.py
@ -370,7 +370,7 @@ log.setLevel(logging.ERROR)
|
||||
|
||||
# Start flask & SocketIO
|
||||
print("{0}Initializing Flask... {1}".format(colors.PURPLE, colors.END), end="")
|
||||
from flask import Flask, render_template, Response
|
||||
from flask import Flask, render_template, Response, request
|
||||
from flask_socketio import SocketIO, emit
|
||||
app = Flask(__name__)
|
||||
app.config['SECRET KEY'] = 'secret!'
|
||||
@ -501,6 +501,26 @@ def index():
|
||||
return render_template('index.html')
|
||||
@app.route('/download')
|
||||
def download():
|
||||
save_format = request.args.get("format", "json").strip().lower()
|
||||
|
||||
if(save_format == "plaintext"):
|
||||
ln = len(vars.actions)
|
||||
|
||||
if(ln > 0):
|
||||
chunks = collections.deque()
|
||||
for key in reversed(vars.actions):
|
||||
chunk = vars.actions[key]
|
||||
chunks.appendleft(chunk)
|
||||
|
||||
if(ln > 0):
|
||||
txt = vars.prompt + "".join(chunks)
|
||||
elif(ln == 0):
|
||||
txt = vars.prompt
|
||||
|
||||
save = Response(txt)
|
||||
save.headers.set('Content-Disposition', 'attachment', filename='%s.txt' % path.basename(vars.savedir))
|
||||
return(save)
|
||||
|
||||
# Build json to write
|
||||
js = {}
|
||||
js["gamestarted"] = vars.gamestarted
|
||||
@ -520,6 +540,7 @@ def download():
|
||||
"selective": wi["selective"],
|
||||
"constant": wi["constant"]
|
||||
})
|
||||
|
||||
save = Response(json.dumps(js, indent=3))
|
||||
save.headers.set('Content-Disposition', 'attachment', filename='%s.json' % path.basename(vars.savedir))
|
||||
return(save)
|
||||
@ -1964,11 +1985,9 @@ def saveRequest(savpath):
|
||||
|
||||
if(ln > 0):
|
||||
chunks = collections.deque()
|
||||
i = 0
|
||||
for key in reversed(vars.actions):
|
||||
chunk = vars.actions[key]
|
||||
chunks.appendleft(chunk)
|
||||
i += 1
|
||||
|
||||
if(ln > 0):
|
||||
txt = vars.prompt + "".join(chunks)
|
||||
|
@ -839,6 +839,7 @@ $(document).ready(function(){
|
||||
button_saveas = $('#btn_saveas');
|
||||
button_savetofile = $('#btn_savetofile');
|
||||
button_download = $('#btn_download');
|
||||
button_downloadtxt= $('#btn_downloadtxt');
|
||||
button_load = $('#btn_load');
|
||||
button_loadfrfile = $('#btn_loadfromfile');
|
||||
button_import = $("#btn_import");
|
||||
@ -1272,6 +1273,10 @@ $(document).ready(function(){
|
||||
button_download.on("click", function(ev) {
|
||||
window.open("/download", "_blank");
|
||||
});
|
||||
|
||||
button_downloadtxt.on("click", function(ev) {
|
||||
window.open("/download?format=plaintext", "_blank");
|
||||
});
|
||||
|
||||
button_load.on("click", function(ev) {
|
||||
socket.send({'cmd': 'loadlistrequest', 'data': ''});
|
||||
|
@ -41,7 +41,8 @@
|
||||
<a class="dropdown-item" href="#" id="btn_save">Save</a>
|
||||
<a class="dropdown-item" href="#" id="btn_saveas">Save As</a>
|
||||
<a class="dropdown-item" href="#" id="btn_savetofile">Save To File...</a>
|
||||
<a class="dropdown-item" href="#" id="btn_download">Download Current Story</a>
|
||||
<a class="dropdown-item" href="#" id="btn_download">Download Story as JSON</a>
|
||||
<a class="dropdown-item" href="#" id="btn_downloadtxt">Download Story as Plaintext</a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
|
Loading…
x
Reference in New Issue
Block a user