pezcurrel 4 years ago
parent
commit
d18adf5616
6 changed files with 104 additions and 32 deletions
  1. 17 18
      .gitignore
  2. 5 5
      web/INSTALL.md
  3. 66 0
      web/composer.lock
  4. 8 3
      web/mustard/crawler/crawler.php
  5. 7 5
      web/mustard/dafa.txt
  6. 1 1
      web/mustard/mailtemplates/first_invitation

+ 17 - 18
.gitignore

@@ -1,18 +1,17 @@
-composer.lock
-appunti.txt
-web/zzz-materiali/
-web/mustard/crawler/crawler.log
-web/mustard/crawler/currinst.job
-web/mustard/crawler/instances.job
-web/mustard/crawler/instances.json
-web/mustard/crawler/peers
-web/mustard/crawler/zzz-materiali/
-web/mustard/zzz-estemp/
-web/mustard/zzz-materiali/mastostart_struttura_e_dati_pro_altervista.sql.gz
-web/mustard/zzz-materiali/mastostart_struttura_e_dati_test.sql.gz
-web/mustard/zzz-materiali/.htaccess
-web/mustard/zzz-materiali/geonames/
-web/mustard/zzz-materiali/locales.json
-web/mustard/zzz-materiali/simplemaps_worldcities_basicv1.6.zip
-web/mustard/zzz-materiali/snippettoni.php
-web/mustard/zzz-materiali/worldcities/
+/appunti.txt
+/web/zzz-materiali/
+/web/mustard/crawler/crawler.log
+/web/mustard/crawler/currinst.job
+/web/mustard/crawler/instances.job
+/web/mustard/crawler/instances.json
+/web/mustard/crawler/peers
+/web/mustard/crawler/zzz-materiali/
+/web/mustard/zzz-estemp/
+/web/mustard/zzz-materiali/mastostart_struttura_e_dati_pro_altervista.sql.gz
+/web/mustard/zzz-materiali/mastostart_struttura_e_dati_test.sql.gz
+/web/mustard/zzz-materiali/.htaccess
+/web/mustard/zzz-materiali/geonames/
+/web/mustard/zzz-materiali/locales.json
+/web/mustard/zzz-materiali/simplemaps_worldcities_basicv1.6.zip
+/web/mustard/zzz-materiali/snippettoni.php
+/web/mustard/zzz-materiali/worldcities/

+ 5 - 5
web/INSTALL.md

@@ -1,11 +1,11 @@
-* Requisiti: apache (o altro web server, ma per ora le istruzioni qui sono per apache) con mod_rewrite abilitato; php7 (cli e "per apache") con estensioni mysqli, mb_string, pcntl; mariadb (dovrebbe funzionare anche con mysql, ma non l'ho testato).
+* Requisiti: apache (o altro web server, ma per ora le istruzioni qui sono solo per apache) con mod_rewrite abilitato; php7 (cli e "per apache") con estensioni mysqli, mb_string, pcntl, intl; mariadb (dovrebbe funzionare anche con mysql, ma non l'ho testato).
 
-* Php dovrebbe essere configurato con un limite di memoria usabile abbastanza alto: 1 gb («memory_limit=1G») dovrebbe andar bene. Serve per «mustard/crawler/peerscrawl.php», il crawler che recupera ricorsivamente un bel po' di istanze, al momento circa 21.000, arrivando a usare un picco di 711 mb. (Delle istanze recuperate da «peerscrawl.php» solo circa 3.000 finiscono poi effettivamente nel database: per tantissime l'endpoint \[dominio\]/api/v1/instance poi non risponde, o perché l'istanza è morta o giù, o perché non si tratta di istanza mastodon, o perché l'endpoint è disabilitato, o per varie ed eventuali).
+* Php dovrebbe essere configurato con un limite di memoria usabile abbastanza alto: 1 gb («memory_limit=1G») dovrebbe andar bene, ma di più (2 gb) sarebbe anche meglio, per andare sul sicuro. Tanta memoria serve per «mustard/crawler/peerscrawl.php», il crawler che recupera ricorsivamente un bel po' di istanze; al momento ne recupera circa 21.000 arrivando a usare un picco di circa 750 mb (in circa 6 ore, sulla mia sgrausissima adsl). (Delle istanze recuperate da «peerscrawl.php» solo circa 3.000 finiscono poi effettivamente nel database: per tantissime l'endpoint \[dominio\]/api/v1/instance poi non risponde, o perché l'istanza è morta, oppure perché è giù, o perché non si tratta di istanza mastodon, o perché l'endpoint è disabilitato, o per varie ed eventuali).
 
-* Se si vuole provare la funzione di invio delle mail di invito agli admin delle istanze, php deve essere configurato in modo che sia in grado di inviare mail dall'indirizzo email "mittente" definibile impostando la variabile «ref_email» in «mustard/sec/mustard.ini». Inoltre: per favore, sempre in «mustard/sec/mustard.ini», cambia il valore della variabile «mail_test_address» (attualmente impostato a un indirizzo email mio), impostando un tuo indirizzo email valido (presso cui sarai tu a ricevere le mail di invito, invece delle admin delle istanze) e NON impostarla a stringa vuota o a false, in modo da NON inviare inviti reali (il tutto è spiegato, spero meglio, nei commenti in «mustard/sec/mustard.ini»).
+* Se si vuole provare la funzione di invio delle mail di invito agli admin delle istanze, php deve essere configurato in modo che sia in grado di inviare mail dall'indirizzo email "mittente" definibile impostando la variabile «ref_email» in «mustard/sec/mustard.ini». Inoltre: per favore, ancora in «mustard/sec/mustard.ini», cambia il valore della variabile «mail_test_address» (attualmente impostato a un indirizzo email mio), impostando un tuo indirizzo email valido e NON impostarla a stringa vuota o a false, in modo da NON inviare inviti reali (il tutto è spiegato meglio nei commenti in «mustard/sec/mustard.ini»).
 
-* Le istruzioni in questo paragrafo riguardano un'installazione sotto apache; sotto nginx o altri webserver dovrebbe trattarsi di adeguarle. Se hai installato mastostart nella DocumentRoot di apache o di un virtualhost definito in apache bona lè, sei già a posto; se invece l'hai installato in una sottodirectory della DocumentRoot (per esempio «\[DocumentRoot\]/mastostart»), imposta al percorso della sottodirectory la variabile «instpath» in «mastostart.ini» (per esempio «instpath="/mastostart"») e la direttiva «RewriteBase» in «.htaccess» (per esempio «RewriteBase "/mastostart").
+* Se hai installato mastostart nella DocumentRoot di apache o di un virtualhost definito in apache bona lè; se invece l'hai installato in una sottodirectory della DocumentRoot (per esempio «\[DocumentRoot\]/mastostart»), imposta al percorso della sottodirectory la variabile «instpath» in «mastostart.ini» (per esempio «instpath="/mastostart"») e la direttiva «RewriteBase» in «.htaccess» (per esempio «RewriteBase "/mastostart").
 
-* Per quanto riguarda l'installazione di Mustard, importa in mariadb o mysql il dump sql «mastostart_struttura_e_dati_pro_installazione.sql.gz» che trovi nella directory «mustard/zzz-materiali/». Edita il file di configurazione commentato «mustard/sec/mustard.ini». Crea un “superadmin” per poter entrare in mustard lanciando «php addsuperadmin.php» dalla directory «mustard/tools/».
+* Per quanto riguarda l'installazione di Mustard, importa in mariadb o mysql il dump sql «mastostart_struttura_e_dati_pro_installazione.sql.gz» che trovi nella directory «mustard/zzz-materiali/». Edita il file di configurazione «mustard/sec/mustard.ini» seguendo le istruzioni che trovi nei commenti all'interno del file. Crea un “superadmin” per poter entrare in mustard lanciando «php addsuperadmin.php» dalla directory «mustard/tools/».
 
 * Per quanto riguarda il crawler che crea/aggiorna i dati relativi alle istanze nel database, si tratta di farne girare i due componenti uno dopo l'altro, la prima volta magari da shell, poi con un cron job (quotidiano? settimanale?). Per farlo è sufficiente lanciare lo script «crawl.sh» che si trova nella directory «mustard/crawler».

+ 66 - 0
web/composer.lock

@@ -0,0 +1,66 @@
+{
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+        "This file is @generated automatically"
+    ],
+    "content-hash": "5844111f2dcdd07cb67674c95339d59a",
+    "packages": [
+        {
+            "name": "patrickschur/language-detection",
+            "version": "v3.4.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/patrickschur/language-detection.git",
+                "reference": "9d7a45118289939ef46d8a02763c7fec32eed7ba"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/patrickschur/language-detection/zipball/9d7a45118289939ef46d8a02763c7fec32eed7ba",
+                "reference": "9d7a45118289939ef46d8a02763c7fec32eed7ba",
+                "shasum": ""
+            },
+            "require": {
+                "ext-json": "*",
+                "ext-mbstring": "*",
+                "php": "^7.2"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^8.4.3"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "LanguageDetection\\": "src/LanguageDetection"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Patrick Schur",
+                    "email": "patrick_schur@outlook.de"
+                }
+            ],
+            "description": "A language detection library for PHP. Detects the language from a given text string.",
+            "homepage": "https://github.com/patrickschur/language-detection",
+            "keywords": [
+                "detect",
+                "detection",
+                "language"
+            ],
+            "time": "2019-11-16T14:23:06+00:00"
+        }
+    ],
+    "packages-dev": [],
+    "aliases": [],
+    "minimum-stability": "stable",
+    "stability-flags": [],
+    "prefer-stable": false,
+    "prefer-lowest": false,
+    "platform": [],
+    "platform-dev": [],
+    "plugin-api-version": "1.1.0"
+}

+ 8 - 3
web/mustard/crawler/crawler.php

@@ -414,8 +414,10 @@ function get_api($host, $path) {
  * @return array        Mappa tra codice lingua e probabilità che il toot sia in quella lingua.
  */
 function get_toot_languages($toot) {
-    $l = $toot['language'];
-    $res = [];
+	if (is_array($toot) && array_key_exists('language',$toot))
+		$l = $toot['language'];
+	else
+		$l = NULL;
     if($l !== NULL) {
         // la lingua è specificata già nel toot: usa quella
         $langs[$l] = 1;
@@ -536,7 +538,10 @@ function langs($instid, $uri, $auto) {
 	if (count($languages)==0) {
 		return($retlangs);
 	} else {
-		lecho('Lingue trovate: '.implode(', ',$languages).N);
+		if ($auto)
+			lecho('Lingue rilevate: '.implode(', ',$languages).N);
+		else
+			lecho('Lingue dichiarate: '.implode(', ',$languages).N);
 		$pos=0;
 		foreach($languages as $lang) {
 			$res=mysqli_query($link,'SELECT * FROM Languages WHERE Code=\''.myesc($link,$lang).'\'')

+ 7 - 5
web/mustard/dafa.txt

@@ -6,14 +6,16 @@
 
 [immagine docker]
 - istruzioni per usarla
-- settare php per email (o dare istruzioni su come farlo...)
+* configurare per benino phpmyadmin
+# settare php per email (o dare istruzioni su come farlo...)
 - cron e cron job per il crawler (o uno script con sleep...)
-- /usr/local/bin/binit dovrebbe lanciare mysql con file di log ecc. più umani
-- 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
-- aggiornare update.bash in /home/pongrebio/mastostart così che rifletta il cambiamento al punto precedente
+* /usr/local/bin/binit dovrebbe lanciare mysql con file di log ecc. più umani
+* 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
+* aggiornare update.bash in /home/pongrebio/mastostart così che rifletta il cambiamento al punto precedente
 
+- "stabilizzare" $cjrand in glob.php a una versione
 - tutto: ristrutturare il layout directory?
-- vedere un po' se è possibile determinare quanta ram sugge il crawler, in modo da poter dare indicazioni più precise in INSTALL --- usare memory_get_peak_usage(true)
+* vedere un po' se è possibile determinare quanta ram sugge il crawler, in modo da poter dare indicazioni più precise in INSTALL --- usare memory_get_peak_usage(true) --- fatto per ora con altro metodo
 - nei template per le mail dichiarare che un requisito è moderazione attiva contro contenuti fascisti-razzisti-sessisti
 - crawler.php: possibilità di passargli le opzioni da riga di comando
 - peerscrawl.php: rendere opzionale il check su google.com, spiegare però bene a cosa serve

+ 1 - 1
web/mustard/mailtemplates/first_invitation

@@ -1,7 +1,7 @@
 %guestinsturi in our search engine
 
 Hello%guestname,
-we are a little group of italian people who are trying to create a search engine for Mastodon instances.
+we are a little group of italian people who are trying to create a search engine for Mastodon instances whose admins grant active moderation against fascist, racist and sexist contents.
 We’d like you to ....
 
 Your login data: