From 131f8e13eaa7ce45b043276130c66360c3576202 Mon Sep 17 00:00:00 2001 From: Lahiru Pathirage Date: Sun, 19 Feb 2017 14:32:28 +0530 Subject: [PATCH] Font installation and removal bug fixes https://github.com/fontman/fontman-desktop/issues/21 --- .travis.yml | 1 + blueprint/fonts_controller.py | 37 +++++++++++++++++++++++------------ session.py | 4 ++-- utility/CacheManager.py | 4 ++-- utility/FontManager.py | 9 +++++---- 5 files changed, 35 insertions(+), 20 deletions(-) diff --git a/.travis.yml b/.travis.yml index 118b928..6a3e9b3 100755 --- a/.travis.yml +++ b/.travis.yml @@ -15,6 +15,7 @@ before_install: - pip3 install -r requirements.txt - pip3 install pyinstaller - pyinstaller --onefile core-runnner.py +- chmod +x dist/core-runnner - tar -zcvf dist/core-runnner-darwin-x64.tar.gz dist/core-runnner - ls dist/ install: true diff --git a/blueprint/fonts_controller.py b/blueprint/fonts_controller.py index 7172753..7041be7 100755 --- a/blueprint/fonts_controller.py +++ b/blueprint/fonts_controller.py @@ -49,7 +49,9 @@ def find_all_fonts(): "fontfaces": fontfaces_list, "isInstalled": font.is_installed, "isUpgradable": font.is_upgradable, - "name": font.name + "license": metadata.license, + "name": font.name, + "version": metadata.version } ) @@ -70,6 +72,21 @@ def install_font_by_font_id(font_id): return jsonify(response) +@fonts_blueprint.route("/fonts//remove") +def remove_font_by_font_id(font_id): + FontManager().remove_font(font_id) + + return jsonify(True) + + +@fonts_blueprint.route("/fonts//update", methods=["POST"]) +def update_font_by_font_id(font_id): + json_data = request.json + FontService().update_by_font_id(font_id, json_data) + + return jsonify(True) + + @fonts_blueprint.route("/fonts/") def find_by_query(): response_data = [] @@ -79,14 +96,18 @@ def find_by_query(): chosen_fonts = FontService().find_all_chosen() for font in chosen_fonts: - metadata = MetadataService().find_by_font_id(font.font_id).first() fontfaces = FontFaceService().find_by_font_id(font.font_id) languages = LanguageService().find_by_font_id(font.font_id) + metadata = MetadataService().find_by_font_id(font.font_id).first() + default_resource = "" fontfaces_list = [] languages_list = [] for fontface in fontfaces: + if "Regular" in fontface.fontface: + default_resource = fontface.resource_path + fontfaces_list.append( { "fontface": fontface.fontface, @@ -101,7 +122,8 @@ def find_by_query(): { "fontId": font.font_id, "isChosen": font.is_chosen, - "defaultFontface": metadata.default_fontface, + "defaultFontface": font.name + "-" + metadata.default_fontface, + "defaultResource": default_resource, "displayText": font.name, "fontfaces": fontfaces_list, "isInstalled": font.is_installed, @@ -122,12 +144,3 @@ def update_all_fonts(): FontService().update_all(json_data) return jsonify(json_data) - - -@fonts_blueprint.route("/fonts//update", methods=["POST"]) -def update_font_by_font_id(font_id): - json_data = request.json - print(json_data) - FontService().update_by_font_id(font_id, json_data) - - return jsonify(True) diff --git a/session.py b/session.py index d86b818..aceda07 100755 --- a/session.py +++ b/session.py @@ -12,8 +12,8 @@ # fontman server -# api_base_url = "http://104.197.248.93:8080/api/v1alpha" -api_base_url = "http://127.0.0.1:8080/api/v1alpha" +api_base_url = "http://130.211.178.68:8080/api/v1alpha" +# api_base_url = "http://127.0.0.1:8080/api/v1alpha" # fontman version version = "0.1.0-SNAPSHOT" diff --git a/utility/CacheManager.py b/utility/CacheManager.py index b8b817c..fd44833 100755 --- a/utility/CacheManager.py +++ b/utility/CacheManager.py @@ -74,8 +74,8 @@ def update_font_cache(self): } ) - installed_font = InstalledFontService().find_by_font_id(font_id) - if installed_font.first() is not None: + installed_font = InstalledFontService().find_by_font_id(font_id).first() + if installed_font is not None: if installed_font.version != font_data["version"]: FontService().update_by_font_id( font_id, diff --git a/utility/FontManager.py b/utility/FontManager.py index 3430cf1..ee637de 100755 --- a/utility/FontManager.py +++ b/utility/FontManager.py @@ -5,7 +5,6 @@ Created by Lahiru Pathirage @ Mooniak on 28/12/2016 """ -from consumer import FontsConsumer from service import FontFileService from service import FontService from service import InstalledFontService @@ -97,7 +96,7 @@ def get_active_fonts_list(self): return font_data - def install_font(self, font_id, rel_id): + def install_font(self, font_id): font_dir = "./data/" + font_id sys_font_dir = self.__system.font_directory artifacts_dir = "./data/" + font_id + "/extracted" @@ -107,12 +106,12 @@ def install_font(self, font_id, rel_id): metadata = MetadataService().find_by_font_id(font_id).first() FileManager().download_file( - font_dir + "/" + font_data.name, + font_dir + "/" + font_data.name + ".zip", metadata.download_url ) FileManager().extract_file( - font_dir + "/" + font_data.name, + font_dir + "/" + font_data.name + ".zip", artifacts_dir ) @@ -123,6 +122,8 @@ def install_font(self, font_id, rel_id): artifacts_dir, ".ttf" ) + print(fontfaces) + for fontface in fontfaces: if "Windows" in self.__system.platform: fixed_install_font(fontface["file_path"])