From e0ee6c40851a8861183385b562b37f62ed661ffe Mon Sep 17 00:00:00 2001 From: trigg Date: Sat, 15 Jan 2022 14:43:08 +0000 Subject: [PATCH] - Implement custom default avatar fixes #191 and #8 again --- discover-overlay-default.png | Bin 0 -> 4718 bytes discover-overlay-default.svg | 93 ++++++++++++++++++++++++++++++ discover_overlay/image_getter.py | 26 ++++++++- discover_overlay/voice_overlay.py | 2 +- setup.py | 4 +- 5 files changed, 120 insertions(+), 5 deletions(-) create mode 100644 discover-overlay-default.png create mode 100644 discover-overlay-default.svg diff --git a/discover-overlay-default.png b/discover-overlay-default.png new file mode 100644 index 0000000000000000000000000000000000000000..cdef2f33c40492e79477d55248ecf3524705961e GIT binary patch literal 4718 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 + + + + + + + + + + + + + + + + + diff --git a/discover_overlay/image_getter.py b/discover_overlay/image_getter.py index e0f24c0..f7b1748 100644 --- a/discover_overlay/image_getter.py +++ b/discover_overlay/image_getter.py @@ -19,6 +19,7 @@ import requests import cairo import PIL import PIL.Image as Image +import os gi.require_version('GdkPixbuf', '2.0') # pylint: disable=wrong-import-position from gi.repository import Gio, GdkPixbuf @@ -95,6 +96,23 @@ class SurfaceGetter(): except PIL.UnidentifiedImageError: logging.error("Unknown image type") + def get_file(self): + locations = [os.path.expanduser('~/.local/'), '/usr/'] + for prefix in locations: + try: + image = Image.open(os.path.join(prefix,self.url)) + surface = self.from_pil(image) + self.func(self.identifier, surface) + return + except ValueError: + logging.error("Unable to read %s", self.url) + except TypeError: + logging.error("Unable to read %s", self.url) + except PIL.UnidentifiedImageError: + logging.error("Unknown image type") + + + def from_pil(self, image, alpha=1.0): """ :param im: Pillow Image @@ -119,8 +137,12 @@ def get_image(func, identifier, ava, size): def get_surface(func, identifier, ava, size): """Download to cairo surface""" image_getter = SurfaceGetter(func, identifier, ava, size) - thread = threading.Thread(target=image_getter.get_url, args=()) - thread.start() + if identifier.startswith('http'): + thread = threading.Thread(target=image_getter.get_url, args=()) + thread.start() + else: + thread = threading.Thread(target=image_getter.get_file, args=()) + thread.start() def get_aspected_size(img, width, height, anchor=0, hanchor=0): diff --git a/discover_overlay/voice_overlay.py b/discover_overlay/voice_overlay.py index 5887086..241c0d8 100644 --- a/discover_overlay/voice_overlay.py +++ b/discover_overlay/voice_overlay.py @@ -61,7 +61,7 @@ class VoiceOverlayWindow(OverlayWindow): self.guild_ids = tuple() self.force_location() get_surface(self.recv_avatar, - "https://cdn.discordapp.com/embed/avatars/3.png", + "share/icons//hicolor/256x256/apps/discover-overlay-default.png", 'def', self.avatar_size) self.set_title("Discover Voice") self.redraw() diff --git a/setup.py b/setup.py index f8168e7..533ecfb 100644 --- a/setup.py +++ b/setup.py @@ -20,8 +20,8 @@ setup( ('share/applications', [ 'discover_overlay.desktop' ]), - ('share/icons/hicolor/256x256/apps', ['discover-overlay.png', 'discover-overlay-tray.png']), - ('share/icons/hicolor/scalable/apps', ['discover-overlay.svg', 'discover-overlay-tray.svg']) + ('share/icons/hicolor/256x256/apps', ['discover-overlay.png', 'discover-overlay-tray.png', 'discover-overlay-default.png']), + ('share/icons/hicolor/scalable/apps', ['discover-overlay.svg', 'discover-overlay-tray.svg', 'discover-overlay-default.svg']) ], install_requires=[ 'PyGObject>=3.22',