hydraveil-gui/gui/v2/ui/pages/residential_page.py
2026-06-13 16:19:11 -04:00

101 lines
3.8 KiB
Python
Executable file

import os
from PyQt6.QtWidgets import QPushButton, QLabel, QButtonGroup
from PyQt6.QtGui import QPixmap, QIcon
from PyQt6 import QtCore
from gui.v2.ui.pages.Page import Page
class ResidentialPage(Page):
def __init__(self, page_stack, main_window, parent=None):
super().__init__("Wireguard", page_stack, main_window, parent)
self.title.setGeometry(585, 40, 185, 40)
self.title.setText("Pick a Protocol")
self.update_status = main_window
self.connection_choice = None
self.button_reverse.setVisible(True)
self.button_reverse.clicked.connect(self.reverse)
self.button_go.clicked.connect(self.go_selected)
self.display_1 = QLabel(self)
self.display_1.setGeometry(QtCore.QRect(
15, 50, 550, 465))
self.display_1.setPixmap(
QPixmap(os.path.join(self.btn_path, "browser only.png")))
self.label = QLabel(self)
self.label.setGeometry(440, 370, 86, 130)
self.label.setPixmap(
QPixmap(os.path.join(self.btn_path, "tor 86x130.png")))
self.label.hide()
def showEvent(self, event):
super().showEvent(event)
self.create_interface_elements()
def create_interface_elements(self):
self.buttonGroup = QButtonGroup(self)
self.buttons = []
for j, (object_type, icon_name, page_class, geometry) in enumerate([
(QPushButton, "tor", self.set_connection_choice(
'tor'), (585, 90, 185, 75)),
(QPushButton, "just proxy", self.set_connection_choice(
'just proxy'), (585, 90+30+75+30+75, 185, 75)),
(QLabel, None, None, (570, 170, 210, 105)),
(QLabel, None, None, (570, 385, 210, 115))
]):
if object_type == QPushButton:
boton = object_type(self)
boton.setGeometry(*geometry)
boton.setIconSize(boton.size())
boton.setCheckable(True)
boton.setIcon(
QIcon(os.path.join(self.btn_path, f"{icon_name}_button.png")))
self.buttons.append(boton)
self.buttonGroup.addButton(boton, j)
boton.show()
boton.clicked.connect(
lambda checked, page=page_class, name=icon_name: self.show_residential(name, page))
elif object_type == QLabel:
label = object_type(self)
label.setGeometry(*geometry)
label.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
label.setWordWrap(True)
label.show()
if geometry == (570, 170, 210, 105):
text1 = "Connect to tor first\nThen the residential proxy\nThis hides Tor from websites"
label.setText(text1)
elif geometry == (570, 385, 210, 115):
text2 = "Connect directly\nTo the Proxy\nin a browser\nThis has no encryption"
label.setText(text2)
def set_connection_choice(self, connection_choice):
pass
def show_residential(self, icon_name, page_class):
self.connection_choice = icon_name
self.selected_page_class = page_class
if icon_name == "tor":
self.label.show()
if icon_name == "just proxy":
self.label.hide()
self.button_go.setVisible(True)
def go_selected(self):
self.update_swarp_json(self.connection_choice)
self.custom_window.navigator.navigate("hidetor")
self.button_go.setVisible(False)
def update_swarp_json(self, icon_name):
inserted_data = {
"connection": icon_name
}
self.update_status.write_data(inserted_data)
def reverse(self):
self.custom_window.navigator.navigate("protocol")