[Bf-extensions-cvs] [3c5d373f] blender-v3.0-release: Magic UV: Remove online updater
Thomas Dinges
noreply at git.blender.org
Wed Nov 24 14:31:00 CET 2021
Commit: 3c5d373fc4dabd7a27da58113d05df8990f745dc
Author: Thomas Dinges
Date: Wed Nov 24 14:29:16 2021 +0100
Branches: blender-v3.0-release
https://developer.blender.org/rBA3c5d373fc4dabd7a27da58113d05df8990f745dc
Magic UV: Remove online updater
Add-ons should not connect to external services outside of blender.org
See new key requirements: https://wiki.blender.org/wiki/Process/Addons
===================================================================
M magic_uv/__init__.py
M magic_uv/preferences.py
D magic_uv/updater.py
M magic_uv/utils/__init__.py
D magic_uv/utils/addon_updater.py
===================================================================
diff --git a/magic_uv/__init__.py b/magic_uv/__init__.py
index d0b8ae45..f31ad26b 100644
--- a/magic_uv/__init__.py
+++ b/magic_uv/__init__.py
@@ -52,7 +52,6 @@ if "bpy" in locals():
importlib.reload(ui)
importlib.reload(properites)
importlib.reload(preferences)
- importlib.reload(updater)
else:
import bpy
from . import common
@@ -61,14 +60,11 @@ else:
from . import ui
from . import properites
from . import preferences
- from . import updater
import bpy
def register():
- updater.register_updater(bl_info)
-
utils.bl_class_registry.BlClassRegistry.register()
properites.init_props(bpy.types.Scene)
user_prefs = utils.compatibility.get_user_preferences(bpy.context)
diff --git a/magic_uv/preferences.py b/magic_uv/preferences.py
index 21f70508..7d6ac957 100644
--- a/magic_uv/preferences.py
+++ b/magic_uv/preferences.py
@@ -59,9 +59,7 @@ from .ui.IMAGE_MT_uvs import (
MUV_MT_UVInspection,
)
from .utils.bl_class_registry import BlClassRegistry
-from .utils.addon_updater import AddonUpdaterManager
from .utils import compatibility as compat
-from . import updater
def view3d_uvmap_menu_fn(self, context):
@@ -169,14 +167,6 @@ def remove_builtin_menu():
bpy.types.VIEW3D_MT_uv_map.remove(view3d_uvmap_menu_fn)
-def get_update_candidate_branches(_, __):
- manager = AddonUpdaterManager.get_instance()
- if not manager.candidate_checked():
- return []
-
- return [(name, name, "") for name in manager.get_candidate_branch_names()]
-
-
def set_debug_mode(self, value):
self['enable_debug_mode'] = value
@@ -301,7 +291,6 @@ class MUV_Preferences(AddonPreferences):
items=[
('INFO', "Information", "Information about this add-on"),
('CONFIG', "Configuration", "Configuration about this add-on"),
- ('UPDATE', "Update", "Update this add-on"),
],
default='INFO'
)
@@ -336,13 +325,6 @@ class MUV_Preferences(AddonPreferences):
default=False
)
- # for add-on updater
- updater_branch_to_update = EnumProperty(
- name="branch",
- description="Target branch to update add-on",
- items=get_update_candidate_branches
- )
-
def draw(self, _):
layout = self.layout
@@ -520,6 +502,3 @@ class MUV_Preferences(AddonPreferences):
col.prop(self, "uv_bounding_box_cp_size")
col.prop(self, "uv_bounding_box_cp_react_size")
layout.separator()
-
- elif self.category == 'UPDATE':
- updater.draw_updater_ui(self)
diff --git a/magic_uv/updater.py b/magic_uv/updater.py
deleted file mode 100644
index 72d85766..00000000
--- a/magic_uv/updater.py
+++ /dev/null
@@ -1,144 +0,0 @@
-# <pep8-80 compliant>
-
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-# 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.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-__author__ = "Nutti <nutti.metro at gmail.com>"
-__status__ = "production"
-__version__ = "6.5"
-__date__ = "6 Mar 2021"
-
-import os
-
-import bpy
-from bpy.props import (
- StringProperty,
-)
-
-from .utils.bl_class_registry import BlClassRegistry
-from .utils.addon_updater import (
- AddonUpdaterManager,
- AddonUpdaterConfig,
- get_separator,
-)
-from .utils import compatibility as compat
-
-
- at BlClassRegistry()
-class MUV_OT_CheckAddonUpdate(bpy.types.Operator):
- bl_idname = "uv.muv_check_addon_update"
- bl_label = "Check Update"
- bl_description = "Check Add-on Update"
- bl_options = {'REGISTER', 'UNDO'}
-
- def execute(self, _):
- updater = AddonUpdaterManager.get_instance()
- updater.check_update_candidate()
-
- return {'FINISHED'}
-
-
- at BlClassRegistry()
- at compat.make_annotations
-class MUV_OT_UpdateAddon(bpy.types.Operator):
- bl_idname = "uv.muv_update_addon"
- bl_label = "Update"
- bl_description = "Update Add-on"
- bl_options = {'REGISTER', 'UNDO'}
-
- branch_name = StringProperty(
- name="Branch Name",
- description="Branch name to update",
- default="",
- )
-
- def execute(self, _):
- updater = AddonUpdaterManager.get_instance()
- updater.update(self.branch_name)
-
- return {'FINISHED'}
-
-
-def draw_updater_ui(prefs_obj):
- layout = prefs_obj.layout
- updater = AddonUpdaterManager.get_instance()
-
- layout.separator()
-
- if not updater.candidate_checked():
- col = layout.column()
- col.scale_y = 2
- row = col.row()
- row.operator(MUV_OT_CheckAddonUpdate.bl_idname,
- text="Check 'Magic UV' add-on update",
- icon='FILE_REFRESH')
- else:
- row = layout.row(align=True)
- row.scale_y = 2
- col = row.column()
- col.operator(MUV_OT_CheckAddonUpdate.bl_idname,
- text="Check 'Magic UV' add-on update",
- icon='FILE_REFRESH')
- col = row.column()
- if updater.latest_version() != "":
- col.enabled = True
- ops = col.operator(
- MUV_OT_UpdateAddon.bl_idname,
- text="Update to the latest release version (version: {})"
- .format(updater.latest_version()),
- icon='TRIA_DOWN_BAR')
- ops.branch_name = updater.latest_version()
- else:
- col.enabled = False
- col.operator(MUV_OT_UpdateAddon.bl_idname,
- text="No updates are available.")
-
- layout.separator()
- layout.label(text="Manual Update:")
- row = layout.row(align=True)
- row.prop(prefs_obj, "updater_branch_to_update", text="Target")
- ops = row.operator(
- MUV_OT_UpdateAddon.bl_idname, text="Update",
- icon='TRIA_DOWN_BAR')
- ops.branch_name = prefs_obj.updater_branch_to_update
-
- layout.separator()
- if updater.has_error():
- box = layout.box()
- box.label(text=updater.error(), icon='CANCEL')
- elif updater.has_info():
- box = layout.box()
- box.label(text=updater.info(), icon='ERROR')
-
-
-def register_updater(bl_info):
- config = AddonUpdaterConfig()
- config.owner = "nutti"
- config.repository = "Magic-UV"
- config.current_addon_path = os.path.dirname(os.path.realpath(__file__))
- config.branches = ["master"]
- config.addon_directory = \
- config.current_addon_path[
- :config.current_addon_path.rfind(get_separator())]
- config.min_release_version = bl_info["version"]
- config.default_target_addon_path = "magic_uv"
- config.target_addon_path = {
- "master": "src{}magic_uv".format(get_separator()),
- }
- updater = AddonUpdaterManager.get_instance()
- updater.init(bl_info, config)
diff --git a/magic_uv/utils/__init__.py b/magic_uv/utils/__init__.py
index 776c7564..87c6eacb 100644
--- a/magic_uv/utils/__init__.py
+++ b/magic_uv/utils/__init__.py
@@ -25,12 +25,10 @@ __date__ = "6 Mar 2021"
if "bpy" in locals():
import importlib
- importlib.reload(addon_updater)
importlib.reload(bl_class_registry)
importlib.reload(compatibility)
importlib.reload(property_class_registry)
else:
- from . import addon_updater
from . import bl_class_registry
from . import compatibility
from . import property_class_registry
diff --git a/magic_uv/utils/addon_updater.py b/magic_uv/utils/addon_updater.py
deleted file mode 100644
index 8c1601b8..00000000
--- a/magic_uv/utils/addon_updater.py
+++ /dev/null
@@ -1,372 +0,0 @@
-# <pep8-80 compliant>
-
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-# 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.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-__author__ = "Nutti <nutti.metro at gmail.com>"
-__status__ = "production"
-__version__ = "6.5"
-__date__ = "6 Mar 2021"
-
-from threading import Lock
-import urllib
-import urllib.request
-import ssl
-import json
-import os
-import zipfile
-import shutil
-import datetime
-
-
-def get_separator():
- if os.name == "nt":
- return "\\"
- return "/"
-
-
-def _request(url, json_decode=True):
- # pylint: disable=W0212
- ssl._create_default_https_context = ssl._create_unverified_context
- req = urllib.request.Request(url)
-
- try:
- result = urllib.request.urlopen(req)
- except urllib.error.HTTPError as e:
- raise RuntimeError("HTTP error ({})".format(str(e.code)))
- except urllib.error.URLError as e:
- raise RuntimeError("URL error ({})".format(str(e.reason)))
-
- data = result.read()
- result.close()
-
- if json_decode:
- try:
- return json.JSONDecoder().decode(data.decode())
- except Exception as e:
- raise RuntimeError("API response has invalid JSON format ({})"
- .format(s
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list