TG-PlatformPlus/influxdbModel/influxdbManager.py

59 lines
1.8 KiB
Python
Raw Normal View History

2026-03-02 14:29:58 +08:00
#!/opt/homebrew/bin/python3
# -*- coding:utf-8 -*-
import json
2026-04-20 16:06:47 +08:00
import threading
2026-03-02 14:29:58 +08:00
from PyQt6 import *
from PyQt6.QtCore import *
from logs import log
from typing import Union
from models import DevModel, Session
from config import config
from projectModel.projectManager import projectManager
from influxDB import influxdb
class InfluxdbManager(QObject):
def __init__(self, parent=None):
super().__init__()
@pyqtSlot(result=str)
def getCurrentInfluxdb(self):
if not config.data.__contains__("influxdbName"):
config.data["influxdbName"] = config.data["influxdbs"][0]['name']
return config.data["influxdbName"]
@pyqtSlot(str, result=bool)
def setInfluxdb(self, influxdbName):
influxdbs = config.data["influxdbs"]
confData = config.toDict()
confData['influxdbName'] = influxdbName
for _influxdb in influxdbs:
if _influxdb["name"] == influxdbName:
2026-04-20 16:06:47 +08:00
influxdb.close()
influxdb.setConfig(_influxdb)
config.update(confData)
projectInfo = projectManager.getCurrentProInfo()
proname = "name" in projectInfo and projectInfo["name"] or ""
def _open():
2026-03-02 14:29:58 +08:00
influxdb.open()
influxdb.create(proname)
2026-04-20 16:06:47 +08:00
threading.Thread(target=_open, daemon=True).start()
return True
2026-03-02 14:29:58 +08:00
return False
@pyqtSlot(str, result=QVariant)
@pyqtSlot(str, result=list)
def getInfo(self, name = 'all'):
influxdbs = config.data["influxdbs"]
if name == 'all':
return influxdbs
else:
for _influxdb in influxdbs:
if _influxdb['name'] == name:
return _influxdb
return None
influxdbManager = InfluxdbManager()