Kyo-Kai commited on
Commit
5db5fe3
1 Parent(s): 71de518

Update commands/universal.py

Browse files
Files changed (1) hide show
  1. commands/universal.py +36 -33
commands/universal.py CHANGED
@@ -12,11 +12,7 @@ def searchQuery(user_search, driver, elem, mode=0, score="", isLoggedIn=True):
12
  driver.execute_script("arguments[0].click();", anchor)
13
 
14
  user_search = user_search.lower()
15
- try:
16
- WebDriverWait(driver, timeout=5).until(EC.presence_of_element_located((By.XPATH, elem)))
17
- except:
18
- driver.refresh()
19
- WebDriverWait(driver, timeout=20).until(EC.presence_of_element_located((By.XPATH, elem)))
20
  search_bar = driver.find_element(By.XPATH, elem)
21
 
22
  try:
@@ -31,13 +27,14 @@ def searchQuery(user_search, driver, elem, mode=0, score="", isLoggedIn=True):
31
  if not mode:
32
  specific_Query(driver=driver, search_bar=search_bar, user_search=user_search)
33
  else:
 
34
  search_bar.send_keys(Keys.ARROW_DOWN)
35
  time.sleep(2)
36
 
37
  if mode:
38
  search_bar.send_keys(Keys.ARROW_DOWN)
39
  time.sleep(1.2)
40
- search_bar.send_keys(Keys.ENTER)
41
  time.sleep(0.3)
42
 
43
  try:
@@ -94,44 +91,50 @@ def continue_Search(driver, link, mode=0):
94
 
95
 
96
  def specific_Query(driver, search_bar, user_search):
97
- user_search = user_search.replace("_"," ").split()
 
 
 
 
 
98
  try:
99
- for user_word in user_search:
100
  time.sleep(1.2)
101
  driver.execute_script('arguments[0].value=arguments[1]', search_bar, user_word)
102
- time.sleep(0.6)
103
  search_bar.send_keys(Keys.SPACE)
104
- time.sleep(2.2)
105
-
106
- checker = 0
107
- tag_pos = 0
108
-
109
- search_bar_queries = driver.find_element(By.XPATH, '//*[@class="sc-1974j38-2 kjWkkt"]').find_elements(By.XPATH, './/*[@class="sc-d98f2c-0"]')
110
- for n_iter, query in enumerate(search_bar_queries):
111
- query_text = query.find_element(By.XPATH, './/div//div[2]').text.lower()
112
-
113
- for text in user_search:
114
- if query_text.find(text) != -1:
115
- checker += 1
116
-
117
- if checker == len(user_search):
118
- tag_pos = n_iter
119
  break
120
- else:
121
- checker = 0
122
 
123
- if checker == len(user_search):
124
- for i in range(tag_pos+1):
125
- time.sleep(0.5)
126
- search_bar.send_keys(Keys.ARROW_DOWN)
127
  break
128
- except:
129
- driver.execute_script('arguments[0].value=arguments[1]', search_bar, user_search)
 
 
 
 
 
 
130
  search_bar.send_keys(Keys.ENTER)
131
 
 
132
  def contains_works(driver, elem):
133
  try:
134
  WebDriverWait(driver, timeout=9).until(EC.presence_of_element_located((By.XPATH, elem)))
135
  return True
136
  except:
137
- return False
 
 
 
12
  driver.execute_script("arguments[0].click();", anchor)
13
 
14
  user_search = user_search.lower()
15
+ WebDriverWait(driver, timeout=15).until(EC.presence_of_element_located((By.XPATH, elem)))
 
 
 
 
16
  search_bar = driver.find_element(By.XPATH, elem)
17
 
18
  try:
 
27
  if not mode:
28
  specific_Query(driver=driver, search_bar=search_bar, user_search=user_search)
29
  else:
30
+ time.sleep(1)
31
  search_bar.send_keys(Keys.ARROW_DOWN)
32
  time.sleep(2)
33
 
34
  if mode:
35
  search_bar.send_keys(Keys.ARROW_DOWN)
36
  time.sleep(1.2)
37
+ search_bar.send_keys(Keys.ENTER)
38
  time.sleep(0.3)
39
 
40
  try:
 
91
 
92
 
93
  def specific_Query(driver, search_bar, user_search):
94
+ # Replace underscores with spaces and append the full search term
95
+ user_search_words = user_search.replace("_", " ").split()
96
+ user_search_words.append(''.join(user_search_words))
97
+ full_query_found = False
98
+ query_to_click = None
99
+
100
  try:
101
+ for user_word in user_search_words:
102
  time.sleep(1.2)
103
  driver.execute_script('arguments[0].value=arguments[1]', search_bar, user_word)
104
+ time.sleep(1)
105
  search_bar.send_keys(Keys.SPACE)
106
+ time.sleep(2.5)
107
+
108
+ search_bar_queries = driver.find_elements(By.XPATH, '//*[@class="sc-1974j38-2 kjWkkt"]//a')
109
+ for query in search_bar_queries:
110
+ query_text = query.find_element(By.XPATH, './/div').text.lower()
111
+ if len(query.find_elements(By.XPATH, './/div//div[2]')) > 0:
112
+ query_text = query.find_element(By.XPATH, './/div//div[2]').text.lower()
113
+
114
+ if all(word in query_text for word in user_search_words[:-1]):
115
+ query_to_click = query
116
+ full_query_found = True
117
+ time.sleep(0.3)
 
 
 
118
  break
 
 
119
 
120
+ if full_query_found:
 
 
 
121
  break
122
+
123
+ except Exception as e:
124
+ pass
125
+
126
+ if full_query_found:
127
+ driver.execute_script("arguments[0].click();", query_to_click)
128
+ else:
129
+ # If full query not found, just press Enter
130
  search_bar.send_keys(Keys.ENTER)
131
 
132
+
133
  def contains_works(driver, elem):
134
  try:
135
  WebDriverWait(driver, timeout=9).until(EC.presence_of_element_located((By.XPATH, elem)))
136
  return True
137
  except:
138
+ return False
139
+
140
+