<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">All,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I have been working on a MePrints Widget for IRstats2 for a while now and I’m finding that the MD5 checksum that is displayed when using the /cgi/stats/report URL filtering on Author does not create the same MD5 checksum in the URL as does
when using the code below (found in the cfg/plugins/EPrints/Plugin/Stats/Sets.pm file).<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">$userid = ‘4’;<o:p></o:p></p>
<p class="MsoNormal">$val = Digest::MD5::md5_hex( encode_utf8($userid) );<o:p></o:p></p>
<p class="MsoNormal">print "$val\n"; <o:p></o:p></p>
<p class="MsoNormal">a87ff679a2f3e71d9181a67b7542122c<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’ve also just tried simply:<o:p></o:p></p>
<p class="MsoNormal">$val = Digest::MD5::md5_hex($userid);<o:p></o:p></p>
<p class="MsoNormal">a87ff679a2f3e71d9181a67b7542122c<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">For example (not sure if this is accessible outside our network) the following returns properly for the author as in all of the statistics are correct:<o:p></o:p></p>
<p class="MsoNormal"><a href="http://d-scholarship-dev-3.library.pitt.edu/cgi/stats/report/authors/c3ecdb1a4078bd398ff4bed89666e4f4/">http://d-scholarship-dev-3.library.pitt.edu/cgi/stats/report/authors/c3ecdb1a4078bd398ff4bed89666e4f4/</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">However, when I try to embed the same stats into a widget for meprints (code below) I get a different MD5 value (a87ff679a2f3e71d9181a67b7542122c) thus the MD5 values don’t match and as such the stats are incorrect (or actually missing
obviously). Otherwise the widget works as expected displaying both the downloads and top 5 eprints IRstats graphs – however the widget usually shows 0 for downloads and “No data found.” for the author.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">What am I missing or is there something in my settings for IRstats that needs changed?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">Brian Gregg.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">My IRstats Author Widget Code:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">package EPrints::Plugin::MePrints::Widget::IRStats2Author;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">use EPrints::Plugin::MePrints::Widget;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">@ISA = ( 'EPrints::Plugin::MePrints::Widget' );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">use strict;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">use Encode;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">sub new<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> my( $class, %params ) = @_;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> my $self = $class->SUPER::new( %params );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> if ( !$self->{session} )<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> $self->{session} = $self->{processor}->{session};<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> $self->{name} = "EPrints Profile System: IRStats Author Widget";<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> $self->{visible} = "all";<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> $self->{advertise} = 1;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> $self->{max_display} = 10;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> if( defined $self->{session} && defined $self->{session}->current_user )<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> unless( $self->{session}->current_user->has_role( 'deposit' ) )<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> $self->{enable} = 0;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> return $self;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">sub render_content<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> my( $self ) = @_;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> my $session = $self->{session};<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> my $user = $self->{user};<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> my $username = $user->get_value( 'username' );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> my $orcid = $user->get_value( 'orcid' );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> my $frag = $session->make_doc_fragment;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> my $repo_url = $session->get_repository->get_conf( "base_url" );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> # just need a container, a JS callback, a way to translate the current user ID into a IRStats2 Set value (??)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> my $userid = $user->get_id;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> #my $set_value = Digest::MD5::md5_hex( $user->get_id );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> my $set_value = Digest::MD5::md5_hex( encode_utf8( $user->get_id ) );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> $frag->appendChild( $session->make_text( "$userid,$set_value" ) );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> $frag->appendChild( $self->html_phrase( "downloads" ) );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> $frag->appendChild( $session->make_element( 'div', id => 'irstats2_downloads', style => 'width: 300px; height: 100px;margin-left:auto;margin-right:auto;' ) );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> $frag->appendChild( $session->make_javascript( <<GRAPH ) );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">new EPJS_Stats_GoogleGraph( { 'context': {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> 'range': '1y',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> 'datatype': 'downloads',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> 'set_name': 'authors',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> 'set_value': '$set_value'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">}, 'options': {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> 'container_id': 'irstats2_downloads'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">} } );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">GRAPH<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> $frag->appendChild( $self->html_phrase( "top" ) );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> $frag->appendChild( $session->make_element( 'div', id => 'irstats2_top' ) );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> $frag->appendChild( $session->make_javascript( <<TABLE ) );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">new EPJS_Stats_Table( { 'context': {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> 'range': '_ALL_',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> 'datatype': 'downloads',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> 'set_name': 'authors',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> 'set_value': '$set_value'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">}, 'options': {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> 'container_id': 'irstats2_top',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> 'top': 'eprint',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> 'limit': '5'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">} } );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">TABLE<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"> return $frag;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif">1;<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><span style="font-size:18.0pt;color:#323E4F">Brian D. Gregg<o:p></o:p></span></b></p>
<p class="MsoNormal"><i><span style="font-size:14.0pt;color:#323E4F">Solutions Architect
</span></i><span style="font-size:14.0pt;color:#323E4F">|<i> Manager Systems Development<o:p></o:p></i></span></p>
<p class="MsoNormal"><span style="color:#323E4F">University of Pittsburgh | University Library System<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#323E4F">Address: <a href="https://maps.google.com/maps?q=7500+Thomas+Blvd,+Pittsburgh,+PA&hl=en&sll=41.117935,-77.604698&sspn=7.662465,13.73291&oq=7500+Tho&t=h&hnear=7500+Thomas+Blvd,+Pittsburgh,+Pennsylvania+15208&z=17" target="_blank">
7500 Thomas Blvd. Room 129 Pittsburgh, PA 15208</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#17365D">Tel: (412) 648-3264 | Email: <a href="mailto:bdgregg@pitt.edu">
bdgregg@pitt.edu</a> | Fax: (412) 648-3585<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>