Skip to content

Instantly share code, notes, and snippets.

@ItzmeSwapy
Created October 3, 2022 21:20
Show Gist options
  • Save ItzmeSwapy/c4e05b3cc5b13a050cacf2036ffc31ae to your computer and use it in GitHub Desktop.
Save ItzmeSwapy/c4e05b3cc5b13a050cacf2036ffc31ae to your computer and use it in GitHub Desktop.
pyqt5 with pebble - Error of multiple UI instances
import openpyxl
from functionalities.proxy_livetester import check_proxy
from PyQt5 import QtWidgets
import sys
from pebble import ProcessPool
from concurrent.futures import TimeoutError
class mywindow(QtWidgets.QMainWindow):
group_id_col_number = -1
def __init__(self):
super(mywindow, self).__init__()
uic.loadUi(r'ui_Files/IAM_MainUI.ui', self)
self.data_reload_button_2.clicked.connect(self.testfunc)
def proxy_checkers(self,proxy_dict):
# checks all the proxies working status and returns good proxies
proxies_thread = []
working_proxies = []
proxy_timeout_limit = 100
with ProcessPool() as pool:
for x in proxy_dict:
proxies_thread.append(pool.submit(check_proxy, proxy_timeout_limit, x))
proxy_failcount = 0
for i, single_proxy_thread in enumerate(proxies_thread):
try:
proxy_status = single_proxy_thread.result()
# print(type(proxy_status), proxy_status)
except TimeoutError:
print("Proxy Failed %s" % single_proxy_thread)
proxy_failcount += 1
if (type(proxy_status) == str): proxy_status = proxy_status.split('|')
if proxy_status[1] != 'None':
working_proxies.append(proxy_status[0])
else:
proxy_failcount += 1
# print(working_proxies)
print("Total Working Proxies:", len(working_proxies), "Total Failed Proxies:", proxy_failcount)
return working_proxies
def proxies(self,proxy_file):
wb_obj = openpyxl.load_workbook(proxy_file)
sheet_obj = wb_obj.active
max_col = sheet_obj.max_column
max_row = sheet_obj.max_row
proxy_dic = {}
for i in range(1, max_row + 1):
proxy_id = sheet_obj.cell(row=i, column=1)
proxy_reset = sheet_obj.cell(row=i, column=2)
proxy_dic[proxy_id.value] = proxy_reset.value
return proxy_dic
def testfunc(self):
proxy_file = r'C:\Bots\Instagram\src\proxies\selected_proxy.xlsx'
proxy_dictionary=self.proxies(proxy_file)
self.proxy_checkers(proxy_dictionary)
app = QtWidgets.QApplication([])
application = mywindow()
application.show()
sys.exit(app.exec())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment