- 👋 Hi, I’m @pablo-s
pablo-s / passes Goto Github PK
View Code? Open in Web Editor NEWManage your digital passes
License: GNU General Public License v3.0
Manage your digital passes
License: GNU General Public License v3.0
Hi! I just discovered this app and it looks really well built. I'm wondering if it would be possible for it to be built for macOS, with the current toolchain used within the app?
I opened a pkpass file and this traceback appeared in the console:
File "/usr/share/passes/passes/main.py", line 127, in _on_file_chosen
pkpass = PassFactory.create(pkpass_file)
File "/usr/share/passes/passes/digital_pass_factory.py", line 41, in create
digital_pass = this_class.create_pkpass(archive)
File "/usr/share/passes/passes/digital_pass_factory.py", line 71, in create_pkpass
translation_dict = thisClass.create_translation_dict(file_content)
File "/usr/share/passes/passes/digital_pass_factory.py", line 108, in create_translation_dict
content = translation_file_content.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfe in position 0: invalid start byte
I used both new and old pkpass file. I am using latest Arch Linux with latest git version of Passes from AUR.
In the main screen list of passes, it seems the pass name/label is derived from the pass meta data. It would be nice to be able to rename that for cases where there are multiple same or similar named passes.
Hi! I've installed the app on my Pinephone (ARM 64) from Flathub. I wanted to import a .pkpass
file previously downloaded from renfe.com (the Spanish national train service). But, the app fails to import and shows the "File is not a pass" message. I've also tried installing the app via AUR passes-git
but got the same result. However, I've tried from my desktop computer (via Flathub), and the app correctly imports the file and shows all details.
Moreover, I've tried to generate a sample .pkpass
from passsource.com, and the app correctly imports it from my Pinephone.
Therefore, something strange happens when importing Renfe .pkpass
files on the Pinephone. ¿How can I debug this issue?
Thanks.
So I tried a few old pkpasses. And I found that my cinemy includes movie pictures as thumbnails. The files are marked with a .png extension, but are in real jpeg.
The error is:
flatpak run me.sanchezrodriguez.passes
Traceback (most recent call last):
File "/app/share/passes/passes/main.py", line 127, in _on_file_chosen
pkpass = PassFactory.create(pkpass_file)
File "/app/share/passes/passes/digital_pass_factory.py", line 41, in create
digital_pass = this_class.create_pkpass(archive)
File "/app/share/passes/passes/digital_pass_factory.py", line 65, in create_pkpass
pixbuf = thisClass.create_pixbuf_from_filename(archive, file_name)
File "/app/share/passes/passes/digital_pass_factory.py", line 102, in create_pixbuf_from_filename
loader.write(image_data)
gi.repository.GLib.GError: gdk-pixbuf-error-quark: Fatal error reading PNG image file: Not a PNG file (0)
This is the content of a pkpass
❯ unzip pass.pkpass
Archive: pass.pkpass
inflating: [email protected]
inflating: [email protected]
inflating: icon.png
inflating: [email protected]
inflating: [email protected]
inflating: background.png
inflating: [email protected]
inflating: logo.png
inflating: [email protected]
inflating: [email protected]
inflating: [email protected]
inflating: thumbnail.png
inflating: pass.json
inflating: manifest.json
inflating: signature
❯ file *.png
[email protected]: PNG image data, 720 x 880, 8-bit colormap, non-interlaced
[email protected]: PNG image data, 1080 x 1320, 8-bit colormap, non-interlaced
background.png: PNG image data, 360 x 440, 1-bit colormap, non-interlaced
[email protected]: PNG image data, 240 x 240, 8-bit/color RGB, non-interlaced
[email protected]: PNG image data, 360 x 360, 8-bit/color RGB, non-interlaced
icon.png: PNG image data, 120 x 120, 8-bit/color RGB, non-interlaced
[email protected]: PNG image data, 400 x 200, 8-bit gray+alpha, non-interlaced
[email protected]: PNG image data, 600 x 300, 8-bit gray+alpha, non-interlaced
logo.png: PNG image data, 200 x 100, 8-bit gray+alpha, non-interlaced
[email protected]: JPEG image data, JFIF standard 1.01, resolution (DPI), density 96x96, segment length 16, progressive, precision 8, 320x451, components 3
[email protected]: JPEG image data, JFIF standard 1.01, resolution (DPI), density 96x96, segment length 16, progressive, precision 8, 480x677, components 3
thumbnail.png: JPEG image data, JFIF standard 1.01, resolution (DPI), density 96x96, segment length 16, progressive, precision 8, 160x226, components 3
Starting passes with Python 3.12 you'll get the following warnings.
/usr/share/passes/passes/digital_pass.py:159: SyntaxWarning: invalid escape sequence '\('
result = re.search('rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)',
/usr/share/passes/passes/digital_pass.py:170: SyntaxWarning: invalid escape sequence '\#'
result = re.search('\#(\S{2})(\S{2})(\S{2})(\S{2})',
/usr/share/passes/passes/digital_pass.py:305: SyntaxWarning: invalid escape sequence '\:'
matches = re.finditer('(T|t)([0-9]{2}\:?)+(\+|\-|Z)?', string)
/usr/share/passes/passes/digital_pass_factory.py:110: SyntaxWarning: invalid escape sequence '\.'
image_type = re.split('\.|@', file_name)[0]
/usr/share/passes/passes/pass_field_row.py:54: SyntaxWarning: invalid escape sequence '\S'
value = re.sub('(?:(https?://)|(www))(\S+)',
/usr/share/passes/passes/pass_field_row.py:59: SyntaxWarning: invalid escape sequence '\+'
value = re.sub('(\+\d+[\(\)\-\d\s\.]+\d)',
/usr/share/passes/passes/pass_field_row.py:64: SyntaxWarning: invalid escape sequence '\S'
value = re.sub('(\S+\@[\w\-]+\.\w+)',
Would be nice to review these warnings and try to fix them.
I really like your software. Maybe you could look into applying for your app to be featured in GNOME circle; see circle.gnome.org. Let me know what you think.
Appstream metadata validation fails, mostly due to the screenshot being invalid. Here's the relevant output:
==================================== 2/2 =====================================
test: Validate appstream file
start time: 13:44:34
duration: 0.56s
result: exit status 1
command: MALLOC_PERTURB_=48 /usr/bin/appstream-util validate data/me.sanchezrodriguez.passes.metainfo.xml
----------------------------------- stdout -----------------------------------
data/me.sanchezrodriguez.passes.metainfo.xml: FAILED:
• attribute-invalid : <screenshot> width too large [https://raw.githubusercontent.com/pablo-s/passes/main/data/screenshots/passes.png] maximum is 1600px
• attribute-invalid : <screenshot> height too large [https://raw.githubusercontent.com/pablo-s/passes/main/data/screenshots/passes.png] maximum is 900px
• style-invalid : <image> has vertical padding [https://raw.githubusercontent.com/pablo-s/passes/main/data/screenshots/passes.png]
• style-invalid : <image> has horizontal padding [https://raw.githubusercontent.com/pablo-s/passes/main/data/screenshots/passes.png]
• style-invalid : <ul> cannot start a description [(null)]
• style-invalid : Not enough <p> tags for a good description [0/1]
----------------------------------- stderr -----------------------------------
Validation of files failed
==============================================================================
Note: this happened on Debian testing using appstream-util version 0.8.1
Generally, official distribution packages are supposed to build without Internet access. Also, it's good for distributions to run as many build tests as possible.
Therefore, please consider adding the --nonet
argument to your appstream-util validation test.
Device Librem 5
PureOS Byzantium (Debian Bullseye based)
Passes installed via Flathub Flatpak.
When you open a pass, the info button has a broken image link as if the svg at data/icons/hicolor/scalable/actions/info-symbolic.svg
has not installed properly. This does not seem to be reproducible when installing on x86.
esPass is an open source alternative format to Apple's pkpass format.
It is supported by the best pkpass manager on Android (PassAndroid), and the best self-hosted ticketing platform, Pretix.
I noticed it said on the flathub that it could work for rewards cards or coupons... The question is how? I imagine you'd use another app to scan the barcode and turn it into a file format readable by this app?
Here you can find info about how to add support to dark mode: https://developer.gnome.org/documentation/tutorials/beginners/getting_started/dark_mode.html
Thanks for the marvelous app!
Will images (for qrcode) or other formats (such as PDFs ) be supported?
Also it would be nice if with the camera you could scan the qrcode directly from the app.
Hi there. I think passes is an awesome thing. Our Cinema provides tickets for apple wallet, who are pkpasses, the same for a lot of other ticket shops and systems.
Sadly passes currently can't deal with them directly. You need to download them at first and manually import later on via + in the app.
So my request here is to have mime type handler support as well as support for handling
application/vnd.apple.pkpass
application/vnd.apple.pkpasses
README lacks of some useful information:
Line 3 in d151ab2
I installed (lib)zint on freebsd, which even installs cmake config files, but it isn't found unless I change the line above to
libzint = dependency('zint')
Hi, I have a german subscription for the nation-wide train ticket (Deutschlandticket). The ticket website, https://github.com/KDE/kitinerary and PassAndroid show a 355 byte Aztec code as QR code, while passes only shows a brief number as Aztec code (I think the ticket number). The Passes code is definitely not the correct one, although I used the very same .pkpass file as eg for passandroid and kitinerary.
I would attach the pkpass but as it is a currently valid ticket with all my data in it, I would rather not make it public. But I could email it to you, if you are interested.
P.S. Forgot: I am using the flatpak 0.8 version, not sure if things might have been fixed since then.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.