Compare commits
2
Commits
df72981a9a
...
v0.1.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f9b39c6fe3 | ||
|
|
f9ebcb0296 |
No files matched your search
Generated
+1
-1
@@ -1038,7 +1038,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ink-notes"
|
||||
version = "0.1.0"
|
||||
version = "0.1.1"
|
||||
dependencies = [
|
||||
"bytemuck",
|
||||
"egui",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "ink-notes"
|
||||
version = "0.1.0"
|
||||
version = "0.1.1"
|
||||
edition = "2021"
|
||||
description = "Latenzoptimierte Vektor-Notizbuch- und Inking-Anwendung für Linux"
|
||||
repository = "https://gitea.pansi.eu/harald/ink-notes"
|
||||
|
||||
@@ -3,11 +3,12 @@
|
||||
Latenzoptimierte Vektor-Notizbuch- und Inking-Anwendung für Linux (Zorin OS 18 / Ubuntu 24.04).
|
||||
|
||||
### Highlights:
|
||||
- **Aktive Stylus-Unterstützung (Lazarite / MPP / AES)**: Natives Wayland-Tablet-Protokoll mit präziser Druck- und Neigungserfassung
|
||||
- **Touchscreen Multi-Touch**: Stufenloses 2-Finger Pinch-to-Zoom und Panning mit umschaltbarem Finger-Zeichenmodus
|
||||
- **Zwei-Stufen-Inking-Modell**: Kausale Echtzeit-Glättung via 1€-Filter & akausale Ecken-Erhaltung (Corner Preservation)
|
||||
- **Geometrie- und Formerkennung**: Geraden, Rechtecke, Kreise, Rauten, Polygone & Koordinatensysteme (Draw-and-Hold)
|
||||
- **Viewport**: Stufenloser Zoom (25% - 500%) und Panning
|
||||
- **Multi-Dokumenten-Manager**: Unbegrenzte Notizbücher mit atomarem Autosave
|
||||
- **In-App Updater**: Automatische Versionsprüfung und Aktualisierung via Gitea Releases
|
||||
- **In-App Updater**: Automatische Versionsprüfung und sichere Atomar-Aktualisierung via Gitea Releases
|
||||
- **Vektor-PDF-Export**: Verlustfreie Ausgabe für Druck und Weitergabe
|
||||
|
||||
### Installation:
|
||||
|
||||
@@ -177,33 +177,34 @@ upload_asset() {
|
||||
local encoded_name
|
||||
encoded_name=$(python3 -c 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1]))' "${filename}")
|
||||
|
||||
# Prüfen, ob bereits ein Asset mit demselben Namen existiert
|
||||
local existing_id=""
|
||||
# Prüfen, ob bereits Assets mit demselben Namen existieren (können mehrere sein)
|
||||
local existing_ids=()
|
||||
if [ -f "${ASSETS_LIST_FILE}" ] && [ -s "${ASSETS_LIST_FILE}" ]; then
|
||||
existing_id=$(python3 -c '
|
||||
mapfile -t existing_ids < <(python3 -c '
|
||||
import sys, json
|
||||
try:
|
||||
assets = json.load(open(sys.argv[1]))
|
||||
target = sys.argv[2]
|
||||
for a in assets:
|
||||
if a.get("name") == target:
|
||||
print(a.get("id", ""))
|
||||
break
|
||||
if a.get("name") == target and a.get("id"):
|
||||
print(a.get("id"))
|
||||
except Exception:
|
||||
pass
|
||||
' "${ASSETS_LIST_FILE}" "${filename}")
|
||||
fi
|
||||
|
||||
if [ -n "${existing_id}" ]; then
|
||||
echo "Lösche bestehendes Asset '${filename}' (ID: ${existing_id}) vor Re-Upload..."
|
||||
local del_status
|
||||
del_status=$(curl -s -S -o /dev/null -w "%{http_code}" \
|
||||
-X DELETE "${API_BASE}/releases/${RELEASE_ID}/assets/${existing_id}" \
|
||||
-H "Authorization: token ${TOKEN}" || echo "000")
|
||||
if [ "${del_status}" != "204" ] && [ "${del_status}" != "200" ]; then
|
||||
echo "Warnung: Löschen von bestehendem Asset '${filename}' ergab HTTP ${del_status}."
|
||||
for eid in "${existing_ids[@]}"; do
|
||||
if [ -n "${eid}" ]; then
|
||||
echo "Lösche bestehendes Asset '${filename}' (ID: ${eid}) vor Re-Upload..."
|
||||
local del_status
|
||||
del_status=$(curl -s -S -o /dev/null -w "%{http_code}" \
|
||||
-X DELETE "${API_BASE}/releases/${RELEASE_ID}/assets/${eid}" \
|
||||
-H "Authorization: token ${TOKEN}" || echo "000")
|
||||
if [ "${del_status}" != "204" ] && [ "${del_status}" != "200" ]; then
|
||||
echo "Warnung: Löschen von bestehendem Asset '${filename}' ergab HTTP ${del_status}."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Lade Asset hoch: ${filename}..."
|
||||
local upload_res_file="$(mktemp)"
|
||||
|
||||
Reference in new issue
Block a user