...
25
.gitignore
vendored
|
@ -1,14 +1,19 @@
|
|||
web/admin/crawler/crawler.log
|
||||
web/admin/crawler/currinst.job
|
||||
web/admin/crawler/instances.job
|
||||
web/admin/crawler/instances.json
|
||||
vendor
|
||||
composer.lock
|
||||
appunti.txt
|
||||
web/admin/crawler/peers
|
||||
web/admin/crawler/zzz-materiali/
|
||||
web/admin/zzz-estemp/
|
||||
web/admin/zzz-materiali/mastostart_struttura_e_dati_pro_altervista.sql.gz
|
||||
web/admin/zzz-oldcrawler/
|
||||
web/blocks/
|
||||
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/.htaccess
|
||||
web/mustard/zzz-materiali/geonames/
|
||||
web/mustard/zzz-materiali/icona.svg
|
||||
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/
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
RewriteEngine On
|
||||
RewriteBase /mastostart
|
||||
#RewriteBase "/mastostart"
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule ^.*$ index.php [L,QSA]
|
||||
|
|
7
web/INSTALL
Normal file
|
@ -0,0 +1,7 @@
|
|||
- Se hai installato mastostart nella DocumentRoot di apache passa al punto
|
||||
successivo; 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")
|
||||
- ...
|
|
@ -1,26 +0,0 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html lang="it">
|
||||
<head>
|
||||
<title>Mastodon Startpage - Sviluppo del “suggeritore di istanze”</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="description" content="Mustard Login">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<link rel="icon" type="image/png" href="imgs/icona-32.png" sizes="32x32">
|
||||
<link rel="icon" type="image/png" href="imgs/icona-192.png" sizes="192x192">
|
||||
<link rel="icon" type="image/png" href="imgs/icona-512.png" sizes="512x512">
|
||||
<link rel="apple-touch-icon-precomposed" href="imgs/icona-180.png">
|
||||
<link rel="stylesheet" type="text/css" href="theme.css?v=2">
|
||||
</head>
|
||||
<body>
|
||||
<div id="fullscreen">
|
||||
<div id="middlerow">
|
||||
<div id="intro">
|
||||
<p>Ciao,<br>
|
||||
<a href="index.php">qui</a>, con nome utente “bida” e password uguale, puoi provare quel che c’è della sezione di admin per il “suggeritore d’istanze mastodon” della <a href="https://rame.altervista.org/mastostart">Mastodon Startpage</a>.<br>
|
||||
Quel che c’è, al momento, è il “browser di istanze lato admin”, uno strumento che permette di “sfogliare” e cercare-ordinare secondo tanti criteri un database di metadati relativi a tante istanze mastodon (per visualizzare il pannello di ricerca e ordinamento, una volta entrat@ nella sezione di admin clicca sull’icona con la lente in alto a destra).<br>
|
||||
Se vuoi segnalare bachi o collaborare in altro modo sull’aspetto tecnico (non contenutistico) del progetto della Mastodon Startpage, <a href="https://git.lattuga.net/pongrebio/MastodonStartpage">qui c’è il repo git del progetto</a>; nel wiki trovi una spiegazione abbastanza dettagliata di come si pensa di svilupparlo, quel che c’è e quel che manca.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,2 +0,0 @@
|
|||
Order deny,allow
|
||||
Deny from all
|
|
@ -1,71 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="512"
|
||||
height="512"
|
||||
viewBox="0 0 135.46666 135.46667"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14"
|
||||
sodipodi:docname="icona.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.979899"
|
||||
inkscape:cx="217.83103"
|
||||
inkscape:cy="232.46478"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:snap-page="true"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:bbox-nodes="true"
|
||||
inkscape:window-width="3840"
|
||||
inkscape:window-height="2037"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Livello 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-161.53331)">
|
||||
<path
|
||||
style="fill:#000000;stroke-width:0.60455555"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 132.58283,242.7442 c -1.99133,9.55598 -17.83516,20.01408 -36.031803,22.04088 -9.488764,1.0561 -18.831211,2.02679 -28.793355,1.60056 -16.292162,-0.69628 -29.147806,-3.62736 -29.147806,-3.62736 0,1.47941 0.09781,2.88803 0.293419,4.20541 2.11809,14.99778 15.943189,15.89623 29.039044,16.31517 13.217918,0.42185 24.987523,-3.03984 24.987523,-3.03984 l 0.543019,11.14633 c 0,0 -9.245422,4.63092 -25.715199,5.48265 -9.081891,0.46567 -20.358551,-0.21311 -33.492748,-3.45585 C 5.7790714,286.37929 0.88015717,258.05582 0.13057087,229.31707 -0.09790411,220.78436 0.042939,212.73843 0.042939,206.00917 c 0,-29.38685 20.641795,-38.0006 20.641795,-38.0006 10.408143,-4.45868 28.267551,-6.33367 46.834294,-6.47526 h 0.456167 c 18.566742,0.14151 36.437885,2.01658 46.845245,6.47526 0,0 20.64103,8.61375 20.64103,38.0006 0,0 0.25899,21.68178 -2.87864,36.73503"
|
||||
id="path1428" />
|
||||
<path
|
||||
style="fill:#ffd42a;stroke-width:0.60455555"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 111.11398,208.28895 v 35.58258 H 96.000965 v -34.5367 c 0,-7.2803 -3.28394,-10.97554 -9.852602,-10.97554 -7.262697,0 -10.902651,4.38349 -10.902651,13.05125 V 230.3145 H 60.221901 v -18.90396 c 0,-8.66776 -3.640737,-13.05125 -10.903432,-13.05125 -6.568664,0 -9.852603,3.69524 -9.852603,10.97554 v 34.5367 H 24.352855 v -35.58258 c 0,-7.27227 1.985076,-13.05125 5.972437,-17.32675 4.111771,-4.27549 9.496588,-6.46724 16.181053,-6.46724 7.733731,0 13.590365,2.77272 17.462707,8.31888 l 3.764364,5.88627 3.765145,-5.88627 c 3.871561,-5.54616 9.728194,-8.31888 17.462708,-8.31888 6.683683,0 12.068501,2.19175 16.181051,6.46724 3.98658,4.2755 5.97166,10.05448 5.97166,17.32675"
|
||||
id="path1430" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 3.5 KiB |
|
@ -2,8 +2,18 @@
|
|||
|
||||
define('N',"\n");
|
||||
|
||||
$instpath='/mastostart';
|
||||
$path=preg_replace('/^'.preg_quote($instpath,'/').'/','',$_SERVER['REQUEST_URI']);
|
||||
function muoribene($msg,$ec) {
|
||||
echo($msg);
|
||||
exit($ec);
|
||||
}
|
||||
|
||||
$inifp='mastostart.ini';
|
||||
$conf=@parse_ini_file($inifp)
|
||||
or muoribene('Non ho potuto aprire «'.$inifp.'».'.N,1);
|
||||
if (!array_key_exists('instpath',$conf))
|
||||
muoribene('«'.$inifp.'»: “instpath” non è definito.'.N,1);
|
||||
|
||||
$path=preg_replace('/^'.preg_quote($conf['instpath'],'/').'/','',$_SERVER['REQUEST_URI']);
|
||||
$ndir=preg_match_all('/\//',$path)-1;
|
||||
$prepath='';
|
||||
for ($i=0; $i<$ndir; $i++)
|
||||
|
@ -25,9 +35,9 @@ if (preg_match('#/('.implode('|',$supplangs).')$#',$path,$lang)===1) {
|
|||
}
|
||||
|
||||
$menu=array(
|
||||
'guide'=>array('liadd'=>null, 'href'=>$instpath.'/'.$dlang, 'title'=>'Guide', 'selected'=>false, 'submenu'=>null),
|
||||
'instances'=>array('liadd'=>null, 'href'=>$instpath.'/instances/'.$dlang, 'title'=>'Instances', 'selected'=>false, 'submenu'=>null),
|
||||
'about'=>array('liadd'=>null, 'href'=>$instpath.'/about/'.$dlang, 'title'=>'About', 'selected'=>false, 'submenu'=>null),
|
||||
'guide'=>array('liadd'=>null, 'href'=>$conf['instpath'].'/'.$dlang, 'title'=>'Guide', 'selected'=>false, 'submenu'=>null),
|
||||
'instances'=>array('liadd'=>null, 'href'=>$conf['instpath'].'/instances/'.$dlang, 'title'=>'Instances', 'selected'=>false, 'submenu'=>null),
|
||||
'about'=>array('liadd'=>null, 'href'=>$conf['instpath'].'/about/'.$dlang, 'title'=>'About', 'selected'=>false, 'submenu'=>null),
|
||||
'language'=>array('liadd'=>null, 'href'=>null, 'title'=>'Language', 'selected'=>false, 'submenu'=>array(
|
||||
'ca'=>array('liadd'=>'onmouseover="this.style.cursor=\'pointer\'"', 'href'=>null, 'title'=>'Català', 'selected'=>false, 'submenu'=>null),
|
||||
'en'=>array('liadd'=>'onmouseover="this.style.cursor=\'pointer\'"', 'href'=>null, 'title'=>'English', 'selected'=>false, 'submenu'=>null),
|
||||
|
@ -39,7 +49,7 @@ $menu=array(
|
|||
);
|
||||
|
||||
foreach ($supplangs as $lang)
|
||||
$menu['language']['submenu'][$lang]['href']=$instpath.$path.'/'.$lang;
|
||||
$menu['language']['submenu'][$lang]['href']=$conf['instpath'].$path.'/'.$lang;
|
||||
|
||||
$menu['language']['submenu'][$dlang]['href']=null;
|
||||
$menu['language']['submenu'][$dlang]['liadd']=null;
|
||||
|
@ -168,7 +178,7 @@ switch($path) {
|
|||
}
|
||||
|
||||
/*
|
||||
<li><a href="<?php echo($instpath); ?>">Guide</a></li>
|
||||
<li><a href="<?php echo($conf['instpath']); ?>">Guide</a></li>
|
||||
<li><a href="instances">Instances</a></li>
|
||||
<li><a href="about">About us</a></li>
|
||||
<li onmouseover="chulsh(this,true)" onmouseout="chulsh(this,false)">Language
|
||||
|
|
1
web/mastostart.ini
Normal file
|
@ -0,0 +1 @@
|
|||
instpath=""
|
|
@ -9,8 +9,9 @@
|
|||
- pagina gestione proprio account
|
||||
- pagina gestione blacklist
|
||||
- pagina reset password
|
||||
- una pagina che rilevi eventuali inconsistenze nel db, tra le quali: mail account admin diversa da mail admin d'istanza
|
||||
# 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*)
|
||||
- una pagina che rilevi eventuali inconsistenze nel db, tra le quali: mail account guest diversa da mail di contatto istanza ()
|
||||
# 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*)
|
||||
- dispinst.php, invite.php: possibilità di reinvitare admin già invitat*
|
||||
? edinstres.php deve mostrare messaggio di successo
|
||||
* edinst.php: un'icona per deselezionare Locality
|
||||
* nei vari helper, sarebbe meglio morisse in json, alla bisogna
|
||||
|
@ -22,8 +23,8 @@
|
|||
* crawler.php: le notifiche, invece di edinst.php, devono linkare un viewinst.php che mostri l'istanza
|
||||
* crawler.php: sarebbe tanto bello fare a meno di tutta la faccenda "tronconi" ecc.
|
||||
! crawler.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.
|
||||
* instances.php: possibilità di filtraggio per GuestID, LastGuestEdit, OurLangsLock
|
||||
- include/dispinst.php: deve essere disponibile anche in inglese, per i guest
|
||||
* instances.php: possibilità di filtraggio per GuestID, LastGuestEdit, OurLangsLock
|
||||
- instances.php: possibilità di *scegliere* la lingua da usare tra quelle supportate per il filtraggio su Localities e Languages
|
||||
? instances.php: bottoni per pagina precedente-successiva
|
||||
- instances.php: alerta su cambio pagina quando è stato modificato filtro/ordinamento
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 5 KiB After Width: | Height: | Size: 5 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 6 KiB After Width: | Height: | Size: 6 KiB |
Before Width: | Height: | Size: 5 KiB After Width: | Height: | Size: 5 KiB |
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4 KiB |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 962 B After Width: | Height: | Size: 962 B |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 142 B After Width: | Height: | Size: 142 B |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
@ -4,11 +4,11 @@ if ($account['Level']!='guest') {
|
|||
$menu=array(
|
||||
'menu'=>array('liadd'=>null, 'href'=>null, 'title'=>'Menu', 'selected'=>false, 'submenu'=>
|
||||
array(
|
||||
'instances'=>array('liadd'=>null, 'href'=>'instances.php', 'title'=>'Instances', 'selected'=>false, 'submenu'=>null),
|
||||
'instances'=>array('liadd'=>null, 'href'=>'instances.php', 'title'=>'Istanze', 'selected'=>false, 'submenu'=>null),
|
||||
'blacklist'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Blacklist', 'selected'=>false, 'submenu'=>null),
|
||||
'accounts'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Accounts', 'selected'=>false, 'submenu'=>null),
|
||||
'notifs'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Notifications', 'selected'=>false, 'submenu'=>null),
|
||||
'signout'=>array('liadd'=>null, 'href'=>'logout.php', 'title'=>'Logout', 'selected'=>false, 'submenu'=>null)
|
||||
'notifs'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Notifiche', 'selected'=>false, 'submenu'=>null),
|
||||
'logout'=>array('liadd'=>null, 'href'=>'logout.php', 'title'=>'Logout', 'selected'=>false, 'submenu'=>null)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
@ -18,7 +18,7 @@ if ($account['Level']!='guest') {
|
|||
array(
|
||||
'instances'=>array('liadd'=>null, 'href'=>'guestinsts.php', 'title'=>'Instances', 'selected'=>false, 'submenu'=>null),
|
||||
'account'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Account', 'selected'=>false, 'submenu'=>null),
|
||||
'signout'=>array('liadd'=>null, 'href'=>'logout.php', 'title'=>'Logout', 'selected'=>false, 'submenu'=>null),
|
||||
'logout'=>array('liadd'=>null, 'href'=>'logout.php', 'title'=>'Logout', 'selected'=>false, 'submenu'=>null),
|
||||
)
|
||||
)
|
||||
);
|
|
@ -22,10 +22,12 @@ function ckfl() {
|
|||
var emsgs='';
|
||||
if (document.l.email.value=='') emsgs+='<li>You didn’t specify your email</li>';
|
||||
if (document.l.password.value=='') emsgs+='<li>You didn‘t specify your password</li>';
|
||||
if (emsgs!='')
|
||||
if (emsgs!='') {
|
||||
alerta('Error(s)','<ul>'+emsgs+'</ul>');
|
||||
else
|
||||
return false;
|
||||
} else {
|
||||
document.l.submit();
|
||||
}
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
|
@ -37,11 +39,11 @@ function ckfl() {
|
|||
Mustard Login
|
||||
</div>
|
||||
<div id="centerbox">
|
||||
<form action="login.php" name="l" method="post">
|
||||
<form action="login.php" name="l" method="post" onsubmit="return ckfl();">
|
||||
<table id="logintable">
|
||||
<tr><td>Email:</td><td class="rtd"><input type="text" name="email" maxlength="64" autofocus></td></tr>
|
||||
<tr><td>Password:</td><td class="rtd"><input type="password" name="password" maxlength="64"></td></tr>
|
||||
<tr><td></td><td class="rtd"><input type="button" value="Login" class="button" onClick="ckfl();"></td></tr>
|
||||
<tr><td></td><td class="rtd"><input type="submit" value="Login" class="button" onclick="ckfl();"></td></tr>
|
||||
<!-- <tr><td colspan="2" class="tiptd"><a href="passreset.php">Password dimenticata?</a></td></tr> -->
|
||||
</table>
|
||||
</form>
|