Compare commits

..

No commits in common. "c647d6f3478155c2958df5ed35be84ac5da2e39f" and "a2821886f1de62132cdc3327830221231d3a4ca0" have entirely different histories.

7 changed files with 58 additions and 71 deletions

View File

@ -1,12 +1,25 @@
Appname:=$(shell cat appname.txt)
prefix:=/usr
temp:=/tmp/fpm-jolla
sdkpath:=$(HOME)/SailfishOS
sourcePath:=$(shell pwd)
dependencies=$(shell for file in `cat dependencies.txt`;do echo "-d "$${file};done;)
arch:=armv7hl
version:=0.5.0
iteration:=9
iteration:=1
rpmname:=$(Appname)-$(version)-$(iteration).$(arch).rpm
ssh_user:=defaultuser
jolla_usb_ip:=192.168.2.15
jolla_wifi_ip:=192.168.100.34
all: clean build-tmp rpm-i686 rpm-jolla rpm-aarch64
all: clean build-tmp rpm-virt rpm-jolla
make-jolla-usb: build-tmp rpm-jolla send-jolla-usb
make-jolla-wifi: build-tmp rpm-jolla send-jolla-wifi
make-jolla-ap: build-tmp rpm-jolla send-jolla-ap
make-virt: arch:=i686
make-virt: build-tmp rpm-virt send-virt
build-tmp:
mkdir -p $(temp)/usr/share/applications
@ -19,9 +32,9 @@ build-tmp:
cp -ar ./dat/appicon.png $(temp)/usr/share/icons/hicolor/86x86/apps/$(Appname).png
install -m 755 ./dat/$(Appname).sh $(temp)/usr/bin/$(Appname)
rpm-i686: arch:=i686
rpm-i686: rpmname:=$(Appname)-$(version)-$(iteration).$(arch).rpm
rpm-i686: build-tmp
rpm-virt: arch:=i686
rpm-virt: rpmname:=$(Appname)-$(version)-$(iteration).$(arch).rpm
rpm-virt: build-tmp
cd $(temp);fpm -f -s dir -t rpm \
--after-install $(sourcePath)/dat/upgradeScript.sh \
--after-remove $(sourcePath)/dat/removeScript.sh \
@ -35,8 +48,6 @@ rpm-i686: build-tmp
-a $(arch) \
--prefix / *
rpm-jolla: arch:=armv7hl
rpm-jolla: rpmname:=$(Appname)-$(version)-$(iteration).$(arch).rpm
rpm-jolla: build-tmp
cd $(temp);fpm -f -s dir -t rpm \
--after-install $(sourcePath)/dat/upgradeScript.sh \
@ -51,23 +62,36 @@ rpm-jolla: build-tmp
-a $(arch) \
--prefix / *
rpm-aarch64: arch:=aarch64
rpm-aarch64: rpmname:=$(Appname)-$(version)-$(iteration).$(arch).rpm
rpm-aarch64: build-tmp
cd $(temp);fpm -f -s dir -t rpm \
--after-install $(sourcePath)/dat/upgradeScript.sh \
--after-remove $(sourcePath)/dat/removeScript.sh \
--rpm-changelog $(sourcePath)/changelog.txt \
--directories "/usr/share/$(Appname)" \
-v $(version) \
--iteration $(iteration) \
$(dependencies) \
-p $(temp)/$(rpmname) \
-n $(Appname) \
-a $(arch) \
--prefix / *
send-virt:
cat $(temp)/$(rpmname) | ssh -i '$(sdkpath)/vmshare/ssh/private_keys/SailfishOS_Emulator/nemo' -p2223 $(ssh_user)@localhost \
cat ">" /tmp/$(rpmname) "&&" \
pkcon install-local -y /tmp/$(rpmname) "&&" \
rm /tmp/$(rpmname)
send-jolla-wifi:
cat $(temp)/$(rpmname) | ssh $(ssh_user)@$(jolla_wifi_ip) \
cat ">" /tmp/$(rpmname) "&&" \
pkcon install-local -y /tmp/$(rpmname) "&&" \
rm /tmp/$(rpmname)
send-jolla-ap: jolla_wifi_ip:=192.168.1.1
send-jolla-ap:
cat $(temp)/$(rpmname) | ssh $(ssh_user)@$(jolla_wifi_ip) \
cat ">" /tmp/$(rpmname) "&&" \
pkcon install-local -y /tmp/$(rpmname) "&&" \
rm /tmp/$(rpmname)
send-jolla-usb:
cat $(temp)/$(rpmname) | ssh $(ssh_user)@$(jolla_usb_ip) \
cat ">" /tmp/$(rpmname) "&&" \
pkcon install-local -y /tmp/$(rpmname) "&&" \
rm /tmp/$(rpmname)
send-only-virt:
cat $(temp)/$(rpmname) | ssh -i '$(sdkpath)/vmshare/ssh/private_keys/SailfishOS_Emulator/nemo' -p2223 $(ssh_user)@localhost \
cat ">" /tmp/$(rpmname)
clean:
rm -rf $(temp)
rm -rf $(builddir)
rm -rf ./$(Appname)-$(version)-$(iteration)*
rm -rf ./$(rpmname)

View File

@ -9,7 +9,6 @@ Make your webapps icons in the app box look better with the rest of your native
## Build dependencies
- [fpm](https://github.com/jordansissel/fpm)
- [rpm-tools](http://rpm.org/)
## Build your own RPM package
1. Clone the repository: `git clone https://gitlab.com/kirbylife/harbour-muchkin`
@ -17,14 +16,13 @@ Make your webapps icons in the app box look better with the rest of your native
1. Build the package.
1. armv7hl: `make rpm-jolla`
1. i686: `make rpm-virt`
1. aarch64: `make rpm-aarch64`
1. aarch64: `soon`
1. the .rpm file will be on `/tmp/fpm-jolla/`
## TO-DO
- [ ] Make betters Make commands
- [x] Support to aarch64 arquitecture
- [x] Choice non-transparent color to fill the empty spaces
- [x] Fix the issue with sailjail
- [ ] Make betters Make commands
- [ ] Add option to request favicon
- [ ] Add option to restore the original icon
- [ ] Make all icons in the main grid the same size

View File

@ -4,5 +4,3 @@ X-Nemo-Application-Type=silica-qt5
Name=Muchkin
Icon=harbour-muchkin
Exec=sailfish-qml harbour-muchkin
[X-Sailjail]
Sandboxing=Disabled

View File

@ -1,4 +1,5 @@
#!/bin/sh
#rm -rf /usr/share/harbour-muchkin
echo "Upgrading..."
echo "Upgrading...."

View File

@ -2,4 +2,3 @@ libsailfishapp-launcher
pyotherside-qml-plugin-python3-qt5
python3-base
python3-imaging
python3-requests

View File

@ -68,9 +68,7 @@ Page {
anchors.topMargin: 10
text: "Save"
onClicked: {
if(iconEditor.attrs.old_icon === undefined) {
iconEditor.attrs.old_icon = iconEditor.attrs.Icon.toString()
}
iconEditor.attrs.old_icon = iconEditor.attrs.Icon.toString()
iconEditor.attrs.Icon = icon.source.toString()
py.importModule("main", function(){
py.call("main.save_icon", [iconEditor.attrs], function(result){

View File

@ -1,29 +1,13 @@
import pyotherside
from PIL import Image, ImageDraw, ImageChops
from PIL.Image import Image as ImageType
from PIL import Image, ImageOps, ImageDraw, ImageChops
from io import BytesIO
from glob import glob
from collections import Counter
import requests
import base64
import os
import shutil
import logging
logging_filename = os.path.join(os.getenv("HOME"),
".local",
"share",
"org.git.kirbylife.harbour-muchkin",
"muchkin.log")
logging.basicConfig(filename=logging_filename, filemode="w", level=logging.DEBUG)
def download_icon(url) -> ImageType:
response = requests.get(url)
img = Image.open(BytesIO(response.content))
img = img.convert("RGBA")
return img
def base64_to_img(base64_bytes: bytes) -> ImageType:
def base64_to_img(base64_bytes: bytes) -> Image:
img_bytes = base64.b64decode(base64_bytes)
img_buffer = BytesIO(img_bytes)
img = Image.open(img_buffer)
@ -40,7 +24,7 @@ def avg_colors(img):
counter[pixel] += 1
return counter.most_common(1)[0][0]
def add_background(img: ImageType, bg_tuple: tuple) -> ImageType:
def add_background(img: Image, bg_tuple: tuple) -> Image:
bg = Image.new("RGBA", img.size, bg_tuple)
bg.paste(img, (0, 0), img)
return bg
@ -96,18 +80,8 @@ def get_web_icons():
return list(map(parse_file, apps))
def sailify(raw_str, pattern):
try:
# New versions of Sailfish has the url on the icons
img = download_icon(raw_str)
logging.info("Downloaded from url: " + raw_str)
except requests.exceptions.InvalidSchema:
# The old ones converted the icon to base64
base64_bytes = raw_str.replace("data:image/png;base64,", "", 1).encode()
img = base64_to_img(base64_bytes)
logging.info("Converted from base64")
except Exception as e:
logging.error(e)
raise e
base64_bytes = raw_str.replace("data:image/png;base64,", "", 1).encode()
img = base64_to_img(base64_bytes)
bg_tuple = avg_colors(img)
img = add_background(img, bg_tuple)
img = crop_to_circle(img, pattern)
@ -119,17 +93,12 @@ def sailify(raw_str, pattern):
def backup_icon(app):
if not os.path.exists(app["path"] + "backup"):
backup_path = app["path"] + "_backup"
shutil.copyfile(app["path"], backup_path)
logging.info("Icon backed up on: " + backup_path)
else:
logging.info("Backup already exists")
shutil.copyfile(app["path"], app["path"] + "_backup")
def save_icon(app):
new_content = deparse_file(app)
with open(app["path"], "w") as f:
f.write(new_content)
logging.info("Icon saved on: " + app["path"])
return True
def main():