123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- """
- ***************************************************************************
- LicenseMake.py
- ---------------------
- Date : November 2012
- Copyright : (C) 2012 by Victor Olaya
- Email : volayaf at gmail dot com
- ***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************
- """
- __author__ = 'wanger'
- __date__ = 'November 2024'
- __copyright__ = '(C) 2012, siwei'
- import os
- from cryptography.fernet import Fernet
- from PyQt5.QtGui import QIcon
- from qgis._core import QgsCoordinateReferenceSystem, QgsProcessingParameterCrs, QgsProcessingParameterFileDestination
- from qgis.core import (QgsProcessing,
- QgsProcessingAlgorithm,
- QgsProcessingParameterDefinition,
- QgsProcessingParameterString,
- QgsProcessingParameterDateTime,
- QgsProcessingParameterFeatureSource,
- QgsProcessingParameterVectorDestination)
- from processing.algs.gdal.GdalAlgorithm import GdalAlgorithm
- from processing.algs.gdal.GdalUtils import GdalUtils
- pluginPath = os.path.split(os.path.split(os.path.dirname(__file__))[0])[0]
- class LicenseMake(GdalAlgorithm):
- HOST = 'LICENSEHOST'
- Date = 'LICENSEDATE'
- OUTPUT = 'OUTPUT'
- def __init__(self):
- super().__init__()
- def initAlgorithm(self, config=None):
- self.addParameter(QgsProcessingParameterString(self.HOST,
- self.tr('服务器机器名')))
- self.addParameter(
- QgsProcessingParameterDateTime(self.Date, '许可到期时间', type=QgsProcessingParameterDateTime.Type.Date))
- # 创建一个输出参数,指定为文本文件类型
- output_parameter = QgsProcessingParameterFileDestination(
- self.OUTPUT,
- self.tr('导出位置'),
- '.txt', defaultValue='license.txt')
- self.addParameter(output_parameter)
- def name(self):
- return 'licensemake'
- def displayName(self):
- return self.tr('生成许可文件')
- def group(self):
- return self.tr('软件许可')
- def groupId(self):
- return 'licensetools'
- def icon(self):
- return QIcon(os.path.join(pluginPath, 'images', 'dbms', 'certification.png'))
- def commandName(self):
- return 'ogr2ogr'
- def generateLicense(self, parameters):
- print("咱这块正在生成许可文件呢,别着急")
- outputpath = parameters.get("OUTPUT")
- custom_format = "yyyy-MM-dd"
- licensedate = parameters.get("LICENSEDATE").toString(custom_format)
- print(f"许可到期时间:{licensedate}")
- licensehost = parameters.get("LICENSEHOST")
- print(f"许可计算机机器名:{licensehost}")
- params = {
- "host": licensehost,
- "license": licensedate
- }
- # 生成一个密钥
- key = Fernet.generate_key()
- # 使用密钥创建一个Fernet对象
- cipher_suite = Fernet(key)
- # 需要加密的数据
- message = str(params).encode("utf-8")
- #
- # # 加密数据
- encrypted_message = cipher_suite.encrypt(message)
- print(f"加密的消息: {encrypted_message}")
- # 要写入的文本内容
- text_lines = [key.decode("utf-8"), encrypted_message.decode("utf-8")]
- # 打开文件进行写入
- with open(outputpath, 'w') as file:
- # 遍历文本行并写入文件
- for line in text_lines:
- file.write(line + "\n") # 添加换行符
- def getConsoleCommands(self, parameters, context, feedback, executing=True):
- print(parameters)
- arguments = [
- ]
- arguments = [
- ]
- return [self.commandName(), GdalUtils.escapeAndJoin(arguments)]
|