diff --git a/pkg/audit/gatherer.py b/pkg/audit/gatherer.py index e562b232..4378045d 100644 --- a/pkg/audit/gatherer.py +++ b/pkg/audit/gatherer.py @@ -5,8 +5,7 @@ import logging import requests import pkg.utils.context - -version = "0.1.0" +import pkg.utils.updater class DataGatherer: @@ -21,15 +20,21 @@ class DataGatherer: } }为值的字典""" + version_str = "0.1.0" + def __init__(self): self.load_from_db() + try: + self.version_str = pkg.utils.updater.get_commit_id_and_time_and_msg() + except: + pass def report_to_server(self, subservice_name: str, count: int): try: config = pkg.utils.context.get_config() if hasattr(config, "report_usage") and not config.report_usage: return - res = requests.get("http://rockchin.top:18989/usage?service_name=qchatgpt.{}&version={}&count={}".format(subservice_name, version, count)) + res = requests.get("http://rockchin.top:18989/usage?service_name=qchatgpt.{}&version={}&count={}".format(subservice_name, self.version_str, count)) if res.status_code != 200 or res.text != "ok": logging.warning("report to server failed, status_code: {}, text: {}".format(res.status_code, res.text)) except: diff --git a/pkg/utils/updater.py b/pkg/utils/updater.py index 358fe609..38b9b0c6 100644 --- a/pkg/utils/updater.py +++ b/pkg/utils/updater.py @@ -1,5 +1,4 @@ import datetime -import time def update_all(): @@ -41,3 +40,21 @@ def get_current_version_info() -> str: break return version_str + + +def get_commit_id_and_time_and_msg() -> str: + """获取当前提交id和时间和提交信息""" + try: + import dulwich + except ModuleNotFoundError: + raise Exception("dulwich模块未安装,请查看 https://github.com/RockChinQ/QChatGPT/issues/77") + + from dulwich import porcelain + + repo = porcelain.open_repo('.') + + for entry in repo.get_walker(): + tz = datetime.timezone(datetime.timedelta(hours=entry.commit.commit_timezone // 3600)) + dt = datetime.datetime.fromtimestamp(entry.commit.commit_time, tz) + return str(entry.commit.id)[2:9] + " " + dt.strftime('%Y-%m-%d %H:%M:%S') + " [" + str(entry.commit.message, encoding="utf-8").strip()+"]" +