Come faccio a ottenere l'agente utente remoto all'interno di un modello di Genshi quando si utilizza Trac, e WSGI?

StackOverflow https://stackoverflow.com/questions/1855576

  •  13-09-2019
  •  | 
  •  

Domanda

Sto cercando di fare un po 'di personalizzazione di un sito web di gestione del progetto Trac ed ho incontrato un problema interessante. Il progetto ha una serie di immagini che sono sia SVG e PNG. Le immagini SVG hanno numerosi vantaggi, tra cui molteplici collegamenti ipertestuali e una dimensione più piccola trasmessa contro PNG che è più grande e può collegarsi solo a un singolo documento.

Mi rendo conto che è possibile utilizzare jQuery per fiutare il programma utente dopo che la pagina è stata caricata e sostituire il PNG con la versione SVG dell'immagine, ma questo si traduce in PNG di essere inviato a tutti i clienti. Ho anche possibile avere Genshi sostituire il PNG con SVG per tutti i clienti e quindi utilizzare jQuery per mettere il PNG indietro, ma gli stessi risultati problema. Potrei usare jQuery per inserire le immagini appropriate per tutti i clienti, ma che sembra solo stupido di richiedere al cliente di fare ciò che il server dovrebbe.

C'è un modo per ottenere informazioni sul browser all'interno di un modello di Genshi? E 'un po' più difficile che solo chiedendo le variabili d'ambiente a causa del fatto che sto correndo Trac usando WSGI. Ho guardato attraverso l'uscita di repr(locals()) e non ho visto niente che sembrava risolto il mio problema. Vorrei anche per evitare di modificare il codice sorgente Trac.

Altri suggerimenti

user_agent = environ.get('HTTP_USER_AGENT', None)

Se environ è avvolto in una sorta di oggetto Request:

user_agent = request.user_agent

A proposito, probabilmente si dovrebbe guardare al di intestazione HTTP_ACCEPT invece di HTTP_USER_AGENT per scoprire cosa la rappresentanza deve essere inviato.

scroll top