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