📄 metricsreport.pm
字号:
################################################################################ Copyright (c) 2003 Jason Remillard. All rights reserved.## This program is free software; you can redistribute it and modify it under# the terms of the GPL.# Action object for displaying a metrics report.package Codestriker::Action::MetricsReport;use strict;use Codestriker::Http::Template;use Codestriker::Model::Topic;use Codestriker::Model::MetricStats;# If the input is valid, produce a metrics report.sub process($$$) { my ($type, $http_input, $http_response) = @_; $http_response->generate_header(reload=>0, cache=>0); my $query = $http_response->get_query(); my $url_builder = Codestriker::Http::UrlBuilder->new($query); my $vars = {}; my @users_metrics = Codestriker::Model::MetricStats::get_basic_user_metrics(); # Anti-spam the email addresses. foreach my $user (@users_metrics) { $user->{name} = Codestriker->filter_email($user->{name}); } $vars->{user_metrics} = \@users_metrics; # Get the comment metrics. my @comment_metrics = Codestriker::Model::MetricStats::get_comment_metrics(); $vars->{comment_metrics} = \@comment_metrics; $vars->{comment_metrics_month_names} = $comment_metrics[0]->{results}->[0]->{monthnames}; # Get the topic metrics. my @topic_metrics = Codestriker::Model::MetricStats::get_topic_metrics(); $vars->{topic_metrics} = \@topic_metrics; $vars->{topic_metrics_month_names} = $topic_metrics[0]->{monthnames}; $vars->{download_url} = $url_builder->metric_report_download_raw_data(); my $template = Codestriker::Http::Template->new("metricsreport"); $template->process($vars); $http_response->generate_footer();}sub process_download($$$) { my ($type, $http_input, $http_response) = @_; my $query = $http_response->get_query(); print $query->header(-type=>'text/plain', -charset=>"UTF-8", -attachment=>"metrics.csv", -filename=>"metrics.csv"); my $columns = Codestriker::Model::MetricStats::get_download_headers(); print join "\t", @{$columns->{base}},@{$columns->{comment}}, @{$columns->{topic}}, @{$columns->{user}}; print "\n"; my @topicids = Codestriker::Model::MetricStats::get_topic_ids(); foreach my $id (@topicids) { my @line = Codestriker::Model::MetricStats::get_raw_metric_data($id->[0], $columns); print join "\t", @line; print "\n"; }}1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -