add links to servers on intruments

This commit is contained in:
2025-05-20 15:09:57 +02:00
parent 2ed1e3c292
commit 46fca20f09

View File

@ -14,6 +14,9 @@ import flask
import circularlog
instlist = ['AMOR', 'BOA', 'CAMEA', 'DMC', 'EIGER', 'FOCUS', 'HRPT', 'SANS', 'TASP', 'ZEBRA']
def guess_mimetype(filename):
if filename.endswith('.js'):
mimetype = 'text/javascript'
@ -303,28 +306,31 @@ def default():
return general_file('SEAWebClient.html')
@app.route('/select_instrument')
def select_instrument():
out = ['''<html><body><table>
<style>
th {
text-align: left;
}
</style>
<tr><th>instrument</th><th colspan=99>devices</th></tr>''']
result = {}
for stream, tags in server.db.get_streams().items():
ins = tags.get('instrument', '0')
result.setdefault(ins, []).append((stream, tags.get('device')))
bare_streams = result.pop('0', [])
for ins, streams in result.items():
out.append(f'<tr><td><a href="/?ins={ins}">{ins}</a></td>')
out.extend(f'<td>{d or s}</td>' for s, d in streams)
out.append('</tr>')
for stream, device in bare_streams:
out.append(f'<tr><td><a href="/?srv={stream}">{stream}</a></td><td>{device}</td><tr>')
out.extend(['</table></body></html>', ''])
return '\n'.join(out)
#@app.route('/select_instrument')
#def select_instrument():
# out = ['''<html><body><table>
#<style>
#th {
# text-align: left;
#}
#</style>
#<tr><th>instrument</th><th colspan=99>devices</th></tr>''']
# result = {}
# for stream, tags in server.db.get_streams().items():
# ins = tags.get('instrument', '0')
# result.setdefault(ins, []).append((stream, tags.get('device')))
# bare_streams = result.pop('0', [])
# for ins, streams in result.items():
# out.append(f'<tr><td><a href="/?ins={ins}">{ins}</a></td>')
# out.extend(f'<td>{d or s}</td>' for s, d in streams)
# out.append('</tr>')
# for stream, device in bare_streams:
# out.append(f'<tr><td><a href="/?srv={stream}">{stream}</a></td><td>{device}</td><tr>')
# out.append('</table>')
# out.append('<h3>servers on the instruments:</h3>')
# out.extend([f"<a href='http://{i.lower()}.psi.ch:8642/'>{i}</a>&nbsp;\n" for i in instlist])
# out.extend(['</body></html>', ''])
# return '\n'.join(out)
@app.route('/select_experiment')
@ -389,7 +395,10 @@ a {
out.append(f'<td>{daterange}</td></tr>')
if timerange:
out.append(f'<h3><a href="/select_experiment?time=all">earlier dates</a></h3><br>')
out.extend(['</table></body></html>', ''])
out.append('</table>')
out.append('<h3>servers on the instruments:</h3>')
out.extend([f"<a href='http://{i.lower()}.psi.ch:8642/'>{i}</a>&nbsp;\n" for i in instlist])
out.extend(['</body></html>', ''])
except Exception as e:
logging.error('%s', traceback.format_exc())
circularlog.log()