Исправление логина в чатах, добавлены новые списки чатов для Склада и Кофеен

Signed-off-by: benya <benya@daemonlord.ru>
This commit is contained in:
2025-12-25 15:59:03 +03:00
parent ea188ffc13
commit 1eab8651f2

28
main.py
View File

@@ -129,7 +129,7 @@ class AuthBrowserWindow(QDialog):
"""Запускает OAuth авторизацию VK в этом окне.""" """Запускает OAuth авторизацию VK в этом окне."""
auth_url = ( auth_url = (
"https://oauth.vk.com/authorize?" "https://oauth.vk.com/authorize?"
"client_id=6287487&" "client_id=2685278&"
"display=page&" "display=page&"
"redirect_uri=https://oauth.vk.com/blank.html&" "redirect_uri=https://oauth.vk.com/blank.html&"
"scope=1073737727&" "scope=1073737727&"
@@ -237,6 +237,8 @@ class VkChatManager(QMainWindow):
self.chats = [] self.chats = []
self.office_chat_checkboxes = [] self.office_chat_checkboxes = []
self.retail_chat_checkboxes = [] self.retail_chat_checkboxes = []
self.warehouse_chat_checkboxes = []
self.coffee_chat_checkboxes = []
self.other_chat_checkboxes = [] self.other_chat_checkboxes = []
self.vk_session = None self.vk_session = None
self.vk = None self.vk = None
@@ -290,6 +292,10 @@ class VkChatManager(QMainWindow):
self.chat_tabs.addTab(self.office_tab, "AG Офис") self.chat_tabs.addTab(self.office_tab, "AG Офис")
self.retail_tab = self.create_chat_tab() self.retail_tab = self.create_chat_tab()
self.chat_tabs.addTab(self.retail_tab, "AG Розница") self.chat_tabs.addTab(self.retail_tab, "AG Розница")
self.warehouse_tab = self.create_chat_tab()
self.chat_tabs.addTab(self.warehouse_tab, "AG Склад")
self.coffee_tab = self.create_chat_tab()
self.chat_tabs.addTab(self.coffee_tab, "AG Кофейни")
self.other_tab = self.create_chat_tab() self.other_tab = self.create_chat_tab()
self.chat_tabs.addTab(self.other_tab, "Прочие") self.chat_tabs.addTab(self.other_tab, "Прочие")
layout.addWidget(QLabel("Выберите чаты:")) layout.addWidget(QLabel("Выберите чаты:"))
@@ -482,7 +488,7 @@ class VkChatManager(QMainWindow):
def set_all_checkboxes_on_current_tab(self, checked): def set_all_checkboxes_on_current_tab(self, checked):
current_index = self.chat_tabs.currentIndex() current_index = self.chat_tabs.currentIndex()
checkbox_lists = [self.office_chat_checkboxes, self.retail_chat_checkboxes, self.other_chat_checkboxes] checkbox_lists = [self.office_chat_checkboxes, self.retail_chat_checkboxes, self.retail_warehouse_checkboxes, self.retail_coffee_checkboxes, self.other_chat_checkboxes]
if 0 <= current_index < len(checkbox_lists): if 0 <= current_index < len(checkbox_lists):
for checkbox in checkbox_lists[current_index]: for checkbox in checkbox_lists[current_index]:
checkbox.setChecked(checked) checkbox.setChecked(checked)
@@ -524,7 +530,7 @@ class VkChatManager(QMainWindow):
def _clear_chat_tabs(self): def _clear_chat_tabs(self):
self.chats.clear() self.chats.clear()
for chk_list in [self.office_chat_checkboxes, self.retail_chat_checkboxes, self.other_chat_checkboxes]: for chk_list in [self.office_chat_checkboxes, self.retail_chat_checkboxes, self.warehouse_chat_checkboxes, self.coffee_chat_checkboxes, self.other_chat_checkboxes]:
for checkbox in chk_list: for checkbox in chk_list:
checkbox.setParent(None) checkbox.setParent(None)
checkbox.deleteLater() checkbox.deleteLater()
@@ -537,6 +543,8 @@ class VkChatManager(QMainWindow):
layouts = [ layouts = [
self.office_tab.findChild(QWidget).findChild(QVBoxLayout), self.office_tab.findChild(QWidget).findChild(QVBoxLayout),
self.retail_tab.findChild(QWidget).findChild(QVBoxLayout), self.retail_tab.findChild(QWidget).findChild(QVBoxLayout),
self.warehouse_tab.findChild(QWidget).findChild(QVBoxLayout),
self.coffee_tab.findChild(QWidget).findChild(QVBoxLayout),
self.other_tab.findChild(QWidget).findChild(QVBoxLayout) self.other_tab.findChild(QWidget).findChild(QVBoxLayout)
] ]
@@ -558,13 +566,21 @@ class VkChatManager(QMainWindow):
elif "AG розница" in title: elif "AG розница" in title:
layouts[1].insertWidget(layouts[1].count() - 1, checkbox) layouts[1].insertWidget(layouts[1].count() - 1, checkbox)
self.retail_chat_checkboxes.append(checkbox) self.retail_chat_checkboxes.append(checkbox)
else: elif "AG склад" in title:
layouts[2].insertWidget(layouts[2].count() - 1, checkbox) layouts[2].insertWidget(layouts[2].count() - 1, checkbox)
self.warehouse_chat_checkboxes.append(checkbox)
elif "AG кофейни" in title:
layouts[3].insertWidget(layouts[3].count() - 1, checkbox)
self.coffee_chat_checkboxes.append(checkbox)
else:
layouts[4].insertWidget(layouts[4].count() - 1, checkbox)
self.other_chat_checkboxes.append(checkbox) self.other_chat_checkboxes.append(checkbox)
self.chat_tabs.setTabText(0, f"AG Офис ({len(self.office_chat_checkboxes)})") self.chat_tabs.setTabText(0, f"AG Офис ({len(self.office_chat_checkboxes)})")
self.chat_tabs.setTabText(1, f"AG Розница ({len(self.retail_chat_checkboxes)})") self.chat_tabs.setTabText(1, f"AG Розница ({len(self.retail_chat_checkboxes)})")
self.chat_tabs.setTabText(2, f"Прочие ({len(self.other_chat_checkboxes)})") self.chat_tabs.setTabText(2, f"AG Склад ({len(self.warehouse_chat_checkboxes)})")
self.chat_tabs.setTabText(3, f"AG Кофейни ({len(self.coffee_chat_checkboxes)})")
self.chat_tabs.setTabText(4, f"Прочие ({len(self.other_chat_checkboxes)})")
except VkApiError as e: except VkApiError as e:
QMessageBox.critical(self, "Ошибка", f"Не удалось загрузить чаты: {e}") QMessageBox.critical(self, "Ошибка", f"Не удалось загрузить чаты: {e}")
self.set_ui_state(False) self.set_ui_state(False)
@@ -578,7 +594,7 @@ class VkChatManager(QMainWindow):
def _get_selected_chats(self): def _get_selected_chats(self):
selected = [] selected = []
for chk in self.office_chat_checkboxes + self.retail_chat_checkboxes + self.other_chat_checkboxes: for chk in self.office_chat_checkboxes + self.retail_chat_checkboxes + self.warehouse_chat_checkboxes + self.coffee_chat_checkboxes + self.other_chat_checkboxes:
if chk.isChecked(): if chk.isChecked():
chat_id = chk.property("chat_id") chat_id = chk.property("chat_id")
title = next((c['title'] for c in self.chats if c['id'] == chat_id), "") title = next((c['title'] for c in self.chats if c['id'] == chat_id), "")