Bug 22343: Fix runreport encoding issues
[koha.git] / misc / cronjobs / share_usage_with_koha_community.pl
1 #!/usr/bin/perl
2
3 use Modern::Perl;
4
5 use Pod::Usage;
6 use Getopt::Long;
7
8 use Koha::Script -cron;
9 use C4::Context;
10 use C4::UsageStats;
11 use C4::Log;
12 use POSIX qw(strftime);
13
14 my ( $help, $verbose, $force, $quiet );
15 GetOptions(
16     'h|help'    => \$help,
17     'v|verbose' => \$verbose,
18     'f|force'   => \$force,
19     'q|quiet'   => \$quiet,
20 ) || pod2usage(1);
21
22 if ($help) {
23     pod2usage(0);
24 }
25
26 unless ( C4::Context->preference('UsageStats') ) {
27     $quiet && exit;
28     pod2usage(
29 q|
30 The UsageStats system preference is not set.
31 If your library wants to share their usage statistics with the Koha community, you have to switch on this system preference
32
33 Setting the quiet flag will silence this message.
34 |
35     );
36     exit 1;
37 }
38
39 cronlogaction();
40
41 my $need_update = ($force ? 1 : C4::UsageStats::NeedUpdate() );
42
43 if ($need_update) {
44     say "Data need to be updated" if $verbose;
45     my $report = C4::UsageStats::BuildReport();
46     C4::UsageStats::ReportToCommunity($report);
47     C4::Context->set_preference( 'UsageStatsLastUpdateTime',
48         strftime( "%s", localtime ) );
49 }
50 elsif ($verbose) {
51     say "Data don't need to be updated";
52 }
53
54 =head1 NAME
55
56 share_usage_with_koha_community.pl - Share your library's usage with the Koha community
57
58 =head1 SYNOPSIS
59
60 share_usage_with_koha_community.pl [-h|--help] [-v|--verbose] [-f|--force] [-q|--quiet]
61
62 If the UsageStats system preference is set, you can launch this script to share your usage data
63 anonymously with the Koha community.
64
65 Collecting Koha usage statistics will help developers to know how Koha is used across the world.
66
67 This script will send the usage data for the bibliographic and authority records, checkouts, holds, orders,
68 and subscriptions.
69
70 Only the total number is retrieved. In no case will private data be shared!
71
72 In order to know which parts of Koha modules are used, this script will collect some system preference values.
73
74 If you want to tell us who you are, you can fill the UsageStatsLibraryName system preference with your library name, UsageStatsLibraryUrl, UsageStatsLibraryType and/or UsageStatsCountry, UsageStatsLibrariesInfo.
75
76 All these data will be analyzed on the http://hea.koha-community.org Koha community website.
77
78 IMPORTANT : please do NOT run the cron on the 1st, but on another day. The idea is to avoid all
79 Koha libraries sending their data at the same time ! So choose any day between 1 and 28 !
80
81 =head1 OPTIONS
82
83 =over
84
85 =item B<-h|--help>
86
87 Print a brief help message
88
89 =item B<-v|--verbose>
90
91 Verbose mode
92
93 =item B<-f|--force>
94
95 Force the update
96
97 =item B<-q|--quiet>
98
99 Do not emit "The UsageStats system preference is not set" message
100
101 =back
102
103 =head1 AUTHOR
104
105 Alex Arnaud <alex.arnaud@biblibre.com>
106
107 Jonathan Druart <jonathan.druart@biblibre.com>
108
109 =head1 COPYRIGHT
110
111 Copyright 2014 BibLibre
112
113 =head1 LICENSE
114
115 This file is part of Koha.
116
117 # Koha is free software; you can redistribute it and/or modify it
118 # under the terms of the GNU General Public License as published by
119 # the Free Software Foundation; either version 3 of the License, or
120 # (at your option) any later version.
121 #
122 # Koha is distributed in the hope that it will be useful, but
123 # WITHOUT ANY WARRANTY; without even the implied warranty of
124 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
125 # GNU General Public License for more details.
126 #
127 # You should have received a copy of the GNU General Public License
128 # along with Koha; if not, see <http://www.gnu.org/licenses>.
129
130 =cut