diff --git a/components/milliways.php b/components/milliways.php index 7608d405cb3e711cf8e6498b1e7305e163cc8ece..08887b6c6e31fc5c2c81b32c703c59f8220db995 100644 --- a/components/milliways.php +++ b/components/milliways.php @@ -33,6 +33,8 @@ for($i=0;$i<=$mwpath;$i++) { } $smarty->assign("mwpath", $newpath); +$cal = cal_info(CAL_JULIAN); + if (strtolower($pathlist[$mwpath+1]) == "uri") { $today = FALSE; if (isset($pathlist[$mwpath+2])) @@ -45,7 +47,7 @@ if (strtolower($pathlist[$mwpath+1]) == "uri") { '<meta name="ROBOTS" content="NOFOLLOW" />')); $mwdb = new PDO('sqlite:/var/lib/mw/mwuri.db'); - $res = $mwdb->prepare("select *, time(added) as hour, date(added) as day from mwuri where date(added)=? order by added desc"); + $res = $mwdb->prepare("select *, time(added,'localtime') as hour, date(added,'localtime') as day from mwuri where date(added,'localtime')=? order by added desc"); $res->execute(array(date("Y-m-d",$today))); $data = $res->fetchAll(PDO::FETCH_ASSOC); foreach($data as $k => $row) @@ -64,7 +66,11 @@ if (strtolower($pathlist[$mwpath+1]) == "uri") { $res= $mwdb->prepare("select distinct strftime('%m',added) from mwuri where strftime('%Y',added) = ?"); $res->execute(array(date("Y",$today))); - $monthlist = $res->fetchAll(PDO::FETCH_COLUMN,0); + $mlist = $res->fetchAll(PDO::FETCH_COLUMN,0); + $monthlist = array(); + foreach( $mlist as $m) { + $monthlist[$m] = $cal['abbrevmonths'][(int)$m]; + } $smarty->assign("monthlist",$monthlist); $res= $mwdb->prepare("select distinct strftime('%d',added) from mwuri where strftime('%Y-%m',added) = ?"); @@ -84,6 +90,99 @@ if (strtolower($pathlist[$mwpath+1]) == "uri") { return; } +if (strtolower($pathlist[$mwpath+1]) == "status") { + $today = FALSE; + $wantuser = FALSE; + if (isset($pathlist[$mwpath+2])) { + if ($pathlist[$mwpath+2] == "user" && isset($pathlist[$mwpath+3])) + $wantuser = $pathlist[$mwpath+3]; + else + $today = strtotime($pathlist[$mwpath+2]); + } + if ($today === FALSE) + $today = time(); + + $smarty->assign("extra_scripts", array( + '<meta name="ROBOTS" content="NOINDEX" />', + '<meta name="ROBOTS" content="NOFOLLOW" />')); + + $mwdb = new PDO('sqlite:/var/lib/mw/mwuri.db'); + if ($wantuser !== FALSE) { + $res = $mwdb->prepare("select *, time(added,'localtime') as hour, date(added,'localtime') as day from mwdoing where user=? order by added desc"); + $res->execute(array($wantuser)); + } else { + $res = $mwdb->prepare("select *, time(added,'localtime') as hour, date(added,'localtime') as day from mwdoing where strftime('%Y-%m',added,'localtime')=? order by added desc"); + $res->execute(array(date("Y-m",$today))); + } + //$res = $mwdb->prepare("select *, time(added,'localtime') as hour, date(added,'localtime') as day from mwdoing where date(added,'localtime')=? order by added desc"); + //$res->execute(array(date("Y-m-d",$today))); + $data = $res->fetchAll(PDO::FETCH_ASSOC); + $smarty->assign("statuslist", $data); + + $res = $mwdb->prepare("select distinct strftime('%Y',added) from mwdoing"); + $res->execute(); + $yearlist = $res->fetchAll(PDO::FETCH_COLUMN,0); + $smarty->assign("yearlist",$yearlist); + + $res= $mwdb->prepare("select distinct strftime('%m',added) from mwdoing where strftime('%Y',added) = ?"); + $res->execute(array(date("Y",$today))); + $mlist = $res->fetchAll(PDO::FETCH_COLUMN,0); + $monthlist = array(); + foreach( $mlist as $m) { + $monthlist[$m] = $cal['abbrevmonths'][(int)$m]; + } + $smarty->assign("monthlist",$monthlist); + + $res= $mwdb->prepare("select distinct strftime('%d',added) from mwdoing where strftime('%Y-%m',added) = ?"); + $res->execute(array(date("Y-m",$today))); + $daylist = $res->fetchAll(PDO::FETCH_COLUMN,0); + $smarty->assign("daylist",$daylist); + + $smarty->assign("thisyear", date("Y",$today)); + $smarty->assign("thismonth", date("m",$today)); + $smarty->assign("thisday", date("d",$today)); + + $output = $smarty->fetch($base."templates/milliways_status.tpl"); + $smarty->assign("title", "Milliways Status"); + $smarty->assign("body", $output); + $smarty->assign("extra_styles", "/css/milliways.css"); + $smarty->assign("refresh", 120); + return; +} + +if (strtolower($pathlist[$mwpath+1]) == "tag") { + $smarty->assign("extra_scripts", array( + '<meta name="ROBOTS" content="NOINDEX" />', + '<meta name="ROBOTS" content="NOFOLLOW" />')); + + $mwdb = new PDO('sqlite:/var/lib/mw/mwuri.db'); + if (isset($pathlist[$mwpath+2])) { + $res = $mwdb->prepare("select *, date(added) as day, substr(tag,2) as name from mwtag where tag=? order by added desc"); + $res->execute(array('#'.$pathlist[$mwpath+2])); + $data = $res->fetchAll(PDO::FETCH_ASSOC); + $smarty->assign("taglist", $data); + $output = $smarty->fetch($base."templates/milliways_tag.tpl"); + } else { + $res = $mwdb->prepare("select distinct tag, substr(tag,2) as name, count(tag) as count from mwtag group by tag order by count(tag) desc limit 20"); + $res->execute(); + $data = $res->fetchAll(PDO::FETCH_ASSOC); + $smarty->assign("toplist", $data); + + $res = $mwdb->prepare("select distinct tag, substr(tag,2) as name, count(tag) as count, max(added) as dated, date(max(added)) as day from mwtag group by tag order by max(added) desc limit 20"); + $res->execute(); + $data = $res->fetchAll(PDO::FETCH_ASSOC); + $smarty->assign("latestlist", $data); + + $output = $smarty->fetch($base."templates/milliways_taglist.tpl"); + } + + $smarty->assign("title", "Milliways Tags"); + $smarty->assign("body", $output); + $smarty->assign("extra_styles", "/css/milliways.css"); + $smarty->assign("refresh", 120); + return; +} + exec("/usr/bin/mw -who", $wholist, $ret); $people = array(); $idlers = array(); @@ -108,6 +207,22 @@ usort($idlers, 'compare_idletime'); $output .= print_r($pathlist, true); +// summary lists +$mwdb = new PDO('sqlite:/var/lib/mw/mwuri.db'); +$res = $mwdb->prepare("select *, time(added,'localtime') as hour, date(added,'localtime') as day from mwuri where date(added,'localtime')=? order by added desc limit 5"); +$res->execute(array(date("Y-m-d"))); +$urilist = $res->fetchAll(PDO::FETCH_ASSOC); +foreach ($urilist as $k=>$v) { + if ($v['title'] == "") $urilist[$k]['title']=$v['url']; + $urilist[$k]['title']=trim($urilist[$k]['title']); +} +$smarty->assign("urilist", $urilist); + +$res = $mwdb->prepare("select distinct tag, substr(tag,2) as name, count(tag) as count, max(added) as dated, date(max(added)) as day from mwtag group by tag order by max(added) desc limit 5"); +$res->execute(); +$taglist = $res->fetchAll(PDO::FETCH_ASSOC); +$smarty->assign("taglist", $taglist); + $smarty->assign("people",$people); $smarty->assign("idlers",$idlers); $output = $smarty->fetch($base."templates/milliways.tpl"); diff --git a/templates/milliways.tpl b/templates/milliways.tpl index 8170155623087346256837d63c6717489475edea..4b4fd24703a22834c012a957eabaec3fc3813158 100644 --- a/templates/milliways.tpl +++ b/templates/milliways.tpl @@ -12,15 +12,19 @@ </div> <div class="cbb"> -<h3>Filthy Milliways Idlers</h3> -{if $idlers|@count < 1} -<p>Everyone's awake..!</p> -{else} +<h3><a href="{$mwpath}/URI">Recent URIs</a></h3> <ul> - {foreach name=idlers from=$idlers item=person} - <li>{$person.username} <small>({$person.idle} idle)</small></li> + {foreach name=list from=$urilist item=uri} + <li style="white-space: nowrap">{$uri.user} <small><a href="{$uri.url}" title="{$uri.title}">{$uri.title|truncate:18:"..":true:false}</a></small></li> {/foreach} </ul> -{/if} </div> +<div class="cbb"> +<h3><a href="{$mwpath}/tag">Recent TAGs</a></h3> +<ul> + {foreach name=taglist from=$taglist item=tag} + <li>{$tag.user} <a href="{$mwpath}/tag/{$tag.name|escape:'url'}">{$tag.tag}</a></li> + {/foreach} +</ul> +</div> diff --git a/templates/milliways_status.tpl b/templates/milliways_status.tpl new file mode 100644 index 0000000000000000000000000000000000000000..0c5d4e9040a1d2fc79b260aa267b065debb403db --- /dev/null +++ b/templates/milliways_status.tpl @@ -0,0 +1,35 @@ +<table> +<tr> + <td nowrap="nowrap" class="date" colspan="3"> +Year: {foreach from=$yearlist item=year}{if $year != $thisyear}<a href="{$mwpath}/Status/{$year}-01-01">{$year}</a> {else}{$year} {/if}{/foreach} + </td> +</tr> +<tr> + <td nowrap="nowrap" class="date" colspan="3"> +Month: {foreach from=$monthlist key=num item=month}{if $num != $thismonth}<a href="{$mwpath}/Status/{$thisyear}-{$num}-01">{$month}</a> {else}{$month} {/if}{/foreach} + </td> +</tr> +{* do whole months for now +<tr> + <td nowrap="nowrap" class="date" colspan="3"> +Day: {foreach from=$daylist item=day}{if $day != $thisday}<a href="{$mwpath}/Status/{$thisyear}-{$thismonth}-{$day}">{$day}</a> {else}{$day} {/if}{/foreach} + </td> +</tr> +*} +{assign var=lastday value=''} +{foreach from=$statuslist item=row name=list} +{if $row.day != $lastday} +{assign var=lastday value=$row.day} +<tr> + <td nowrap="nowrap" class="date" colspan="3">{$row.added|date_format:'%d %b %Y'}</td> +</tr> +{/if} +{assign var=rows value=1} +{if $row.title}{assign var=rows value=$rows+1}{/if} +{if count($row.taglist)}{assign var=rows value=$rows+1}{/if} +<tr> + <td nowrap="nowrap" class="time" rowspan="{$rows}">{$row.hour}</td> + <td ><a href="{$mwpath}/Status/user/{$row.user|escape:'url'}">{$row.user|escape:'htmlall'}</a> {$row.doing|escape:'htmlall'}</td> +</tr> +{/foreach} +</table> diff --git a/templates/milliways_tag.tpl b/templates/milliways_tag.tpl new file mode 100644 index 0000000000000000000000000000000000000000..a378416b19b535fd0d6fa6d3eab6b865995d171d --- /dev/null +++ b/templates/milliways_tag.tpl @@ -0,0 +1,16 @@ +<table> +{assign var=lastday value=''} +{foreach from=$taglist item=row name=list} +{if $row.day != $lastday} +{assign var=lastday value=$row.day} +<tr> + <td nowrap="nowrap" class="date" colspan="3">{$row.added|date_format:'%d %b %Y'}</td> +</tr> +{/if} +<tr> + <td nowrap="nowrap" class="time">{$row.added|date_format:'%H:%M:%S'}</td> + <td nowrap="nowrap" class="user">{$row.user}</td> + <td>{$row.line|escape:'htmlall'}</td> +</tr> +{/foreach} +</table> diff --git a/templates/milliways_taglist.tpl b/templates/milliways_taglist.tpl new file mode 100644 index 0000000000000000000000000000000000000000..5d2ad990309fab13ef9e3c9dff68cd8044c9d89e --- /dev/null +++ b/templates/milliways_taglist.tpl @@ -0,0 +1,34 @@ +<table cellspacing="20"> +<tr><td valign="top"> +<table> +<tr><th colspan="2">Most Popular</th></tr> +{foreach from=$toplist item=row name=toplist} +<tr> + <td nowrap="nowrap" class="user"> +<a href="{$mwpath}/tag/{$row.name|escape:'url'}">{$row.tag}</a> +</td> + <td class="time">{$row.count}</td> +</tr> +{/foreach} +</table> + +</td><td valign="top"> +<table> +<tr><th colspan="2">Latest</th></tr> +{assign var=lastday value=''} +{foreach from=$latestlist item=row name=list} +{if $row.day != $lastday} +{assign var=lastday value=$row.day} +<tr> + <td nowrap="nowrap" class="date" colspan="3">{$row.dated|date_format:'%d %b %Y'}</td> +</tr> +{/if} +<tr> + <td nowrap="nowrap" class="user"> +<a href="{$mwpath}/tag/{$row.name|escape:'url'}">{$row.tag}</a> + </td> + <td nowrap="nowrap" class="time">{$row.dated|date_format:'%H:%M:%S'}</td> +</tr> +{/foreach} +</table> +</td></tr></table> diff --git a/templates/milliways_uri.tpl b/templates/milliways_uri.tpl index 32153a68e99a9b65bce580f1b236ae2d533e4f76..9fb49fc374dcbfdb85bc92ab7665e39b5b0702eb 100644 --- a/templates/milliways_uri.tpl +++ b/templates/milliways_uri.tpl @@ -1,21 +1,22 @@ <table> <tr> <td nowrap="nowrap" class="date" colspan="3"> -Year: {foreach from=$yearlist item=year}{if $year != $thisyear}<a href="{$mwpath}/uri/{$year}-01-01">{$year}</a> {else}{$year}{/if}{/foreach} +Year: {foreach from=$yearlist item=year}{if $year != $thisyear}<a href="{$mwpath}/uri/{$year}-01-01">{$year}</a> {else}{$year} {/if}{/foreach} </td> </tr> <tr> <td nowrap="nowrap" class="date" colspan="3"> -Month: {foreach from=$monthlist item=month}{if $month != $thismonth}<a href="{$mwpath}/uri/{$thisyear}-{$month}-01">{$month}</a> {else}{$month} {/if}{/foreach} +Month: {foreach from=$monthlist key=num item=month}{if $num != $thismonth}<a href="{$mwpath}/uri/{$thisyear}-{$num}-01">{$month}</a> {else}{$month} {/if}{/foreach} </td> </tr> <tr> <td nowrap="nowrap" class="date" colspan="3"> -Day: {foreach from=$daylist item=day}{if $day != $thisday}<a href="{$mwpath}/uri/{$thisyear}-{$thismonth}-{$day}">{$day}</a> {else}{$day}{/if}{/foreach} +Day: {foreach from=$daylist item=day}{if $day != $thisday}<a href="{$mwpath}/uri/{$thisyear}-{$thismonth}-{$day}">{$day}</a> {else}{$day} {/if}{/foreach} </td> </tr> {assign var=lastday value=''} {foreach from=$urilist item=row name=list} +{if stristr($row.flags,"sucs")===FALSE || $session->loggedin} {if $row.day != $lastday} {assign var=lastday value=$row.day} <tr> @@ -27,8 +28,8 @@ Day: {foreach from=$daylist item=day}{if $day != $thisday}<a href="{$mwpath}/uri {if count($row.taglist)}{assign var=rows value=$rows+1}{/if} <tr> <td nowrap="nowrap" class="time" rowspan="{$rows}">{$row.hour}</td> - <td nowrap="nowrap" class="user" rowspan="{$rows}">{$row.user}</td> - <td ><a href="{$row.url|escape:"hexentity"}">{$row.url|truncate:80:" ... ":true:true|escape:"html"}</a></td> + <td nowrap="nowrap" class="user" rowspan="{$rows}">{if stristr($row.flags,"anon")===FALSE}{$row.user}{else}<i>Anonymous</i>{/if}</td> + <td ><a href="{$row.url|escape:"hexentity"}">{$row.url|truncate:80:" ... ":true:true|escape:"html"}</a>{if stristr($row.flags,"nsfw")!==FALSE} (NSFW){/if}</td> </tr> {if $row.title} <tr><td>{$row.title|escape:"html"}</td></tr> @@ -41,5 +42,6 @@ Day: {foreach from=$daylist item=day}{if $day != $thisday}<a href="{$mwpath}/uri </td> </tr> {/if} +{/if} {/foreach} </table>