Hamcha / maud

rocks
https://crunchy.rocks/
Other
5 stars 1 forks source link

Tag filter #26

Closed Hamcha closed 9 years ago

Hamcha commented 9 years ago

Richiesto dal nostro Kuroki senpai, una possibilità di nascondere certi tag, tipo per rendere il sito SFW.

Si potrebbe fare con dei campi nei cookie, suppongo.

silverweed commented 9 years ago

Ok. Non sapendo granché di cookie te lo lascerei almeno iniziare, mentre nel frattempo vedo se riesco a fare qualcos altro (tipo l'autocomplete)

Hamcha commented 9 years ago

Implementato parzialmente (SFW mode) 353d4b1 , l'arch per filtrare tag custom c'e`, bisogna solo farla via GUI

Hamcha commented 9 years ago

Sposto in bassa priorita' per il momento

silverweed commented 9 years ago

È stata richiesta la funzione di "Hide thread"; valutare se è possibile unire queste due cose, o tramite cookie (pro: possiamo filtrare direttamente a server side e quindi a livello handler non far uscire proprio i thread nascosti, contro: > cookie) o tramite localStorage (pro: niente cookie, la struttura client-side c'è già, anche se da fixare, per la safe mode ( #62 ), contro: dobbiamo filtrare per forza client-side, quindi spoilerare i thread).

Idee

  1. cookie:
    1. Bottoncino su ogni thread con "Hide thread" che setta (o aggiorna) un cookie (es. crHiddenThreads) il cui valore contiene gli shorturl dei thread nascosti, es. "fg HG cT ..."
    2. L'handler httpHomee annessi, invece di richiedere i 5 thread più popolari, parsano il valore dell'eventuale cookie e ne richiedono 5 + (numero di thread nascosti); dopodiché controllano lo shorturl dei thread trovati e aggiungono solo quelli che non matchano (ovviamente si fermano ai primi 5). In questo modo è garantito che 1 query al DB basti a coprire i primi 5 thread.
    3. Fine. Svantaggi principali:
      1. Uccidiamo muh RESTful API
      2. Non puoi de-hidare i singoli thread, al massimo nuki il cookie e li riveli tutti.
  2. localStorage: (soluzione preferibile imo)
    1. lato server non cambia niente; lato client c'è sempre il bottoncino "Hide thread" che salva nel localStorage, analogamente a prima, lo shorturl del thread.
    2. Uno script si occupa di spoilerare tutti i thread che corrispondono a questi shorturl una volta che la pagina si carica.
    3. Fine. Svantaggi principali:
      1. I thread nascosti rimangono spoilerati ma visibili; se nascondi quelli più popolari poi hai pochi thread in home, al limite anche nessuno.

In entrambi i casi possiamo rendere più flessibile il filtro ammettendo che il valore del cookie/localStorage possa contenere sia shorturl che tag (il che implementa automaticamente anche la Safe Mode in modo corretto). Es. crHiddenThreads = "[ 'fg', 'HG', 'cT', '#nsfw', '#furry' ]"

A questo punto consideriamo anche di implementare un UI opportuna per hidare/de-hidare thread, tags e quant altro (utenti?)

silverweed commented 9 years ago

Uh, si può avere solo 1 assignee alla volta?

Hamcha commented 9 years ago

È proprio un bel pasticcio. Credo che spoilerare sia come non fare nulla, visto che alla fine non diventa molto utile.. però se già il safe mode clientside da problemi, l'hiding non mi aspetto sia così facile da far andare.

Credo comunque che valga la pena provare a sistemare tutto e farlo server-side.

Sì, quello dell'assignee singolo è uno dei mille motivi per cui odio i bug tracker (anche Mantis lo fa)

silverweed commented 9 years ago

Ok, quindi voti per il cookie giusto? Se vuoi ci penso io, ho già idea di come farlo...solo che oggi sono via tutto pomeriggio, quindi se riesco a farlo stasera bene, se no slitta a domani.

Hamcha commented 9 years ago

Boh, io oggi forse mi do a Dvx, quindi anche per me slitta a domani

silverweed commented 9 years ago

Vedi #63

Hamcha commented 9 years ago

63 mergata, chiudo fino a nuovo aggiornamento