예제 #1
0
    def run(self):
        mdb = MariaDB()
        if not mdb.connect(self.configs["MDBServer"], self.configs["MDBUser"], self.configs["MDBPasswd"],
                           self.configs["MDBBase"]):
            self.err.emit("Ошибка соединения с Базой Данных!", self.task)
            return
        if not mdb.is_admin(self.news["user"]):
            self.err.emit("Нет прав на удаление новости!")
            mdb.close()
            return
        else:
            mdb.delete_news(self.news)
            mdb.log(self.news["user"], "".join(("Удалил новость [", self.news["header"], "]")))
        mdb.close()

        con = sqlite3.connect("".join((self.cur_path, 'news.db')))
        cur = con.cursor()
        cur.execute("DELETE FROM news WHERE title='" + self.news["header"] + "' and date='" + self.news["date"] + "'")
        con.commit()
        con.close()

        self.deleteComplete.emit()
예제 #2
0
    def run(self):
        if self.task == "news":
            con = sqlite3.connect(self.cur_path + 'news.db')
            cur = con.cursor()

            try:
                cur.execute(
                    'CREATE TABLE news(id INTEGER PRIMARY KEY AUTOINCREMENT, title VARCHAR(512), date VARCHAR(20))')
                con.commit()
            except:
                pass

            mdb = MariaDB()
            if not mdb.connect(self.configs["MDBServer"], self.configs["MDBUser"], self.configs["MDBPasswd"],
                               self.configs["MDBBase"]):
                self.err.emit("Ошибка соединения с Базой Данной", self.task)
                return
            news_list = mdb.check_news()

            l = len(news_list)

            if l != self.news_count:
                self.setNewsCount.emit(l)
                self.clearNews.emit()

                for news in news_list:
                    cur.execute(
                        "SELECT * FROM news WHERE title='" + news["title"] + "' and date='" + news["date"] + "'")
                    n_list = cur.fetchall()

                    if len(n_list) == 0:
                        cur.execute(
                            "INSERT INTO news(title, date) VALUES('" + news["title"] + "', '" + news["date"] + "')")
                        con.commit()

                        """
                        Show tooltip
                        """
                        if not mdb.is_admin(self.user):
                            self.showNewsBaloon.emit(news["date"], news["title"])

                    self.addInNews.emit(news["date"], news["title"])

            mdb.close()
            con.close()
            self.checkNewsComplete.emit()
            self.exit(0)

        elif self.task == "msg_and_files":
            """
            Checking server status (online/offline)
            """

            client = TcpClient()
            if not client.check_status(self.configs["TcpServer"], self.configs["TcpPort"]):
                self.serverOffline.emit()
            else:
                self.serverOnline.emit()
            client.close()

            """
            Checking update, messages, files
            """

            mdb = MariaDB()
            if not mdb.connect(self.configs["MDBServer"], self.configs["MDBUser"], self.configs["MDBPasswd"],
                               self.configs["MDBBase"]):
                self.err.emit("Ошибка соединения с Базой Данных!", self.task)
                return

            if mdb.check_update(self.user):
                mdb.close()
                print("Доступны обновления.")
                self.updateAvailable.emit()
                return

            if mdb.check_files(self.user):
                mdb.close()
                print("Есть новые файлы.")
                self.filesAvailable.emit()
                return

            if mdb.check_messages(self.user) and (not self.msg_status):
                mdb.close()
                print("Есть новые сообщения.")
                self.msgAvailable.emit()
                return

            mdb.close()
            self.nothingAvailable.emit()
            return