This commit is contained in:
2023-11-14 09:37:35 +08:00
parent cb689072f9
commit 19760d4581
6 changed files with 135 additions and 130 deletions

91
PyPI/src/guan/others.py Normal file
View File

@@ -0,0 +1,91 @@
# 获取当前日期字符串
def get_date(bar=True):
import datetime
datetime_date = str(datetime.date.today())
if bar==False:
datetime_date = datetime_date.replace('-', '')
return datetime_date
# 获取当前时间字符串
def get_time():
import datetime
datetime_time = datetime.datetime.now().strftime('%H:%M:%S')
return datetime_time
# 获取MAC地址
def get_mac_address():
import uuid
mac_address = uuid.UUID(int=uuid.getnode()).hex[-12:].upper()
mac_address = '-'.join([mac_address[i:i+2] for i in range(0, 11, 2)])
return mac_address
# 获取调用本函数的函数名
def get_calling_function_name(layer=1):
import inspect
caller = inspect.stack()[layer]
calling_function_name = caller.function
return calling_function_name
# Guan软件包的使用统计不涉及到用户的个人数据
global_variable_of_first_guan_package_calling = []
def statistics_of_guan_package():
import guan
message = guan.get_calling_function_name(layer=2)
message_calling = guan.get_calling_function_name(layer=3)
global global_variable_of_first_guan_package_calling
if message not in global_variable_of_first_guan_package_calling:
global_variable_of_first_guan_package_calling.append(message)
if message_calling == '<module>':
try:
import socket
datetime_date = guan.get_date()
datetime_time = guan.get_time()
current_version = guan.get_current_version('guan')
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.settimeout(0.5)
client_socket.connect(('py.guanjihuan.com', 12345))
mac_address = guan.get_mac_address()
send_message = datetime_date + ' ' + datetime_time + ' version_'+current_version + ' MAC_address: '+mac_address+' guan.' + message+'\n'
client_socket.send(send_message.encode())
client_socket.close()
except:
pass
# 获取Python软件包的最新版本
def get_latest_version(package_name='guan', timeout=2):
import requests
url = f"https://pypi.org/pypi/{package_name}/json"
try:
response = requests.get(url, timeout=timeout)
except:
return None
if response.status_code == 200:
data = response.json()
latest_version = data["info"]["version"]
return latest_version
else:
return None
# 获取软件包的本机版本
def get_current_version(package_name='guan'):
import importlib.metadata
try:
current_version = importlib.metadata.version(package_name)
return current_version
except:
return None
# Guan软件包升级提示
def notification_of_upgrade():
import random
rand_number = random.randint(1, 10)
if rand_number == 5:
try:
latest_version = get_latest_version(package_name='guan', timeout=2)
current_version = get_current_version('guan')
if latest_version != None and current_version != None:
if latest_version != current_version:
print('提示:您当前使用的版本是 guan-'+current_version+',目前已经有最新版本 guan-'+latest_version+'。您可以通过以下命令对软件包进行升级pip install --upgrade guan')
except:
pass
notification_of_upgrade()