import sys
import uuid
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget,
QPushButton, QLabel, QLineEdit, QStackedWidget, QShortcut
from PyQt5.QtGui import QFont, QIcon, QPalette, QColor, QPixmap, QKeySequence
from PyQt5.QtCore import Qt, QPropertyAnimation
from google.cloud import firestore
from google.oauth2 import service_account
cred = service_account.Credentials.from_service_account_info({
"type": "service_account",
"project_id": "keys-f5720",
"private_key_id": "e9b5b17210b6f0ac371ae68073f18f391a9e70da",
"private_key": "-----BEGIN PRIVATE KEY-----\
nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDoCWCPKQGlKfsS\
nk9iDSThq9KYYLvpv2znoe2sQ9jz+iM3uGxf5CLxNiW5zx5jnnqGa5dHUuwillfW5\
nHOP3c6MoHd1mhj81eYARAqrJ90zr7+mhWN/SMh5ZhrrTyEkKgLQCt6rtMWPY5xLx\
nQzAeQG8BqbRE3YuGsZnzwxLYoWeG4WbbV2OfMjyex7NuGTbPSAaGb5AmfB+GDO4n\
nfsvAsNEEAg5DsjbqdRn2azEY29HutxsFL1dJYVKV+xzPALXxR+nLfq4JgLZ9Vpwr\
n6KI34HUqqhCu9nQ8iI3EkdcrH/U73bUpNx/FlC1QfMZUg5L3Ncf1GiE1ZcYufuL8\
nsF8961l5AgMBAAECggEACNvCyfRg0bNmmHD4hRqYgszQQoAYo4iVD2EW11DvRzBl\
n3D9AjQteVP94LgdiuQT/WnCHsD1ruRaeiPCna10Iz5FEUJOzehEnaH7XklpUn3VL\
nUBOah+XN7tEL9OXik/oR5UCpz+Bg1XkM6hUMkzsWgdO+xBpJJ11EaV/7KjYPQ8Do\nlMZq8NmvkcVLl/
Tw3caWA5o6Bm5QpwZ90pM5mRbCLw8C2VsmCKqz3UQfAfwHryDD\nG863/uIG4ObJuX/
+0WU2B7cERy37RNjQyeorMRwEhPdCrmo4xEE/vbngqh6qEyKY\n3TCbL0LBK5+nXAAdcr51qXR4dI/
nkIfGYzNsrQT02QKBgQD5/3U3cocDySHTGcUl\
nTmPhnN25qbi6gRR1NNKXlAkRXQd9Wt1X4Hv3hkrYihZgvkTM3poR17nZLz+fI39M\
n9EZzem4jaIbC3gnOsUk+bIHqNEgtcOQEwwdMrOduPQaBeSxhD8Cd5C1LVkp+iQ+k\
nMdCrfU62RVGWHOC+JlL4wacvUwKBgQDtm4aGShKFODG1OkjvDR+CndRh+2X4OGwB\
nVMp45m2000M4rHbNDMNCxhM4n6ZfEBF89EKeS/+yZltz0WRRuNveLVnNUfXQIqr4\n/
eax1a6X9WG4GPDBE2PJfC5cPi5OIMGzEo864qLMCuRrBw5I7YNbGGuoORjhpgvw\
njiXAet8WgwKBgQC47qBnQ/Fce4zp/EY6MqLwYnoivcpJLPNVQJ4IQxnyHj9MG8th\
nFk6d7FmxlXS4XAfJBWIzkMGKR8loj3m8E3eKNScESm5l+JqIq9zisKHp/oLmGnyS\
niTL9JWqNwdbuMBUEOALkycY31L2GnR1U+QTD1w5DB0QzJ2mZQABgw+BIwQKBgHgC\
nXo7DKNmKiWi8eIvs9+ZT6ypV/KnDbaG6fs1TrUNwlPox+YsVkCXQv3KRCEnpZrvS\
n7zbesdYcZsJ3lxDDqqFsDHhslhg6+lnqe7OEdrufn2yJhEgwj+z7QLssWNzzJIJa\
ntGcMgydFtRrtpGRnOjovemir9go6gLtOQHkYVkcbAoGANaXoRtyU91pDI5CwTGdO\nBsC0XUpCj/
EnRGkknVZx6ZNu+sQU8IQWkAaN+j12vUHpeUdZcRlg4oDFko/3LuFe\
nQmbqarx9/775pom9vv6YHFFSFP2cGyb2IhP6XGI1Oi1/bosUnNrBpSio6uCyUbo2\n/
0gXQGbwcQwjIK+F9dNdiJw=\n-----END PRIVATE KEY-----\n",
"client_email": "[email protected]",
"client_id": "116829012455746355889",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url":
"https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-q7i6k%40keys-
f5720.iam.gserviceaccount.com",
"universe_domain": "googleapis.com"
})
db = firestore.Client(credentials=cred)
def fetch_key_info(key):
keys_ref = db.collection('keys').document(key).get()
if keys_ref.exists:
return keys_ref.to_dict()
return None
def verify_key(key, hwid):
key_info = fetch_key_info(key)
if key_info:
stored_hwid = key_info.get('HWID')
expiration_time_str = key_info.get('expiration')
expiration_time = int(expiration_time_str) if expiration_time_str is not
None else None
if stored_hwid is None:
keys_ref = db.collection('keys')
keys_ref.document(key).set({'HWID': hwid}, merge=True)
return "Valid"
if stored_hwid == hwid and expiration_time is not None:
return "Valid"
if stored_hwid != hwid:
return "NotYourKey"
if expiration_time is None:
return "Expired"
else:
return "KeyNotFound"
class MainApp(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("RAINZ MASTER RBLXWILD 1.1.8")
self.setGeometry(100, 100, 600, 400)
self.setWindowIcon(QIcon("path/to/icon.png"))
self.stacked_widget = QStackedWidget()
self.setCentralWidget(self.stacked_widget)
self.key_verified = False # Flag to track key verification status
self.initUI()
def initUI(self):
self.key_verification_screen()
def key_verification_screen(self):
key_verification_widget = QWidget()
key_verification_layout = QVBoxLayout(key_verification_widget)
# Set background image for the widget
background_label = QLabel(key_verification_widget)
background_pixmap = QPixmap("C:/Users/PC/Downloads/bg-min.271e586a.png")
background_label.setPixmap(background_pixmap)
background_label.setScaledContents(True)
background_label.setGeometry(self.rect())
title_label = QLabel("RAINZ MASTER RBLXWILD 1.1.8")
title_label.setFont(QFont("Arial", 20, QFont.Bold))
title_label.setAlignment(Qt.AlignCenter)
title_label.setStyleSheet("color: #FFD700; margin-bottom: 20px;")
self.input_field = QLineEdit()
self.input_field.setFont(QFont("Arial", 16))
self.input_field.setAlignment(Qt.AlignCenter)
self.input_field.setPlaceholderText("Insert your key")
self.input_field.setStyleSheet("padding: 10px; border: 2px solid #FFD700;
border-radius: 5px; margin-bottom: 20px; color: #FFFFFF; background-image:
url('C:/Users/PC/Downloads/rain-banner-bg-min.1f5bf158.png'); background-repeat:
no-repeat; background-position: center;")
self.status_label = QLabel("")
self.status_label.setFont(QFont("Arial", 14))
self.status_label.setAlignment(Qt.AlignCenter)
self.status_label.setStyleSheet("color: #FFD700;")
# Enter key shortcut
enter_shortcut = QShortcut(QKeySequence("Return"), self)
enter_shortcut.activated.connect(self.verify_key)
key_verification_layout.addWidget(title_label)
key_verification_layout.addWidget(self.input_field)
key_verification_layout.addWidget(self.status_label)
self.stacked_widget.addWidget(key_verification_widget)
self.stacked_widget.setCurrentWidget(key_verification_widget)
def verify_key(self):
key = self.input_field.text().strip() # Remove any leading/trailing spaces
hwid = str(uuid.getnode()) # Replace with actual HWID fetching logic
key_status = verify_key(key, hwid)
if key_status == "Valid":
self.key_verified = True
self.status_label.setText("Key is valid. Access granted!")
self.status_label.setStyleSheet("color: #00FF00;") # Green text for
success
else:
self.status_label.setText("Invalid key. Please try again.")
self.status_label.setStyleSheet("color: #FF0000;") # Red text for
error
def manage_cookies(self):
cookie_widget = QWidget()
cookie_layout = QVBoxLayout(cookie_widget)
title_label = QLabel("Manage Cookies")
title_label.setFont(QFont("Arial", 20, QFont.Bold))
title_label.setAlignment(Qt.AlignCenter)
title_label.setStyleSheet("color: #FFD700; margin-bottom: 20px;")
self.cookie_input = QLineEdit()
self.cookie_input.setFont(QFont("Arial", 16))
self.cookie_input.setAlignment(Qt.AlignCenter)
self.cookie_input.setPlaceholderText("Insert your cookies")
self.cookie_input.setStyleSheet("padding: 10px; border: 2px solid #FFD700;
border-radius: 5px; margin-bottom: 20px; color: #FFFFFF; background-color:
#333333;")
save_button = QPushButton("Save Cookies")
save_button.setFont(QFont("Arial", 16, QFont.Bold))
save_button.setStyleSheet("background-color: #FFD700; color: #000000;
padding: 10px 20px; border: none; border-radius: 5px;")
save_button.clicked.connect(self.save_cookies)
cookie_layout.addWidget(title_label)
cookie_layout.addWidget(self.cookie_input)
cookie_layout.addWidget(save_button)
self.stacked_widget.addWidget(cookie_widget)
self.stacked_widget.setCurrentWidget(cookie_widget)
def save_cookies(self):
cookies = self.cookie_input.text().strip() # Remove any leading/trailing
spaces
# Save cookies logic (to be implemented)
self.status_label.setText("Cookies saved successfully.")
self.status_label.setStyleSheet("color: #00FF00;") # Green text for
success
def discord_section(self):
discord_widget = QWidget()
discord_layout = QVBoxLayout(discord_widget)
palette = QPalette()
palette.setColor(QPalette.Window, QColor("#000000"))
discord_widget.setAutoFillBackground(True)
discord_widget.setPalette(palette)
title_label = QLabel("Discord Section")
title_label.setFont(QFont("Arial", 20, QFont.Bold))
title_label.setAlignment(Qt.AlignCenter)
title_label.setStyleSheet("color: #FFD700; margin-bottom: 20px;")
back_button = QPushButton("Back to Menu")
back_button.setFont(QFont("Arial", 16, QFont.Bold))
back_button.setStyleSheet("background-color: #FFD700; color: #000000;
padding: 10px 20px; border: none; border-radius: 5px;")
back_button.clicked.connect(self.main_menu)
discord_layout.addWidget(title_label)
discord_layout.addWidget(back_button)
self.stacked_widget.addWidget(discord_widget)
self.stacked_widget.setCurrentWidget(discord_widget)
def update_logs_section(self):
update_logs_widget = QWidget()
update_logs_layout = QVBoxLayout(update_logs_widget)
palette = QPalette()
palette.setColor(QPalette.Window, QColor("#000000"))
update_logs_widget.setAutoFillBackground(True)
update_logs_widget.setPalette(palette)
title_label = QLabel("Update Logs")
title_label.setFont(QFont("Arial", 20, QFont.Bold))
title_label.setAlignment(Qt.AlignCenter)
title_label.setStyleSheet("color: #FFD700; margin-bottom: 20px;")
back_button = QPushButton("Back to Menu")
back_button.setFont(QFont("Arial", 16, QFont.Bold))
back_button.setStyleSheet("background-color: #FFD700; color: #000000;
padding: 10px 20px; border: none; border-radius: 5px;")
back_button.clicked.connect(self.main_menu)
update_logs_layout.addWidget(title_label)
update_logs_layout.addWidget(back_button)
self.stacked_widget.addWidget(update_logs_widget)
self.stacked_widget.setCurrentWidget(update_logs_widget)
if __name__ == "__main__":
app = QApplication(sys.argv)
main_window = MainApp()
main_window.show()
sys.exit(app.exec_())