import json
import pysolr


solr_server = pysolr.Solr("http://node0.d.dli.research-infrastructures.eu:8983/solr/DLIF-index-cleaned_shard1_replica1")
"""
result =solr_server.search(q="localidentifier:'10.5517/ccp8ql7' ", rows=20, **{
   'facet':'true',
   'start':10,
   'facet.field':['entitytype', 'provenance']
});
"""


def getPointingTo(query, type):
    result = solr_server.search(q=query, rows=10, **{
       'facet':'true',
       'facet.field':['relatedobjtype'],
       'fq':'entitytype:"%s"'%type,
       'fq':'entitytype:"publication"'

    })

    fields =result.facets['facet_fields']

    return {type: [{'key':fields['relatedobjtype'][i], 'value':fields['relatedobjtype'][i+1]} for i in range(0,len(fields['relatedobjtype']),2)]}


def get_stats(self):
        stats = {}
        response = self.solr_server.search(q='*:*', rows=0, **{
            'facet': 'true',
            'facet.field': ['provenance']
            })
        d = response.facets['facet_fields']['provenance']
        stats['dataset'] = [[d[i], d[i+1]] for i in range(0, len(d), 2)]
        response = self.solr_server.search(q='*:*', rows=0, **{
            'facet': 'true',
            'facet.field': ['provenance'],
            'fq': ['entitytype:"publication"']
        })
        d = response.facets['facet_fields']['provenance']
        stats['publication'] = [[d[i], d[i+1]] for i in range(0, len(d), 2)]
        return stats


def get_stats_detail_part2(stat_dict):
    response =solr_server.search(q='*:*', rows=0, **{
           'facet':'true',
           'facet.field':['provenance'],
            'fq': ['entitytype:"publication"']
        })
    res = response.facets['facet_fields']
    data= res['provenance']
    total_pubs = [(data[i], data[i+1]) for i in range(len(data)) if (i % 2) == 0]
    for item in total_pubs:
        if item[0] not in stat_dict:
             stat_dict[item[0]] = {'totalObject': 0, 'totalPublication': 0, 'totalDatasets': 0, 'totalRelations': 0}
        stat_dict[item[0]]['totalPublication'] =item[1]

    response =solr_server.search(q='*:*', rows=0, **{
           'facet':'true',
           'facet.field':['provenance'],
            'fq': ['entitytype:"dataset"']
        })
    res = response.facets['facet_fields']
    data= res['provenance']
    total_datasets = [(data[i], data[i+1]) for i in range(len(data)) if (i % 2) == 0]
    for item in total_datasets:
        if item[0] not in stat_dict:
             stat_dict[item[0]] ={}
        stat_dict[item[0]]['totalDatasets'] =item[1]




def get_stats_detail():
    response =solr_server.search(q='*:*', rows=0, **{
           'facet':'true',
           'facet.field':['provenance', 'relationprovenance']
        })
    res = response.facets['facet_fields']
    data= res['provenance']
    repo_name = [data[i] for i in range(len(data)) if (i % 2) == 0]
    stat_dict = {}
    total_item = [(data[i], data[i+1]) for i in range(len(data)) if (i % 2) == 0]
    for repo in  repo_name:
        stat_dict[repo] ={'totalObject': 0, 'totalPublication': 0, 'totalDatasets': 0, 'totalRelations': 0}
    for item in total_item:
        stat_dict[item[0]]['totalObject'] =item[1]
    data= res['relationprovenance']
    total_rels = [(data[i], data[i+1]) for i in range(len(data)) if (i % 2) == 0]
    for item in total_rels:
        if item[0] not in stat_dict:
             stat_dict[item[0]] ={'totalObject': 0, 'totalPublication': 0, 'totalDatasets': 0, 'totalRelations': 0}
        stat_dict[item[0]]['totalRelations'] =item[1]
    return stat_dict



import urllib2


import re
p = re.compile("((https?):((//)|(\\\\))+([\w\d:#@%/;$()~_?\+-=\\\.&](#!)?)*)")

print p.match("http://data.aims.gov.au/extpubs/do/viewpub.do?articleid=7037")




data =urllib2.urlopen("http://node0.d.dli.research-infrastructures.eu:8080/dli/mvc/ui/stats/getLastStats")
json.loads(data.read())


