diff --git a/install.py b/install.py index 62516aa..1af765a 100644 --- a/install.py +++ b/install.py @@ -1,4 +1,17 @@ import launch +import importlib.metadata +import packaging.version -if not launch.is_installed("segno"): - launch.run_pip("install segno", "requirements for webui-qrcode-generator") \ No newline at end of file +def compare_versions(package, version_required): + try: + version_installed = importlib.metadata.version(package) + except Exception: + return False + + if packaging.version.parse(version_installed) < packaging.version.parse(version_required): + return False + + return True + +if not compare_versions("segno", "1.5.3"): + launch.run_pip('install "segno>=1.5.3"', "requirements for webui-qrcode-generator") \ No newline at end of file diff --git a/scripts/qrcode.py b/scripts/qrcode.py index dfaa429..12ff4a1 100644 --- a/scripts/qrcode.py +++ b/scripts/qrcode.py @@ -20,15 +20,15 @@ def generate(selected_tab, keys, *values): data = helpers.make_wifi_data(ssid=args["wifi_ssid"], password=args["wifi_password"], security=args["wifi_security"], hidden=args["wifi_hidden"]) elif selected_tab == "tab_vcard": name = f'{args["vcard_name_last"]};{args["vcard_name_first"]};{args["vcard_name_middle"]}' - data = helpers.make_vcard_data(name, displayname=args["vcard_displayname"], nickname=args["vcard_nickname"], street=args["vcard_address"], city=args["vcard_city"], region=args["vcard_state"], zipcode=args["vcard_zipcode"], country=args["vcard_country"], birthday=args["vcard_birthday"], email=args["vcard_email"] or None, phone=args["vcard_phone"] or None, fax=args["vcard_fax"] or None, memo=args["vcard_memo"], org=args["vcard_organization"], title=args["vcard_title"] or None, cellphone=args["vcard_phone_mobile"] or None, url=args["vcard_url"] or None) + data = helpers.make_vcard_data(name, displayname=args["vcard_displayname"], nickname=args["vcard_nickname"], street=args["vcard_address"], city=args["vcard_city"], region=args["vcard_state"], zipcode=args["vcard_zipcode"], country=args["vcard_country"], birthday=args["vcard_birthday"], email=args["vcard_email"], phone=args["vcard_phone"], fax=args["vcard_fax"], memo=args["vcard_memo"], org=args["vcard_organization"], title=args["vcard_title"], cellphone=args["vcard_phone_mobile"], url=args["vcard_url"]) elif selected_tab == "tab_mecard": - data = helpers.make_mecard_data(name=args["mecard_name"], reading=args["mecard_kananame"], nickname=args["mecard_nickname"], houseno=args["mecard_address"], city=args["mecard_city"], prefecture=args["mecard_state"], zipcode=args["mecard_zipcode"], country=args["mecard_country"], birthday=args["mecard_birthday"], email=args["mecard_email"] or None, phone=args["mecard_phone"] or None, memo=args["mecard_memo"]) + data = helpers.make_mecard_data(name=args["mecard_name"], reading=args["mecard_kananame"], nickname=args["mecard_nickname"], houseno=args["mecard_address"], city=args["mecard_city"], prefecture=args["mecard_state"], zipcode=args["mecard_zipcode"], country=args["mecard_country"], birthday=args["mecard_birthday"], email=args["mecard_email"], phone=args["mecard_phone"], memo=args["mecard_memo"]) elif selected_tab == "tab_sms": data = f'smsto:{args["sms_number"]}:{args["sms_message"]}' elif selected_tab == "tab_email": data = helpers.make_make_email_data(to=args["email_address"], subject=args["email_subject"], body=args["email_body"]) elif selected_tab == "tab_geo": - data = f'geo:{"{0:.8f}".format(args["geo_latitude"]).rstrip("0").rstrip(".")},{"{0:.8f}".format(args["geo_longitude"]).rstrip("0").rstrip(".")}' + data = helpers.make_geo_data(args["geo_latitude"], args["geo_longitude"]) else: data = args["text"]