Skip to content

Commit d29d463

Browse files
committed
Mudando Analytics para utilizar articlemetaapi e citedbyapi. Inclusão de listagem de citações recebidas por documentos
1 parent 2347fbd commit d29d463

20 files changed

Lines changed: 235 additions & 319 deletions

analytics/__init__.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ def main(global_config, **settings):
1919

2020
def add_stats(request):
2121
return controller.Stats(
22-
settings['articlemeta'],
22+
settings.get('articlemeta', None),
2323
settings['publicationstats'],
2424
settings['accessstats'],
25-
settings['citedby']
25+
settings.get('citedby', None)
2626
)
2727

2828
def add_chartsconfig(request):
@@ -34,6 +34,7 @@ def add_chartsconfig(request):
3434
config.add_route('faq_web', '/w/faq')
3535
config.add_route('reports', '/w/reports')
3636
config.add_route('accesses_web', '/w/accesses')
37+
config.add_route('accesses_document_web', '/w/accesses/document')
3738
config.add_route('accesses_list_journals_web', '/w/accesses/list/journals')
3839
config.add_route('accesses_list_issues_web', '/w/accesses/list/issues')
3940
config.add_route('accesses_list_articles_web', '/w/accesses/list/articles')
@@ -65,15 +66,16 @@ def add_chartsconfig(request):
6566
config.add_route('publication_article_subject_areas', '/ajx/publication/article/subject_areas')
6667
config.add_route('publication_article_subject_areas_publication_year', '/ajx/publication/article/subject_areas_publication_year')
6768
config.add_route('bibliometrics_journal_web', '/w/bibliometrics/journal')
68-
config.add_route('bibliometrics_list_granted_web', '/bibliometrics/list/granted')
69-
config.add_route('bibliometrics_list_received_web', '/bibliometrics/list/received')
70-
config.add_route('bibliometrics_list_citing_forms_web', '/bibliometrics/list/citing_forms')
71-
config.add_route('bibliometrics_list_impact_factor_web', '/bibliometrics/list/impact_factor')
72-
config.add_route('bibliometrics_list_citing_half_life_web', '/bibliometrics/list/citing_half_life')
69+
config.add_route('bibliometrics_list_granted_web', '/w/bibliometrics/list/granted')
70+
config.add_route('bibliometrics_list_received_web', '/w/bibliometrics/list/received')
71+
config.add_route('bibliometrics_list_citing_forms_web', '/w/bibliometrics/list/citing_forms')
72+
config.add_route('bibliometrics_list_impact_factor_web', '/w/bibliometrics/list/impact_factor')
73+
config.add_route('bibliometrics_list_citing_half_life_web', '/w/bibliometrics/list/citing_half_life')
7374
config.add_route('bibliometrics_journal_received_self_and_granted_citation_chart', '/ajx/bibliometrics/journal/received_self_and_granted_citation_chart')
7475
config.add_route('bibliometrics_journal_impact_factor_chart', '/ajx/bibliometrics/journal/impact_factor_chart')
7576
config.add_route('bibliometrics_journal_google_h5m5_chart', '/ajx/bibliometrics/journal/google_h5m5_chart')
7677
config.add_route('bibliometrics_document_received_citations', '/ajx/bibliometrics/document/received_citations')
78+
config.add_route('bibliometrics_document_list_received_citations', '/w/bibliometrics/document/list/received_citations')
7779
config.add_request_method(add_stats, 'stats', reify=True)
7880
config.add_request_method(add_chartsconfig, 'chartsconfig', reify=True)
7981

analytics/controller.py

Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
from analytics import utils
99
from analytics.custom_queries import custom_query
1010
from scieloh5m5 import h5m5
11+
from articlemeta.client import ThriftClient as ArticleMetaThriftClient
12+
from citedby.client import ThriftClient as CitedbyThriftClient
1113

1214

1315
PAGE_SIZE = 20
@@ -94,9 +96,7 @@ def __str__(self):
9496

9597
def articlemeta(host):
9698

97-
address, port = host.split(':')
98-
99-
return ArticleMeta(address, port)
99+
return ArticleMeta(host)
100100

101101

102102
def accessstats(host):
@@ -115,9 +115,7 @@ def publicationstats(host):
115115

116116
def bibliometrics(host):
117117

118-
address, port = host.split(':')
119-
120-
return BibliometricsStats(address, port)
118+
return BibliometricsStats(host)
121119

122120

123121
class Stats(object):
@@ -294,7 +292,7 @@ def citing_half_life(self, issn, collection, titles, citation_size=0):
294292
return self._compute_citing_half_life(query_result)
295293

296294

297-
class BibliometricsStats(clients.Citedby):
295+
class BibliometricsStats(CitedbyThriftClient):
298296

299297
def _compute_google_h5m5(self, data):
300298

@@ -342,7 +340,23 @@ def document_received_citations(self, document, py_range=None):
342340
except:
343341
return {}
344342

345-
return {'total': data.get('article', {}).get('total_received', 0)}
343+
result = {
344+
'total': data.get('article', {}).get('total_received', 0),
345+
'citedby': data.get('cited_by', [])
346+
}
347+
348+
for item in result['citedby']:
349+
350+
fa = item.get('first_author', {'given_names': '', 'surname': ''})
351+
352+
item['first_author_lt'] = ''
353+
if not isinstance(fa, dict):
354+
item['first_author_lt'] = fa
355+
else:
356+
item['first_author_lt'] = ', '.join(
357+
[fa.get('surname', ''), fa.get('given_names', '')])
358+
359+
return result
346360

347361
@staticmethod
348362
def _compute_publication_and_citing_years(query_result):
@@ -423,8 +437,8 @@ def publication_and_citing_years(self, issn, titles, py_range=None, size=0, cita
423437
body.update(aggs)
424438

425439
query_parameters = [
426-
clients.citedby_thrift.kwargs('size', '0'),
427-
clients.citedby_thrift.kwargs('search_type', 'count')
440+
self.CITEDBY_THRIFT.kwargs('size', '0'),
441+
self.CITEDBY_THRIFT.kwargs('search_type', 'count')
428442
]
429443

430444
query_result = json.loads(self.client.search(json.dumps(body), query_parameters))
@@ -515,8 +529,8 @@ def self_citations(self, issn, titles, py_range=None, size=0, raw=False):
515529
body.update(aggs)
516530

517531
query_parameters = [
518-
clients.citedby_thrift.kwargs('size', '0'),
519-
clients.citedby_thrift.kwargs('search_type', 'count')
532+
self.CITEDBY_THRIFT.kwargs('size', '0'),
533+
self.CITEDBY_THRIFT.kwargs('search_type', 'count')
520534
]
521535

522536
query_result = json.loads(self.client.search(json.dumps(body), query_parameters))
@@ -588,8 +602,8 @@ def granted_citations(self, issn, size=0, py_range=None, raw=False):
588602
body.update(aggs)
589603

590604
query_parameters = [
591-
clients.citedby_thrift.kwargs('size', '0'),
592-
clients.citedby_thrift.kwargs('search_type', 'count')
605+
self.CITEDBY_THRIFT.kwargs('size', '0'),
606+
self.CITEDBY_THRIFT.kwargs('search_type', 'count')
593607
]
594608

595609
query_result = json.loads(self.client.search(json.dumps(body), query_parameters))
@@ -667,8 +681,8 @@ def received_citations_by_year(self, issn, titles, py_range=None, size=0, raw=Fa
667681
body.update(aggs)
668682

669683
query_parameters = [
670-
clients.citedby_thrift.kwargs('size', '0'),
671-
clients.citedby_thrift.kwargs('search_type', 'count')
684+
self.CITEDBY_THRIFT.kwargs('size', '0'),
685+
self.CITEDBY_THRIFT.kwargs('search_type', 'count')
672686
]
673687

674688
query_result = json.loads(self.client.search(json.dumps(body), query_parameters))
@@ -745,8 +759,8 @@ def received_citations(self, issn, titles, py_range=None, size=0, raw=False):
745759
body.update(aggs)
746760

747761
query_parameters = [
748-
clients.citedby_thrift.kwargs('size', '0'),
749-
clients.citedby_thrift.kwargs('search_type', 'count')
762+
self.CITEDBY_THRIFT.kwargs('size', '0'),
763+
self.CITEDBY_THRIFT.kwargs('search_type', 'count')
750764
]
751765

752766
query_result = json.loads(self.client.search(json.dumps(body), query_parameters))
@@ -824,8 +838,8 @@ def citing_forms(self, issn, titles, py_range=None, size=0, raw=False):
824838
body.update(aggs)
825839

826840
query_parameters = [
827-
clients.citedby_thrift.kwargs('size', '0'),
828-
clients.citedby_thrift.kwargs('search_type', 'count')
841+
self.CITEDBY_THRIFT.kwargs('size', '0'),
842+
self.CITEDBY_THRIFT.kwargs('search_type', 'count')
829843
]
830844

831845
query_result = json.loads(self.client.search(json.dumps(body), query_parameters))
@@ -1562,7 +1576,7 @@ def by_publication_year(self, code, collection, field, py_range, sa_scope, la_sc
15621576
return query_result if raw else computed
15631577

15641578

1565-
class ArticleMeta(clients.ArticleMeta):
1579+
class ArticleMeta(ArticleMetaThriftClient):
15661580

15671581
@cache_region.cache_on_arguments()
15681582
def certified_collections(self):

analytics/templates/website/access_by_document_type.mako

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
## coding: utf-8
2+
% if content_scope in ['network', 'collection', 'journal']:
23
<div id="bydocumenttype" style="width:100%; height:400px;">
34
<span id="loading_bydocumenttype">
45
<img src="/static/images/loading.gif" />
@@ -15,3 +16,4 @@
1516
});
1617
});
1718
</script>
19+
% endif

analytics/templates/website/access_lifetime.mako

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
## coding: utf-8
2+
% if content_scope in ['network', 'collection', 'journal']:
23
<ul id="lifetime" style="width: 100%; list-style-type: none; padding: 0px; margin: 0px;"></ul>
34
<span id="loading_lifetime">
45
<img src="/static/images/loading.gif" />
@@ -16,4 +17,5 @@
1617
};
1718
});
1819
});
19-
</script>
20+
</script>
21+
% endif

analytics/templates/website/access_list_issues.mako

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
% for item in aclist:
1717
<tr>
1818
<td>
19-
<a href="http://${selected_collection['domain']}/scielo.php?script=sci_issuetoc&amp;pid=${item['issue'][1:]}" target="_blank">
19+
<a href="http://${selected_collection['domain']}/scielo.php?script=sci_issuetoc&amp;pid=${item['issue']}" target="_blank">
2020
<span class="glyphicon glyphicon-globe" />
2121
</a>
2222
${item['title']}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
## coding: utf-8
2+
<%inherit file="central_container_without_filters.mako"/>
3+
4+
<%block name="central_container">
5+
<%include file="access_datepicker.mako"/>
6+
<center>
7+
<div class="chart">
8+
<%include file="access_by_month_and_year.mako"/>
9+
</div>
10+
</center>
11+
</%block>
12+
13+
<%block name="extra_js">
14+
</%block>

analytics/templates/website/base.mako

Lines changed: 3 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
<div class="header-col level2">
5454
<div class="container-fluid">
5555
${selected_journal} (${selected_journal_code})
56-
<a href="?journal=clean" class="remove_session">
56+
<a href="${request.route_url('index_web')}?journal=clean" class="remove_session">
5757
<span class="glyphicon glyphicon-remove-circle navbar-right"/>
5858
</a>
5959
</div>
@@ -65,7 +65,7 @@
6565
<div class="header-col level3">
6666
<div class="container-fluid">
6767
${selected_document.original_title()}
68-
<a href="?document=clean" class="remove_session">
68+
<a href="${request.route_url('index_web')}?document=clean" class="remove_session">
6969
<span class="glyphicon glyphicon-remove-circle navbar-right"/>
7070
</a>
7171
</div>
@@ -75,48 +75,7 @@
7575
<div class="row">
7676
<nav class="navbar navbar-default" role="navigation">
7777
<div class="container-fluid">
78-
<ul class="nav navbar-nav">
79-
<li class="${'active' if page == 'home' else ''}">
80-
<a href="${request.route_url('index_web')}"><span class="glyphicon glyphicon-home"></span> ${content_scope}</a>
81-
</li>
82-
<li class="${'active' if page == 'accesses' else ''}">
83-
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">${_(u'Acessos')} <span class="caret"></span></a>
84-
<ul class="dropdown-menu">
85-
<li><a href="${request.route_url('accesses_web')}">${_(u'Gráficos')}</a></li>
86-
<li><a href="${request.route_url('accesses_list_journals_web')}">${_(u'Periódicos')}</a></li>
87-
<li><a href="${request.route_url('accesses_list_issues_web')}">${_(u'Top 100 Issues')}</a></li>
88-
<li><a href="${request.route_url('accesses_list_articles_web')}">${_(u'Top 100 Artigos')}</a></li>
89-
</ul>
90-
</li>
91-
<li class="${'active' if page == 'publication' else ''}">
92-
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">${_(u'Publicação')} <span class="caret"></span></a>
93-
<ul class="dropdown-menu">
94-
<li><a href="${request.route_url('publication_size_web')}">${_(u'Composição da coleção')}</a></li>
95-
<li><a href="${request.route_url('publication_article_web')}">${_(u'Gráficos de documentos')}</a></li>
96-
<li><a href="${request.route_url('publication_article_web_by_publication_year')}">${_(u'Gráficos de documentos por ano de publicação')}</a></li>
97-
<li><a href="${request.route_url('publication_journal_web')}">${_(u'Gráficos de periódicos')}</a></li>
98-
</ul>
99-
</li>
100-
<li class="${'active' if page == 'bibliometrics' else ''}">
101-
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">${_(u'Bibliometria')} <span class="caret"></span></a>
102-
<ul class="dropdown-menu">
103-
<li><a href="${request.route_url('bibliometrics_journal_web')}">${_(u'Gráficos')}</a></li>
104-
% if not 'bibliometrics' in under_development:
105-
<li><a href="${request.route_url('bibliometrics_list_impact_factor_web')}">${_(u'Impacto SciELO em 1, 2, 3, 4 e 5 anos')}</a></li>
106-
<li><a href="${request.route_url('bibliometrics_list_citing_half_life_web')}">${_(u'Vida media da citação')}</a></li>
107-
% endif
108-
<li><a href="${request.route_url('bibliometrics_list_granted_web')}">${_(u'Citações concedidas por periódicos')}</a></li>
109-
<li><a href="${request.route_url('bibliometrics_list_received_web')}">${_(u'Citações recebidas por periódicos')}</a></li>
110-
<li><a href="${request.route_url('bibliometrics_list_citing_forms_web')}">${_(u'Formas de citação do periódico')}</a></li>
111-
</ul>
112-
</li>
113-
<li class="${'active' if page == 'reports' else ''}">
114-
<a href="${request.route_url('reports')}">${_(u'Relatórios')}</a>
115-
</li>
116-
<li class="${'active' if page == 'faq' else ''}">
117-
<a href="${request.route_url('faq_web')}">FAQ</a>
118-
</li>
119-
</ul>
78+
<%include file="navbar.mako" />
12079
</div> <!-- div container-fluid -->
12180
</nav>
12281
</div> <!-- div row -->
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
## coding: utf-8
2+
<%inherit file="central_container_without_filters.mako"/>
3+
4+
<%block name="central_container">
5+
<div class="row container-fluid">
6+
<h3>${_(u'Citações Recebidas')} (${citedby['total']})</h3>
7+
<table class="table">
8+
<tr>
9+
<th>${_(u'ano de publicação')}</th>
10+
<th>${_(u'periódico')}</th>
11+
<th>${_(u'primeiro autor')}</th>
12+
<th>${_(u'título do documento')}</th>
13+
</tr>
14+
% for item in citedby['citedby']:
15+
<tr>
16+
<td>${item['code'][10:14]}</td>
17+
<td>${item['source']}</td>
18+
<td>
19+
${item.get('first_author_lt', '')}
20+
</td>
21+
<td>
22+
<a href="${item['url']}" target="_blank">
23+
${item['titles'][0]}
24+
</a>
25+
</td>
26+
</tr>
27+
% endfor
28+
</table>
29+
</div>
30+
</%block>

analytics/templates/website/bibliometrics_document_received_citations.mako

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
var url = "${request.route_url('bibliometrics_document_received_citations')}?code=${selected_code}&callback=?";
1616
1717
$.getJSON(url, function(data) {
18-
$('#document_received_citations_value').prepend($.number(data['total']).replace(',', '.'));
18+
$('#document_received_citations_value').prepend($.number(data['total']).replace(',', '.')+' <a href="${request.route_url('bibliometrics_document_list_received_citations')}" class="glyphicon glyphicon-list small"></a>');
1919
$("#loading_document_received_citations").hide();
2020
});
2121
});
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
## coding: utf-8
2+
<%include file="navbar_${content_scope}.mako"/>

0 commit comments

Comments
 (0)