- The image with logos from various Fediverse platform: put a universe with many galaxies as a background, instead of the current one that only has one
- remove all html from strings to translate using (s)printf, so we can easily change links, etc., without touching translations, and we can easily check for " and ' inside them to replace them with “” and ‘’
- getinstinfo.php: don't use truncs, use willtrunc or even better check mastodon docs/source for maximum length of values and modify the database accordingly
- make a populate.php script to populate some tables with default values after importing the structure
- "Severity" should be called "Level" in the "Notifications" table
- use indexes in database for every column involved in "order by"
- what's thumbnail -> blurhash? how does it work? maybe just use css blur?
- important notifications: write them into a file and send its content by mail
- peerscrawl.php: make it faster (if possible)
- make a section in mustard to manage Platforms
? unify language list definition somewhere
? in instances.php, report the date when an instance has been marked as noxious - for now it writes when it is updated
? getinstinfo.php: dichiarare "morta" un'istanza solo quando in "tot tempo" sono stati fatti "tot checks" (~= "tot tempo" espresso in giorni)
- mustard: remove all the "guest" stuff?
- aggiungere alle keyword per seo "fediverse", e altro?
? possibilità di cercare per lingua non principale
? possibilità di cercare per "famiglie di lingue" (tipo "it*")
? possibilità di cercare negli hashtags?
? possibilità di cercare nelle note admin
? transazioni, dove appropriato (crawler compreso)
? peerscrawl.php: rendere opzionale il check su google.com, spiegare però bene a cosa serve
- instances.php: "scorporare" css home-guida
? bida: garantire a MastoStartAdmin la possibilità di creare e alterare tabelle (in UPDATE.php)
- evidenziare espressioni corrispondenti alla ricerca
- getinstinfo.php: per il rilevamento della lingua, se la timeline non è disponibile si possono usare le descrizioni
- mustard: instances.php: usare input type datetime per le colonne time
- mustard: account.php: checkare che l'email non esista già (prima e dopo post)
- mustard: dispinst.php: setlocale: il nome della locale è sempre quello su tutti i sistemi?
- mustard: "stabilizzare" $cjrand in glob.php a una versione
- mustard: pagina gestione accounts
- mustard: pagina reset password
- mustard: una pagina che dia la possibilità di vedere le istanze che non rispondono da un tot di tempo impostabile, e di marcarle in modo che non vengano più controllate, fino a quando non sono "smarcate" (getinstinfo.php dev'essere modificato all'uopo)
? mustard: help online
- mustard: una pagina che rilevi eventuali inconsistenze nel db, tra le quali: mail account guest diversa da mail di contatto istanza (mail contatto d'istanza può cambiare nel tempo)
? mustard: edinstres.php deve mostrare messaggio di successo
? mustard: index.php: lunghezza automatica di username
~ mustard: serve un "notifs.php" (è già linkato dalla lista notifiche accessibile dalla campanella) per la gestione accurata delle notifiche (possibilità di marcarle tutte o "precedenti a" come lette, possibilità di cancellarle tutte o "precedenti a")
- mustard: instances.php: possibilità di *scegliere* la lingua da usare tra quelle supportate per il filtraggio su Localities e Languages
? mustard: instances.php: bottoni per pagina precedente-successiva
- mustard: instances.php: alerta su cambio pagina quando è stato modificato filtro/ordinamento
- mustard: instances.php: ckf: controllare che non venga eseguito ordinamento su una stessa colonna più volte (non rompe query ma è ridondante)
--- Fatti e scartati ---
* instances.php: report LastOkCheckTS and FirstSeen
* instances.php: "moderated servers" and "server rules" can be an empty array... --- yes but the script already considered the possibility
* peerscrawl.php: make "Peers" and "PeersChecks" tables in db, to store checks and declare dead instances, to avoid uselessy checking all those dead instances
* getinstinfo.php, instances.php: check whether server thumb exists, if not set it to "unavailable" and modify instances.php to show a predefined "thumb not available" image
* instances.php: if there's no "long desc", don't show it: since 4.0.? the admin interface doesn't let admins set it -> used for new "description" value
* (id 7613), per es., è nel db, ma non ha alcun record in instchecks: perché? dovrebbe essere risolto ora, testare
* getinstinfo.php: fare che fetchuser oltre a noindex onora #nobot(s) ma se c'è #okindex e altre simili, compresa una tag specifica per masthelp, non onora né noindex né #nobot
! instances.php: dire in chiaro che i campi numerici si disabilitano lasciandoli vuoti (ora che c'è possibilità di disabilitarli da tasto forse sarebbe meno utile)
* negli script web (non cli), gmdate dappertutto invece di strftime; magari un menu a tendina da cui scegliere timezone?
! getinstinfo.php: rendere opzionale il check su Dead
! edinst.php: possibilità di settare Instances.Dead
* spostare tutta la roba sensibile in una dir "contenitore", tipo fare che la root dir è "/srv/http/mastodon.help/site", e in "/srv/http/mastodon.help" fare dir per logs, per accounts, per ini files, ecc.
~ PER FAVORE un metodo valido per verificare che un'istanza sia mastodon - più o meno fatto: a posto per ver. >= 3.0.0, se minore attualmente non viene mai considerata Mastodon
* getinstinfo.php, peerscrawl.php: timestamp nei log
* getinstinfo.php, peerscrawl.php: "-r" (ripristino sessione precedente) dovrebbe cercare i file di sessione, ma non bloccare l'esecuzione se non li trova
* vedere un po' se è possibile determinare quanta ram sugge il crawler, in modo da poter dare indicazioni più precise in INSTALL
* getinstinfo.php: possibilità di passargli le opzioni da riga di comando
! getinstinfo.php: deve controllare se nella tabella Instances GuestID è definito; se è definito e la mail del corrispettivo account "guest" è cambiata, deve aggiornare l'account "guest" corrispettivo in Admins con la mail e il nome utente attuali e creare nuova password; se i dati dell'istanza sono già stati editati, mandare mail di "aggiornamento"; se non lo sono, mandare invito --- alla fine lasciam perdere, si organizzano gli admin se vogliono.
* a imgs/featured-it.svg dovrebbero affiancarsi immagini per le altre lingue, ma forse meglio fare una div testuale così da poterne tradurre il testo con gettext? Sarebbe anche più leggibile, probabilmente.
* se InstOurLangs è null cercare e riportare InstLangs - fatto, impostando InstOurLangs come InstLangs in getinstinfo.php se InstOurLangs è NULL e InstLangs no
! un ultimo tentativo prima di dichiararla morta in getinstinfo.php (no perché viene già fatto a monte)
* getinstinfo.php, peerscrawl.php: verificare perché stderr viene indirizzato a stdout, fare in modo che lo sia sempre a livello di script - dipende da "display_errors" in php.ini, per default li manda a stdout, bona lè* getinstinfo.php: aggiornamento stato "New" e "Noxious" in uno script a parte - fatto, in mustool.php
* getinstinfo.php e peerscrawl.php: devono creare un lockfile all'esecuzione e cancellarlo quando escono (sia per errore, sia per uscita normale); se esiste, uscire con errore; più un'opzione per forzare l'esecuzione anche già in presenza di lockfile.
* getinstinfo.php: quando instances.job e currinst.job esistono, oltre a --restore serve anche un’opzione che forzi l'esecuzione.
* getinstinfo.php: NON ripristinare sessione interrotta se non viene esplicitato con opzione (da aggiungere)
* getinstinfo.php: togliere "lecho", aggiungere time ed etr, aggiungere controllo memoria
* getinstinfo.php: massimo utilizzo di memoria alla fine - o no? tanto già lo dice nell'ultima riga di check - va be' fatto
* getinstinfo.php: se non viene rilevata nessuna lingua, e se c'è lingua di default, usare quella anche per le nostre
* mustard: account.php: aggiungere possibilità di fare nuovo account quando id=0
* mustard: in attesa dei template di Ca_Gi, nei template per le mail dichiarare comunque già che un requisito è moderazione attiva contro contenuti fascisti-razzisti-sessisti
* mustard: viewinst.php
* mustard: pagina gestione proprio account
! mustard: invite.php: una modalità di test che non manda le mail ma crea gli account "guest"
! mustard: pagina gestione nocive (no: le nocive vengono gestite singolarmente da edinst
* mustard: implementare la faccenda dell'invio di mail preformattate agli admin con invito a editare i propri dati (quindi implementare "livelli di admin" e relative restrizioni: admin invitat* può vedere solo la pagina relativa alla propria istanza, solo aggiungere valori (non in tutti i casi), editare ed eliminare solo valori che ha aggiunto e solo se non sono già stati linkati da altr*)
* mustard: dispinst.php, mustard: invite.php: possibilità di, errrr, "incalzare" admin già invitat*
* mustard: dispinst.php: "versione in inglese" per le admin invitate
* mustard: edinst.php: un'icona per deselezionare Locality
* mustard: nei vari helper, sarebbe meglio morisse in json, alla bisogna
* mustard: aggiungere notifica quando "guest" edita istanza
* mustard: instances.php: possibilità di vedere solo le istanze che non hanno risposto all'ultimo check
* getinstinfo.php: ricorsivizzarlo? - fatto, in questo modo: peerscrawl.php crea una lista di "tutte le istanze note" a partire da una certa instanza, getinstinfo.php usa questa lista, insieme a quella delle istanze già note pescata dal db, per importare nel db i dati delle istanze che rispondono
* getinstinfo.php: le notifiche, invece di edinst.php, devono linkare un viewinst.php che mostri l'istanza
* getinstinfo.php: sarebbe tanto bello fare a meno di tutta la faccenda "tronconi" ecc.
* mustard: instances.php: possibilità di filtraggio per GuestID, LastGuestEdit, OurLangsLock
* mustard: edinst.php: su languages se account "Level" è "guest", "lock this list" dev'essere checkato per default *se "guest" non ha ancora mai modificato i dati dell'istanza*
* mustard: sanificazione input: edinsth.php: su edit e add controllare sempre che il valore "nuovo" non ci sia già
* mustard: aggiungere colonna "OSMID" a Localities, in modo che se aggiungiamo altre lingue in seguito sia più facile recuperarle per aggiornare la tabella
* mustard: aggiungere colonna NameCA a Languages e Localities, e relativi pimpumpam nel codice (greppare "NameES" e "\'es\'" dappertutto)
* troncare tabella languages e far rigirare tools/popudb.php per ricrearla: my_ucfirst metteva in minuscolo tutta la stringa, a parte il primo carattere maiuscolo
* mustard: aggiungere colonna "timestamp" "LastGuestEdit" a Instances: null quando non è stata mai editata da "guest", altrimenti time() php
* mustard: tutto: visualizzazione notifiche (campanellina e div a s/comparsa)
* mustard: edinsth.php: finire Localities
* mustard: l'icona per l'uscita senza div o quel che è, come in instances.php
* mustard: edinsth.php: su edit e add, nel js, selezionare solo il valore editato/aggiunto, perché nella finestrella elenco valori mostra il primo selezionato
* mustard: edinstres.php deve mostrare scheda istanza completa
* mustard: guestinsts.php, edinst.php e edinstres.php devono avere menu particolare per "guest" con la possibilità di andare alla vista delle istanze
* mustard: edinsth.php: per "guest" deve tenere conto dei limiti impostati con MaxLocalities ecc.
* imustard: nstances.php: invece di rifare la querona con LIMIT, usare il $res che c'è ritornando solo le istanze giuste per la pagina
* mustard: instances.php: icona della lente in qualche modo diversa se è attivo un filtro/ordinamento
* mustard: instances.php: i criteri di ricerca e ordinamento "volanti" vanno salvati sempre in un preset "di battaglia" (uno per ogni admin) in modo da poter slegare il cambio pagina dal submittare i filtri/ordinamenti e in modo che, per esempio, al ritorno da edinst*.php si possa vedere ciò che si vedeva prima (forse la cosa più agevole è fare due tabelle ad-hoc uguali a PresFiltConds e PresOrdConds dove invece di PresID si ha AdminID)
* mustard: instances.php, edinst*.php: implementare la faccenda della lingua del browser: se è tra quelle supportate (o una variante delle stesse) impostare la ricerca e la visualizzazione dei campi multilingua nella lingua supportata; altrimenti in inglese
* mustard: instances.php: rendere funzione il codice che crea una tabella-istanza; usare la funzione in guestinsts.php
* mustard: edinst.php: aggiungere colonna flag bool in Instances che viene settata a 1 quando qualcuno edita la lista delle lingue "nostre", così che il crawler al giro successivo non la sovrascriva con quelle autorilevate
* mustard: edinsth.php: caso particolare di edaddrem() per "Languages": usare locale_get_display_name() per determinare le lingue supportate e controllare che la lingua esista (se la lingua non esiste ritorna valore uguale al codice lingua passato, per tutte le lingue)
* instances.php: eliminare il riferimento a "stato", aggiungere "OurDescEN"
* mustard: instances.php: quando ordinamento è su una "1 a molti", eseguirlo su "GROUP_CONCAT" di questi molti ordinati per "Pos" della joinosa tabella
* ripristinare le colonne descrittive in Languages: una per la locale impostata (it), una per en, una per fr, una per es...
* mustard: instancesh.php: ritornare di tutte solo quelle che effettivamente sono usate, magari con un count tra ()
* mustard: instances.php: definito/non definito non vengono riprodotte bene dalla plancia dopo post
* mustard: instances.php: quando si seleziona definito/non definito, oltre a disabilitare il campo valsel/valinp, farlo sparire proprio? assegnargli un css che da disabilitato lo fa diventare tuttonero? tipo
* docker: istruzioni per usare l'image
* docker: configurare per benino phpmyadmin
* docker: settare php per email (o dare istruzioni su come farlo...)
* docker: cron e cron job per il crawler (o uno script con sleep...)
* docker: /usr/local/bin/binit.sh dovrebbe lanciare mysql con file di log ecc. più umani
* docker: niente virtualhost, spostare mastostart nella docroot di default di apache, così che per vederlo basti andare su 172.17.0.2, senza dover toccare /etc/hosts dell'host
* docker: aggiornare update.sh così che rifletta il cambiamento al punto precedente