antfraia commited on
Commit
adfa7cc
·
1 Parent(s): cb910b8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -8
app.py CHANGED
@@ -1,7 +1,39 @@
1
- import gradio as gr
2
  import requests
 
 
3
  from pprint import pprint
4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  def get_product_details(asin, domain):
6
  payload = {
7
  'source': 'amazon_product',
@@ -12,10 +44,11 @@ def get_product_details(asin, domain):
12
  {'key': 'autoselect_variant', 'value': True}
13
  ],
14
  }
 
15
  response = requests.request(
16
  'POST',
17
  'https://realtime.oxylabs.io/v1/queries',
18
- auth=('antonces', 'APIusertest23'), # Be careful with hardcoded credentials
19
  json=payload,
20
  )
21
 
@@ -38,20 +71,20 @@ def amazon_combined_interface(asin, domain):
38
  return product_details
39
 
40
  review_output = display_raw_output(reviews)
41
- # You can format the product details output similarly as reviews or use pprint
42
- product_details_output = pprint(product_details)
43
 
44
  return f"Product Details:\n{product_details_output}\n\nReviews:\n{review_output}"
45
 
46
  # Gradio interface
47
  domain_options = ['co.uk', 'de', 'fr', 'it', 'es', 'nl', 'pl', 'se']
48
- iface = gr.Interface(
 
49
  fn=amazon_combined_interface,
50
  inputs=[
51
- gr.inputs.Textbox(label="Enter the ASIN"),
52
- gr.inputs.Dropdown(choices=domain_options, label="Select Marketplace"),
53
  ],
54
- outputs=gr.outputs.Textbox(label="Product Details & Reviews"),
55
  live=False,
56
  theme="monochrome"
57
  )
 
 
1
  import requests
2
+ from gradio import Interface
3
+ from gradio.components import Textbox, Dropdown
4
  from pprint import pprint
5
 
6
+ def get_reviews(asin, domain):
7
+ payload = {
8
+ 'source': 'amazon_reviews',
9
+ 'domain': domain,
10
+ 'query': asin,
11
+ 'parse': True,
12
+ 'start_page': 1,
13
+ }
14
+
15
+ if domain == 'it':
16
+ payload['geo_location'] = '20144'
17
+
18
+ response = requests.request(
19
+ 'POST',
20
+ 'https://realtime.oxylabs.io/v1/queries',
21
+ auth=('antonces', 'APIusertest23'), # Note: Avoid hardcoding credentials
22
+ json=payload,
23
+ )
24
+
25
+ if response.status_code == 200:
26
+ return response.json()
27
+ else:
28
+ return f"Error {response.status_code}: {response.text}"
29
+
30
+ def display_raw_output(reviews):
31
+ review_texts = []
32
+ for review in reviews['results'][0]['content']['reviews']:
33
+ review_text = f"Title: {review['title']}\nAuthor: {review['author']}\nRating: {review['rating']}\nContent: {review['content']}\n---"
34
+ review_texts.append(review_text)
35
+ return "\n\n".join(review_texts)
36
+
37
  def get_product_details(asin, domain):
38
  payload = {
39
  'source': 'amazon_product',
 
44
  {'key': 'autoselect_variant', 'value': True}
45
  ],
46
  }
47
+
48
  response = requests.request(
49
  'POST',
50
  'https://realtime.oxylabs.io/v1/queries',
51
+ auth=('antonces', 'APIusertest23'), # Note: Avoid hardcoding credentials
52
  json=payload,
53
  )
54
 
 
71
  return product_details
72
 
73
  review_output = display_raw_output(reviews)
74
+ product_details_output = str(product_details) # Simplified for the demo, you can format it further
 
75
 
76
  return f"Product Details:\n{product_details_output}\n\nReviews:\n{review_output}"
77
 
78
  # Gradio interface
79
  domain_options = ['co.uk', 'de', 'fr', 'it', 'es', 'nl', 'pl', 'se']
80
+
81
+ iface = Interface(
82
  fn=amazon_combined_interface,
83
  inputs=[
84
+ Textbox(label="Enter the ASIN"),
85
+ Dropdown(choices=domain_options, label="Select Marketplace"),
86
  ],
87
+ outputs=Textbox(label="Product Details & Reviews"),
88
  live=False,
89
  theme="monochrome"
90
  )