# Source Generated with Decompyle++
# File: issue496-run.pyc (Python 3.10)
from PyQt5.QtWidgets import QTableWidgetItem, QApplication, QMainWindow, QMenu
from PyQt5 import uic
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import Qt, QEvent
import os
import sys
import shutil
from block import BLOCK
from tool import TOOL
from main import *
import pyperclip
def new_folder(list_path):
for name in list_path:
if not os.path.exists(name):
os.makedirs(name)
def new_file(list_file, write = ([],)):
for name in list_file:
if not os.path.exists(name):
f = open(name, 'a')
if write == []:
pass
else:
for w in write:
f.write(f'''{w}\n''')
f.close()
if os.path.exists('cache_session'):
try:
shutil.rmtree('cache_session')
os.makedirs('cache_session')
finally:
pass
os.makedirs('cache_session')
new_folder([
'cache',
'data',
'data/icon'])
new_file([
'cache/path_image.txt',
'data/user_da_spam.txt',
'cache/phone_data.txt',
'data/list_link_foward.txt',
'data/list_group_getmem.txt',
'data/list_group.txt',
'data/list_username.txt',
'data/list_data.txt'])
new_file([
'data/nd_bio.txt'])
new_file([
'data/list_key_tmproxy.txt',
'data/list_key_tinsoft.txt',
'cache/path_session.txt',
'cache/path_proxy.txt'])
new_file([
'cache/success.txt',
'cache/fail.txt'])
new_file([
'cache/setting.txt'], [
'noproxy',
'3'], **('write',))
new_file([
'cache/setting_tool.txt'], [
'5-10',
'False'], **('write',))
new_file([
'cache/setting_profile.txt'], [
'5-10',
'False'], **('write',))
block = BLOCK(title_tool).block()
result_notication = block[2]
class Ui(QMainWindow):
def __init__(self = None):
super(Ui, self).__init__()
uic.loadUi('data/untitled.ui', self)
self.setting = open('cache/setting.txt', 'utf-8', **('encoding',)).read().split('\n')
self.setting_tool = open('cache/setting_tool.txt', 'utf-8', **('encoding',)).read().split('\n')
self.setting_profile = open('cache/setting_profile.txt', 'utf-8', **('encoding',)).read().split('\n')
self.BT_stop.hide()
self.load_list_ss_proxy()
self.curent_setting()
self.current_setting_tool()
self.current_setting_profile()
self.load_list_ss_proxy()
self.load_phone()
self.load_message()
self.Notication()
self.action_spam()
self.save_file()
self.setWindowIcon(QIcon('data/icon/logo.png'))
self.setWindowTitle(name_tool)
self.BT_session.clicked.connect(self.click_change_sesion)
self.BT_http.clicked.connect(self.click_change_proxy_http)
self.BT_socks5.clicked.connect(self.click_change_proxy_socks5)
self.BT_run.clicked.connect(self.load_data)
self.BT_stop.clicked.connect(self.stop)
self.add_message.clicked.connect(self.add_data_message)
self.del_message.clicked.connect(self.delete_message)
self.add_image.clicked.connect(self.add_images)
self.save.clicked.connect(self.save_file)
self.bt_avata.clicked.connect(self.click_change_avata)
self.deleted.clicked.connect(self.delete_result)
self.active.clicked.connect(self.active_)
self.RB_noproxy.toggled.connect(self.xl_proxy)
self.RB_http.toggled.connect(self.xl_proxy)
self.tableWidget.viewport().installEventFilter(self)
self.foward.toggled.connect(self.action_spam)
self.memgr.toggled.connect(self.action_spam)
self.gr.toggled.connect(self.action_spam)
self.username.toggled.connect(self.action_spam)
def active_(self):
link_act = f'''https://t.me/dichvutele_nghiaplus_bot?start={result_notication[0]}-{title_tool}'''
link_acts = f'''\n
Link kích hoạt:
\n {link_act}
\n '''
pyperclip.copy(link_act)
TOOL().show_key_box(f'''\n{link_acts}\nSao chép link kích hoạt và Thuê tool tại bot @dichvutele_nghiaplus_bot''', f'''KEY : {result_notication[0]}''')
def action_spam(self):
global lst_data, lst_data, lst_data, lst_data, lst_data
lst_data = []
if self.foward.isChecked():
self.link.show()
self.label_2.show()
elif self.nhantin.isChecked():
self.link.hide()
self.label_2.hide()
if self.memgr.isChecked():
lst_data = TOOL().read_file('data/list_group_getmem.txt')
self.label.setText('Nhập link group')
self.label_3.show()
self.loc.show()
self.hour.show()
self.label_9.show()
self.label_5.show()
self.limit.show()
self.lap.hide()
elif self.gr.isChecked():
lst_data = TOOL().read_file('data/list_group.txt')
self.label.setText('Nhập danh sách link group')
self.label_3.hide()
self.loc.hide()
self.hour.hide()
self.label_9.hide()
self.lap.show()
elif self.username.isChecked():
lst_data = TOOL().read_file('data/list_username.txt')
self.label.setText('Nhập danh sách username')
self.label_3.hide()
self.loc.hide()
self.hour.hide()
self.label_9.hide()
self.lap.hide()
elif self.data.isChecked():
lst_data = TOOL().read_file('data/list_data.txt')
self.label.setText('Nhập data số điện thoại')
self.label_9.hide()
self.lap.hide()
self.loc.show()
self.hour.show()
self.label_9.show()
self.textEdit.setText('\n'.join(lst_data))
self.all.setText('Tổng {}'.format(len(lst_data)))
def eventFilter(self = None, source = None, event = None):
if event.type() == QEvent.MouseButtonPress and event.buttons() == Qt.RightButton:
item = self.tableWidget.itemAt(event.pos())
if item is not None:
menu = QMenu()
hello = menu.addAction('Chọn')
hello.triggered.connect(self.select)
option = menu.addAction('Bỏ chọn')
option.triggered.connect(self.unselect)
load = menu.addAction('Xoá session')
load.triggered.connect(self.delete_session)
_option = menu.addAction('Bỏ chọn tất cả')
_option.triggered.connect(self.unselect_all)
hello_ = menu.addAction('Chọn tất cả')
hello_.triggered.connect(self.select_all)
menu.exec_(event.globalPos())
return super(Ui, self).eventFilter(source, event)
def delete_session(self):
if TOOL().question_msgbox('Bạn chắc chắn xoá?', 'Cảnh báo') == True:
self.check()
TOOL().delete_session(self.lst_phone_use, self.folder_session)
self.load_list_ss_proxy()
self.load_phone()
return None
def select_all(self):
for i in range(0, len(self.lst_phone)):
item = self.tableWidget.item(i, 0)
item.setCheckState(Qt.CheckState.Checked)
self.lst_phone_use = self.lst_phone.copy()
self.all_ss_now.setText('Đang dùng {} account'.format(len(self.lst_phone_use)))
def unselect_all(self):
for i in range(0, len(self.lst_phone)):
item = self.tableWidget.item(i, 0)
item.setCheckState(Qt.CheckState.Unchecked)
self.lst_phone_use = []
self.check()
def check(self):
self.lst_phone_use = []
for i in range(0, len(self.lst_phone)):
item = self.tableWidget.item(i, 0)
value = item.checkState()
if value == Qt.CheckState.Checked:
self.lst_phone_use.append(self.tableWidget.item(i, 1).text())
self.all_ss_now.setText('Đang dùng {} account'.format(len(self.lst_phone_use)))
def select(self):
value = self.tableWidget.selectedItems()
self.lst_phone_use = []
for v in value:
if v.column() == 1:
self.lst_phone_use.append(v.text())
item = self.tableWidget.item(self.lst_phone.index(v.text()), 0)
item.setCheckState(Qt.CheckState.Checked)
self.check()
def unselect(self):
value = self.tableWidget.selectedItems()
self.lst_phone_use = []
for v in value:
if v.column() == 1:
self.lst_phone_use.append(v.text())
item = self.tableWidget.item(self.lst_phone.index(v.text()), 0)
item.setCheckState(Qt.CheckState.Unchecked)
self.check()
def curent_setting(self):
if self.setting[0] == 'http':
self.RB_http.setChecked(True)
elif self.setting[0] == 'socks5':
self.RB_socks5.setChecked(True)
else:
self.RB_noproxy.setChecked(True)
self.SPB_luong.setRange(1, len(self.lst_phone))
self.SPB_luong.setValue(int(self.setting[1]))
self.tableWidget.setColumnCount(5)
self.tableWidget.setColumnWidth(0, 5)
self.tableWidget.setColumnWidth(1, 80)
self.tableWidget.setColumnWidth(2, 70)
self.tableWidget.setColumnWidth(3, 350)
self.tableWidget.setColumnWidth(4, 100)
self.messages.setColumnCount(4)
self.messages.setColumnWidth(0, 5)
self.messages.setColumnWidth(1, 350)
self.messages.setColumnWidth(2, 110)
self.messages.setColumnWidth(3, 100)
def current_setting_tool(self, load = (True,)):
global cate_nhantin, cate_nhantin, cate_mem, cate_mem, cate_mem, cate_mem, delay, link, loc, hour, limit, lap, lap
if load == True:
self.Edit_delay.setText(self.setting_tool[0])
if self.setting_tool[1] == 'True':
self.nhantin.setChecked(True)
else:
self.foward.setChecked(True)
if self.setting_tool[2] == 'True':
self.memgr.setChecked(True)
elif self.setting_tool[2] == 'False':
self.gr.setChecked(True)
elif self.setting_tool[2] == 'username':
self.username.setChecked(True)
elif self.setting_tool[2] == 'data':
self.data.setChecked(True)
self.link.setText(self.setting_tool[3])
self.loc.setCurrentText(self.setting_tool[4])
try:
self.hour.setValue(int(self.setting_tool[5]))
finally:
pass
self.hour.setValue(48)
try:
self.limit.setValue(int(self.setting_tool[6]))
finally:
pass
self.limit.setValue(5)
if self.setting_tool[7] == 'True':
self.lap.setChecked(True)
return None
return None
if self.nhantin.isChecked():
cate_nhantin = self.setting_tool[1] = 'True'
elif self.foward.isChecked():
cate_nhantin = self.setting_tool[1] = 'False'
if self.memgr.isChecked():
cate_mem = self.setting_tool[2] = 'True'
elif self.gr.isChecked():
cate_mem = self.setting_tool[2] = 'False'
elif self.username.isChecked():
cate_mem = self.setting_tool[2] = 'username'
elif self.data.isChecked():
cate_mem = self.setting_tool[2] = 'data'
delay = self.setting_tool[0] = self.Edit_delay.text()
link = self.setting_tool[3] = self.link.text()
loc = self.setting_tool[4] = self.loc.currentText()
hour = self.setting_tool[5] = self.hour.text()
limit = self.setting_tool[6] = self.limit.text()
if self.lap.isChecked():
lap = self.setting_tool[7] = 'True'
else:
lap = self.setting_tool[7] = 'False'
TOOL().write_current(self.setting_tool, 'cache/setting_tool.txt')
def current_setting_profile(self, load = (True,)):
global us, us, vn, vn, male, male, female, female, avt, avt, bio, bio, profile, profile, profile, link_gr, nd_bio
if load == True:
if self.setting_profile[0] == 'us_true':
self.profile_nameus.setChecked(True)
if self.setting_profile[1] == 'vn_true':
self.profile_namevn.setChecked(True)
if self.setting_profile[2] == 'male_true':
self.profile_male.setChecked(True)
if self.setting_profile[3] == 'female_true':
self.profile_female.setChecked(True)
if self.setting_profile[4] == 'avt_true':
self.profile_avt.setChecked(True)
if self.setting_profile[5] == 'bio_true':
self.profile_bio.setChecked(True)
if self.setting_profile[6] == 'True':
self.join.setChecked(True)
elif self.setting_profile[6] == 'False':
self.out.setChecked(True)
else:
self.profile.setChecked(True)
self.link_gr.setText(self.setting_profile[7])
self.nd_bio.setText(open('data/nd_bio.txt', 'utf-8', **('encoding',)).read())
return None
if self.profile_nameus.isChecked():
us = self.setting_profile[0] = 'us_true'
else:
us = self.setting_profile[0] = 'us_false'
if self.profile_namevn.isChecked():
vn = self.setting_profile[1] = 'vn_true'
else:
vn = self.setting_profile[1] = 'vn_false'
if self.profile_male.isChecked():
male = self.setting_profile[2] = 'male_true'
else:
male = self.setting_profile[2] = 'male_false'
if self.profile_female.isChecked():
female = self.setting_profile[3] = 'female_true'
else:
female = self.setting_profile[3] = 'female_false'
if self.profile_avt.isChecked():
avt = self.setting_profile[4] = 'avt_true'
else:
avt = self.setting_profile[4] = 'avt_false'
if self.profile_bio.isChecked():
bio = self.setting_profile[5] = 'bio_true'
else:
bio = self.setting_profile[5] = 'bio_false'
if self.join.isChecked():
profile = self.setting_profile[6] = 'True'
elif self.out.isChecked():
profile = self.setting_profile[6] = 'False'
else:
profile = self.setting_profile[6] = ''
link_gr = self.setting_profile[7] = self.link_gr.text()
nd_bio = self.nd_bio.toPlainText()
with open('data/nd_bio.txt', 'w', 'utf-8', **('encoding',)) as f:
f.write(nd_bio)
None(None, None, None)
# WARNING: Decompyle incomplete
def load_data(self):
global dem_thread, lst_success, lst_fail, data
if block[0] != False:
self.active_()
return None
dem_thread = 0
self.dem_thread = 0
conti = True
self.BT_run.hide()
lst_success = []
lst_fail = []
self.setting[0] = self.cate_proxy
try:
self.check()
self.current_setting_tool(False)
if self.lst_phone_use == []:
conti = 'Chưa chọn session chạy'
else:
for phone in self.lst_phone_use:
self.tableWidget.setItem(self.lst_phone.index(phone), 2, QTableWidgetItem(''))
self.tableWidget.setItem(self.lst_phone.index(phone), 3, QTableWidgetItem(''))
self.tableWidget.setItem(self.lst_phone.index(phone), 4, QTableWidgetItem(''))
old_folder1 = TOOL().load_session(self.folder_session)
self.luong = self.setting[1] = int(self.SPB_luong.text())
if int(self.luong) == 0:
conti = 'Chưa cài luồng chạy'
elif int(self.luong) > len(self.lst_phone_use):
self.luong = len(self.lst_phone_use)
conti = 'Lỗi chọn thư mục chứa session'
cate = '0'
if cate_nhantin == 'True' and file_messages == []:
conti = 'Hãy thêm một vài tin nhắn spam'
if self.TAB.currentIndex() == 0:
self.data_run = [
*cate_nhantin,
*cate_mem,
*link,
*lst_data,
*loc,
*hour,
*file_messages,
*limit,
*lap]
if self.TAB.currentIndex() == 1:
conti = 'Hãy chọn chức năng'
if self.TAB.currentIndex() == 2:
self.current_setting_profile(False)
cate = '2'
self.data_run = [
*us,
*vn,
*male,
*female,
*avt,
*profile,
*link_gr,
self.lst_avata,
*bio,
*nd_bio]
if conti == True:
data = [
self.cate_proxy,
self.lst_proxy,
self.folder_session,
*old_folder1,
self.luong,
*delay,
*cate,
*ss_die]
TOOL().write_current(self.setting, 'cache/setting.txt')
self.BT_stop.show()
self.thr = { }
self.run_thread_tool(dem_thread, self.lst_phone_use)
return None
self.BT_run.show()
TOOL().show_msgbox(conti, 'Lỗi xảy ra')
def run_thread_tool(self, dem_thread, lst_phone_use):
self.thr[dem_thread] = Telegam(dem_thread, self.lst_phone, lst_phone_use, data, self.data_run, **('i', 'lst_phone', 'lst_phone_use', 'data', 'data_run'))
self.thr[dem_thread].start()
self.thr[dem_thread].signal.connect(self.receive_data)
self.thr[dem_thread].signal_result.connect(self.receive_result)
self.thr[dem_thread].signal_inf.connect(self.receive_inf)
self.thr[dem_thread].signal_success.connect(self.receive_success)
def stop(self):
for i in range(self.luong):
self.thr[i].terminate()
self.BT_run.show()
self.BT_stop.hide()
def receive_data(self, data):
print(data)
try:
self.tableWidget.setItem(self.lst_phonee.index(data[0]), 1, QTableWidgetItem(data[0]))
self.tableWidget.setItem(self.lst_phonee.index(data[0]), 2, QTableWidgetItem(data[1]))
finally:
return None
return None
def receive_result(self, data):
print(data)
try:
self.tableWidget.setItem(self.lst_phonee.index(data[0]), 3, QTableWidgetItem(data[1]))
finally:
return None
return None
def receive_inf(self, data):
try:
self.tableWidget.setItem(self.lst_phonee.index(data[0]), 4, QTableWidgetItem(data[1]))
finally:
return None
return None
def receive_success(self, data):
global dem_thread, dem_thread
if data[0] == 'success':
self.success.setText(str(len(data[1])))
return None
if data[0] == 'fail':
self.fail.setText(str(len(data[1])))
return None
if data[0] == 'conlaisession':
self.all_ss_now.setText('Còn lại {} session'.format(len(data[1])))
return None
if data[0] == 'conlaidata':
self.textEdit.setText('\n'.join(data[1]))
self.all.setText('Còn lại {}'.format(len(data[1])))
return None
if data[0] == 'conlaidatas':
self.all.setText('Còn lại {}'.format(len(data[1])))
return None
if data[0] == 'end_thread':
self.dem_thread = self.dem_thread + 1
if self.dem_thread == self.luong:
for i in range(self.luong):
self.thr[i].terminate()
TOOL().show_msgbox(data[2], data[3])
self.BT_run.show()
self.BT_stop.hide()
return None
return None
if data[0] == 'lap':
for phone in self.lst_phone:
self.tableWidget.setItem(self.lst_phone.index(phone), 2, QTableWidgetItem(''))
self.tableWidget.setItem(self.lst_phone.index(phone), 3, QTableWidgetItem(''))
self.tableWidget.setItem(self.lst_phone.index(phone), 4, QTableWidgetItem(''))
dem_thread = 0
self.thr = { }
self.run_thread_tool(dem_thread, self.lst_phone_use)
return None
if data[0] == 'run_thr':
dem_thread = dem_thread + 1
if dem_thread < int(self.luong):
self.run_thread_tool(dem_thread, data[1])
return None
return None
def load_phone(self):
x = 0
self.tableWidget.setRowCount(len(self.lst_phone))
for phone in self.lst_phone:
chkBoxItem = QTableWidgetItem()
chkBoxItem.setFlags(Qt.ItemFlag.ItemIsUserCheckable | Qt.ItemFlag.ItemIsEnabled)
chkBoxItem.setCheckState(Qt.CheckState.Checked)
self.tableWidget.setItem(x, 0, chkBoxItem)
self.tableWidget.setItem(x, 1, QTableWidgetItem(phone))
self.tableWidget.setItem(x, 2, QTableWidgetItem(''))
self.tableWidget.setItem(x, 3, QTableWidgetItem(''))
self.tableWidget.setItem(x, 4, QTableWidgetItem(''))
x = x + 1
def delete_result(self):
f = open('cache/success.txt', 'w')
f.close()
f = open('cache/fail.txt', 'w')
f.close()
self.success.setText('0')
self.fail.setText('0')
def load_list_ss_proxy(self):
self.xl_proxy()
self.success.setText(str(len(TOOL().read_file2('cache/success.txt'))))
self.fail.setText(str(len(TOOL().read_file2('cache/fail.txt'))))
try:
self.folder_session = open('cache/path_session.txt', 'utf-8', **('encoding',)).readline()
self.lst_phone = TOOL().add_list(self.folder_session)
finally:
pass
self.lst_phone = []
self.lst_phonee = self.lst_phone.copy()
self.lst_phone_use = []
self.LB_session.setText(open('cache/path_session.txt', 'utf-8', **('encoding',)).readline())
self.LB_all_session.setText('Tổng {} session'.format(len(self.lst_phone)))
self.SPB_luong.setRange(1, len(self.lst_phone))
try:
self.lst_avata = []
self.lst_avatas = os.listdir(open('cache/path_avt.txt', 'utf-8', **('encoding',)).readline())
for avt in self.lst_avatas:
if 'jpg' in str(avt) or 'png' in str(avt):
self.lst_avata.append(avt)
finally:
pass
self.lst_avata = []
self.all_avt.setText('{} avata'.format(len(self.lst_avata)))
return None
def xl_proxy(self):
if self.RB_noproxy.isChecked():
self.LB_all_proxy.setText('Không dùng proxy')
self.cate_proxy = 'noproxy'
self.lst_proxy = []
return None
if self.RB_http.isChecked():
self.lst_proxy = TOOL().load_file('proxy_http')
self.LB_all_proxy.setText('Tổng {} proxy http'.format(len(self.lst_proxy)))
self.cate_proxy = 'http'
return None
if self.RB_socks5.isChecked():
self.lst_proxy = TOOL().load_file('proxy_socks5')
self.LB_all_proxy.setText('Tổng {} proxy socks5'.format(len(self.lst_proxy)))
self.cate_proxy = 'socks5'
return None
def save_file(self):
global lst_data, lst_data, lst_data, lst_data, lst_data
if self.foward.isChecked():
lst_data = TOOL().write_file('data/list_link_foward.txt', self.textEdit.toPlainText())
if self.memgr.isChecked():
lst_data = TOOL().write_file('data/list_group_getmem.txt', self.textEdit.toPlainText())
elif self.gr.isChecked():
lst_data = TOOL().write_file('data/list_group.txt', self.textEdit.toPlainText())
elif self.username.isChecked():
lst_data = TOOL().write_file('data/list_username.txt', self.textEdit.toPlainText())
else:
lst_data = TOOL().write_file('data/list_data.txt', self.textEdit.toPlainText())
self.all.setText('Tổng {}'.format(len(lst_data)))
def add_data_message(self):
title = 'message'
for i in range(1, 999):
if not os.path.exists('data/messages/{}_{}'.format(title, i)):
os.makedirs('data/messages/{}_{}/image'.format(title, i))
f = open('data/messages/{}_{}/message.txt'.format(title, i), 'a')
f.close()
os.system('data\\messages\\{}_{}\\message.txt'.format(title, i))
self.load_message()
return None
def add_images(self):
file_messages = os.listdir('data/messages')
for i in range(0, len(file_messages)):
item = self.messages.item(i, 0)
value = item.checkState()
title = self.messages.item(i, 3).text()
if value == Qt.CheckState.Checked:
list_img = TOOL().open_multi_file('image', 'Chọn ảnh cần spam')
if list_img != []:
shutil.rmtree(f'''data/messages/{title}/image''')
os.makedirs(f'''data/messages/{title}/image''')
for path_img in list_img:
shutil.copy(path_img, f'''data/messages/{title}/image''')
self.load_message()
return None
def delete_message(self):
file_messages = os.listdir('data/messages')
for i in range(0, len(file_messages)):
item = self.messages.item(i, 0)
value = item.checkState()
if value == Qt.CheckState.Checked:
try:
shutil.rmtree('data/messages/{}'.format(self.messages.item(i, 3).text()))
finally:
continue
self.messages.setItem(value, 1, QTableWidgetItem('Không thể xoá'))
continue
continue
self.load_message()
return None
def load_message(self):
global file_messages
file_messages = os.listdir('data/messages')
x = 0
self.messages.setRowCount(len(file_messages))
for file in file_messages:
try:
message = open(f'''data/messages/{file}/message.txt''', 'utf-8', **('encoding',)).read()
finally:
pass
message = ''
try:
lst_image = os.listdir(f'''data/messages/{file}/image''')
finally:
pass
lst_image == []
if message == '' and lst_image == []:
shutil.rmtree(f'''data/messages/{file}''')
else:
chkBoxItem = QTableWidgetItem()
chkBoxItem.setFlags(Qt.ItemFlag.ItemIsUserCheckable | Qt.ItemFlag.ItemIsEnabled)
chkBoxItem.setCheckState(Qt.CheckState.Unchecked)
self.messages.setItem(x, 0, chkBoxItem)
self.messages.setItem(x, 1, QTableWidgetItem(message))
self.messages.setItem(x, 2, QTableWidgetItem('{} ảnh/video'.format(len(lst_image))))
self.messages.setItem(x, 3, QTableWidgetItem('{}'.format(file)))
x = x + 1
def click_change_avata(self):
TOOL().open_folder('avt', 'Chọn thư mục chứa avata')
self.load_list_ss_proxy()
def click_change_sesion(self):
TOOL().open_folder('session', 'Chọn thư mục chứa session để chạy')
self.load_list_ss_proxy()
self.load_phone()
def click_change_proxy_http(self):
TOOL().open_file('proxy_http', 'Chọn file chứa proxy để chạy')
self.load_list_ss_proxy()
def click_change_proxy_socks5(self):
TOOL().open_file('proxy_socks5', 'Chọn file chứa proxy để chạy')
self.load_list_ss_proxy()
def Notication(self):
global ss_die, ss_die, ss_die, ss_die
self.key_tool.setText(result_notication[0])
self.lb_hsd.setText(result_notication[1])
self.LB_notication.setText(result_notication[2])
if float(result_notication[3]) > float(ver):
TOOL().show_msgbox(f'''Đã có phiên bản mới v{result_notication[3]}\nVào bot @dichvutele_nghiaplus_bot để cập nhật''', 'Thông báo cập nhật')
self.LB_notication.setText('Đã có phiên bản mới v{}'.format(result_notication[3]))
if result_notication[4] != '':
self.LB_information.setText(result_notication[4])
self.LB_version.setText(ver)
lb_hsd = self.lb_hsd.text()
if self.lb_hsd.text() == 'CHƯA KH':
ss_die = 'True'
return None
try:
date_exp = lb_hsd.split('-')
if int(date_exp[0]) > 2025:
ss_die = 'True'
finally:
return None
ss_die = 'False'
return None
ss_die = 'False'
return None
__classcell__ = None
if __name__ == '__main__':
app = QApplication(sys.argv)
main_win = Ui()
main_win.show()
sys.exit(app.exec())
return None
return None