Skip to content

Commit

Permalink
add multiple locales for indexing CPN data to Opensearch
Browse files Browse the repository at this point in the history
  • Loading branch information
tischrei committed Apr 16, 2024
1 parent b87bd89 commit d6851fc
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 17 deletions.
2 changes: 2 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
CHANGES
=======

* write README
* finish import tool for CPN -> Opensearch
* prepare Opensearch input
* init
* Initial commit
51 changes: 34 additions & 17 deletions src/cpnsearch.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,14 @@ def get_parser():
help="OpenSearch index prefix.\n"
'Default: cpn-'
)
parser.add_argument(
'--locales',
metavar='<locales>',
nargs='+', # List of locale elements
default=['en', 'de-DE'],
help="OpenSearch locales\n"
'Default: ["en", "de-DE"]'
)
parser.add_argument(
'--password',
metavar='<password>',
Expand Down Expand Up @@ -114,10 +122,9 @@ def delete_indices(client, index_prefix):
sys.exit('Exception raised while indices deletion:\n' + str(e))


def strapi_request(strapi_token, strapi_url, page):
url = (strapi_url + '/api/partners?populate=localizations&populate='
'features.localizations&'
'populate=tags&populate=quotes.localizations&sort[0]=partner_id&'
def strapi_request(strapi_token, strapi_url, page, locale):
url = (strapi_url + '/api/partners?locale=' + locale + '&populate'
'=features&populate=tags&populate=quotes&sort[0]=partner_id&'
'pagination[pageSize]=5&pagination[page]=' + str(page))
headers = {
'Authorization': 'Bearer ' + strapi_token
Expand All @@ -129,16 +136,21 @@ def strapi_request(strapi_token, strapi_url, page):
return response.json()


def index_data(client, index_prefix, strapi_url, strapi_token):
index_name = "partners"
def index_data(client, index_prefix, strapi_url, strapi_token, locale):
language_code = locale.split('-')[0]
index_name = "partners-" + language_code
index = index_prefix + index_name
responses = []
data = {}
page = 1
not_finished = True

while not_finished:
data = strapi_request(strapi_token, strapi_url, page)
data = strapi_request(
strapi_token=strapi_token,
strapi_url=strapi_url,
page=page,
locale=locale)
bulk_data = []

# check for existing data
Expand Down Expand Up @@ -193,16 +205,21 @@ def main():

if args.delete_indices:
delete_indices(client=client, index_prefix=args.index_prefix)

response = index_data(
client=client,
index_prefix=args.index_prefix,
strapi_url=args.strapi_url,
strapi_token=args.strapi_token,
)

logging.info(response)


if args.locales:
locales = args.locales
print('Indexing data for locales: ', locales)
for locale in locales:
response = index_data(
client=client,
index_prefix=args.index_prefix,
strapi_url=args.strapi_url,
strapi_token=args.strapi_token,
locale=locale
)
logging.info(response)
else:
sys.exit('No locales specified.')

if __name__ == "__main__":
main()

0 comments on commit d6851fc

Please sign in to comment.