# -*- coding: utf-8 -*- import urllib2 import json class TrademarkSearchAPI(): login = "Zuykov" password = "Uodof8awdooLee9f" def __init__(self, *args, **options): pass def send_request(self, request): request['login'] = self.login request['password'] = self.password request_json = json.dumps(request, separators=(',', ':')) api_url = "https://api.poiskznakov.ru/" api_request = urllib2.Request(api_url , request_json, {'Content-Type': 'application/json'}) response = urllib2.urlopen(api_request) data = json.load(response) return data def search_trademark(self, keyword, similarity=100, nices=''): request = { 'module': 'search', 'procedure': 'make_search', 'search_type': 'wdesc', 'search_string': keyword, 'databases': [21, 23], 'use_translit': 'true', 'skip_expired': 'true', } if nices: request['icgs'] = [int(nice) for nice in nices.split(',')] if similarity < 100: request['search_method'] = 'similarity' request['minimum_similarity'] = similarity request['limit'] = 30 if similarity == 100: request['search_method'] = 'containment' request['limit'] = 30 if similarity == 146: request['search_method'] = 'identity' return self.send_request(request) def get_status(self, search_id): request = { 'module': 'search', 'procedure': 'check_status', 'search_id': search_id } return self.send_request(request) def get_results(self, search_id): # Если не готов результат, то ничего не делаем status = self.get_status(search_id) if status['search_status'] != 'finished': return {}, status request = { 'module': 'search', 'procedure': 'get_result', 'search_id': search_id, 'databases': [21, 23] } data = self.send_request(request) if int(data['total_records_found']) > 0: records = data['records_list'] trademarks = {} if records.get('21', None): trademarks = records['21']['records'].copy() if records.get('23', None): trademarks.update(records['23']['records']) return trademarks, status else: return None, status def get_details(self, ids, keys): request = { 'module': 'detail', 'procedure': 'get_detail_info', 'marks': list(ids), 'access_keys': list(keys) } data = self.send_request(request) rospatent = data['records_list'].get('21', {}).get('records', {}) romarin = data['records_list'].get('23', {}).get('records', {}) rospatent.update(romarin) return rospatent