added GUID search

This commit is contained in:
muqeetali
2017-03-26 19:51:50 -05:00
parent af8f4c5a6e
commit 8e06294689
2 changed files with 49 additions and 5 deletions

View File

@@ -30,7 +30,7 @@ import requests
from pymongo import MongoClient
from .utils import validUsername
from .utils import get_json, config_log
from .utils import get_json, config_log, pretty_print
from .config import BLOCKCHAIN_DATA_FILE, PROFILE_DATA_FILE
@@ -173,6 +173,19 @@ def create_search_index():
profile = get_json(user['profile'])
hasBazaarId=False
# search for openbazaar id in the profile
if 'account' in profile:
for accounts in profile['account']:
if accounts['service'] == 'openbazaar':
hasBazaarId = True
search_profile['openbazaar']=accounts['identifier']
# pretty_print(search_profile['openbazaar'])
if (hasBazaarId == False):
search_profile['openbazaar'] = None
if 'name' in profile:
try:
@@ -192,6 +205,7 @@ def create_search_index():
search_profile['name'] = None
if 'twitter' in profile:
twitter_handle = profile['twitter']
try:
@@ -214,6 +228,9 @@ def create_search_index():
search_profile['profile'] = profile
search_profiles.save(search_profile)
# dedup names
people_names = list(set(people_names))
people_names = {'name': people_names}
@@ -225,6 +242,9 @@ def create_search_index():
usernames = {'username': usernames}
# save final dedup results to mongodb (using it as a cache)
people_cache.save(people_names)
twitter_cache.save(twitter_handles)
username_cache.save(usernames)
@@ -233,7 +253,7 @@ def create_search_index():
log.debug('Created name/twitter/username search index')
if __name__ == "__main__":
if(len(sys.argv) < 2):

View File

@@ -40,7 +40,7 @@ from search.db import search_db, search_profiles
from search.db import search_cache
from search.config import DEFAULT_LIMIT
from .utils import get_json,pretty_print
def anyword_substring_search_inner(query_word, target_words):
""" return True if ANY target_word matches a query_word
@@ -109,6 +109,18 @@ def substring_search(query, list_of_strings, limit_results=DEFAULT_LIMIT):
return matching
def search_people_by_GUID(query, limit_results=DEFAULT_LIMIT):
result={}
for entry in search_profiles.find({"openbazaar":query}, {"profile":1,"username" : 1}):
result["profile"] = entry["profile"]
result["username"] = entry["username"]
pretty_print(result)
def search_people_by_name(query, limit_results=DEFAULT_LIMIT):
query = query.lower()
@@ -116,9 +128,13 @@ def search_people_by_name(query, limit_results=DEFAULT_LIMIT):
people_names = []
# using mongodb as a cache, load data in people_names
for i in search_cache.people_cache.find():
people_names += i['name']
results = substring_search(query, people_names, limit_results)
return order_search_results(query, results)
@@ -129,11 +145,14 @@ def search_people_by_twitter(query, limit_results=DEFAULT_LIMIT):
query = query.lower()
twitter_handles = []
# using mongodb as a cache, load data
for i in search_cache.twitter_cache.find():
twitter_handles += i['twitter_handle']
results = substring_search(query, twitter_handles, limit_results)
return results
@@ -315,11 +334,16 @@ if __name__ == "__main__":
print '-' * 5
print fetch_profiles(name_search_results, search_type="name")
elif(option == '--search_twitter'):
query = sys.argv[2]
twitter_search_results = search_people_by_twitter(query, DEFAULT_LIMIT)
print twitter_search_results
print '-' * 5
print fetch_profiles(twitter_search_results, search_type="twitter")
elif(option == '--search_GUID'):
print "searching by GUID"
query = sys.argv[2]
search_people_by_GUID(query, DEFAULT_LIMIT)
elif(option == '--search_username'):
query = sys.argv[2]
username_search_results = search_people_by_username(query, DEFAULT_LIMIT)