MastodonHelp/todo.txt
2023-01-04 13:44:14 +01:00

261 lines
22 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

- to do
% to do periodically
? to do?
! no!
* done
~ in progress
--- Contents ---
* rename "blacklist" to something else, it's racist -> "noxious"
- correggere "Chi ne porta avanti lo sviluppo non ha alcun copyright sul software che realizza e mette a disposizione gratuitamente"
- correggere "uno smanettone"
- correggere, in 6.1, "gente propria"?
% aggiornare trans credits pescando dal report generabile da weblate
- una presa di posizione contro la deriva centralizzante e gamificante di mastodon
? un paragrafo di presentazione (non siamo la documentazione ufficiale, link alla stessa)
* se weblate poi va bene, aggiornare la pagina "contribuisci"
- la parte su "cambiare istanza" mi sembra ancora un po' sbumballata.
- forse bisognerebbe dire che nella gran maggioranza dei casi non sono richiesti nome e cognome reali
! dire all'inizio della guida che un post su mastodon è un toot, e nel seguito usare toot/s invece di post/s nella guida.
* in mastodon i trending topics si chiamano trending hashtags, usare quello quando ci si riferisce a mastodon
--- Tech ---
- embed backup into crawl.bash (rename it maintain.bash) so it gets done only after crawl
- make crawler.php and peerscrawl.php check dead instances too on first of the month
? instances.php: explain somewhere what "active users" means
- instances.php: when there are no results, tell it
- instances.php: when $_GET['id'] is set, don't show the search ui
* instances.php: update help text
- instances.php: a volte su cell sborda...
- dates-times, at least in instances.php, should be shown in local format according to the browser or chosen locale; and in utc+0, always
- 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
% grep peerscrawl.php and getinstinfo.php logs on the server after a run to check for php errors and warnings
- instances.php: make it possible to search only in uri, name, desc
- 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
* VERY IMPORTANT: make a script to set Instances.LastOkCheckTS to the last ok check based on InstChecks (NULL if never)
* getinstinfo.php, instances.php: use the same method that is used in peerscrawl.php to determine if an instance is dead
* mustool.php: could clean InstChecks too now, since we dropped Instances.Dead and use Instances.LastOkCheckTS
! peerscrawl.php: restore option: script should write a state file with at least the current index in list, better also current round and elapsed time
* 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: make langs function and its use better...
* death to akeavinn!
* getinstinfo.php, instances.php: retrieve and show "server rules" (/api/v1/instance/rules, when ver. >= 3.4.0)
* getinstinfo.php, instances.php: retrieve and show "blocked list" (/api/v1/instance/domain_blocks, when ver. >= 4.0.0)
* getinstinfo.php: thoroughly test what happens when instance can't be fetched (when $instaswered is not true)
* getinstinfo.php: "notify" must do "eecho" only optionally; it doesn't need to be preceded by "if (!$opts['dryrun'])" since it contains it
! NoIndex for admin account should perhaps be a column in Instances table... -> solved with writing "OPTED OUT" into AdmAccount
* use indexes in database for every column involved in joins
* dupes: 771; check they don't grow - no it was that bug, most probably
* index.php: if browser language is, eg, "pt" (portuguese), until "pt" will be available (if ever), use pt_BR
* "New" based on "InsertTS"
* remove Instances.New, Instances.Chosen e Instances.Good everywhere
* 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
* use /api/v2/instance instead of /api/v1/instance when version >= 4.0.0
* GET /api/v1/example should return extended info (the about page?) when ver >= 4.0.0, but it doesn't; report it
* getinstinfo.php, instances.php: write global or last 365 days response percentage into a new column, show it in instances.php
* crawler.php: make it faster
* 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)
* instances.php: possibilità di linkare una singola istanza per id=x
* software check in getinstinfo.php could be based on Platforms table (records which have Consider=1)
* instances.php: show software name, with version
* eliminare la tabella Noxious, aggiungere colonne "NoxTS" e "NoxReason" in Instances, modificare il codice di conseguenza
* "setold" (settare "New=0" per istanze che hanno avuto "New=1" per un mese o più) va fatto in getinstinfo.php e tolto da mustool.php
* remove "Good" ("suitable") column from Instances table and modify code accordingly
* upgrade LanguageDetection?
* getinstinfo.php: nodeinfo check should be more accurate
* backup and update scripts: put them in a subdir of clitools
* mustool.php: aggiungere possibilità di cancellare record InstChecks, Notifications più vecchi di tot tempo (ZHits viene già pulita da "updstats")
* fare qualcosa perché il backup venga mandato da qualche parte: per e-mail ora non va più perché l'allegato è troppo grosso
* un tasto sulla ricerca istanze per togliere tutti i limiti
* l'ordine casuale fa casino con il paginamento...
* "consigliata": migliorare la leggibilità
* possibilità di cercare per nome-uri istanza
* il menu delle pagine deve stare in fondo al centro sul cell
* correggere quel campo sbagliato in inglese
* pare che a volte dia inglese invece di italiano - pare che non più
* le lingue nella scheda istanza vanno mostrate tradotte
* prima attività, poi checks
* backup!
* pagina info è ancora giustificata su cell, invece che allineata a sx
* accorciare "hashtag più usati dell'ultima settimana" -> "hastag più usati (ult. settimana)"
* crawl.bash: su errore, mandare mail
* 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
* peerscrawl.php: possibilità di settare timeout
! 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.
! tutto: scomparsa-comparsa div di debug
! tutto: se opzione "debug" in ini è false, niente output debug
* anche nel sito usare il menu.php nuovo di mustard
* 404: loggare da qualche parte le richieste che ci finiscono
* about: mettere solo il nick, linkato alla pagina mastodon
* about, instances: una sola pagina
* anche home una sola pagina? con il suo file di gettext?
* la mail in "collabora" in magenta
* 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.
* paragrafo introduttivo Istanze
! aggiungere alla intro che è beta e che poi permetterà agli admin...
* chiedere a redglow e paulbutgold se vogliono essere messi nella lista di chi ha contribuito
* statistiche minime
* pagina statistiche (totali e di ricerca: numero istanze, numero utenti, partecipazione(?))
! pagina istanze nocive
~ ordinamento
* se è Noxious dire perché interrogando la tabella Noxious
* possibilità di settare tutti i parametri "senza constraints" con un solo tasto
* impostare un po' di priority per le italiane
* mettere da qualche parte che usiamo quella libreria per la rilevazione delle lingue
* usare menu.php di mustard, poi modificarlo in modo che da cell si veda menu hamburger - o simili
! i pad su cisti con il materiale ancora da tradurre per le varie lingue sono morti, sarebbero da resuscitare su soluzione alternativa non effimera
* spostare i flag di esclusione sotto il resto
* se InstOurLangs è null cercare e riportare InstLangs - fatto, impostando InstOurLangs come InstLangs in getinstinfo.php se InstOurLangs è NULL e InstLangs no
* mettere tra le nocive byoblu
* possibilità di escludere quelle con registrazione soggetta ad approvazione
* possibilità di escludere quelle che non han risposto all'ultimo check, vedi sotto
* lastcheck bool in tabella Instances, per poterlo verificare facilmente
* anche in peerscrawl non checkare le istanze morte
* cambiare password a utente admin e normale su mastodon.help; l'utente normale non deve poter leggere la tabella Admins (e forse altre?)
* trimdom ecc. ... forse che scarta già a monte quelle che sarebbero trimmate? altrimenti sarebbe da fare, e cassare trimdom del tutto
* info di debug a scomparsa
! possibilità di includere nella ricerca per lingua anche le istanze senza lingua specificata
! 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 unopzione 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
* edinst.php: possibilità di settare Priority
! getinstinfo.php: mi sa che se non trova activity, non checka neanche trends, ma è sbagliato, sono indipendenti. Verificare. -- No, è ok.
* Menu principale: "header" con "INSTRUCTIONS / CHOOSE AN INSTANCE / LANGUAGE / ABOUT US"
* la div a (s)comparsa coi capitoletti spostarla sotto il menu di cui sopra, ingrandirne l'icona
* alcune svg pesano molto, non è che contengono ancora bitmap?
* immagini nei capitoletti (aspettarle da cagi)
* numeretti nei titoli capitoli nella pagina "instructions" (solo dopo aver scorporato "instances" e "about us")
* versione italiana
* elefantino sinistro è un po' sfocato
* aggiungere contatti a "about us"
* "didascalie" foto con fotografo (alt e title per tutte le immagini)
* immagine trending topics da interfaccia easy
* moving to another instance è da rivedere
* obscured followers list è da rivedere
* qualcosa non torna nel flow: o è sbagliata thread_02.svg oppure thread_03.svg
* Hilit link corrispondente a sezione visualizzata nel menu.
* ridurre elefantino nel titolone
* via "Resources"
* 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
* mustard: rinominare tutto da "Mastodon Startpage Admin" a "Mustard"
* 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