Point installers and updaters at the Graduately repository.

GitHub and Forgejo were renamed; keep artifact filenames, update repo URLs and remotes.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
pepaskopec-blip 2026-09-23 21:24:35 +02:00
commit d9bba71442
21 changed files with 55 additions and 53 deletions

View file

@ -289,7 +289,7 @@ jobs:
user="$(printf '%s' "${FORGEJO_USER:-}" | tr -d '\r\n')"
user="${user:-oauth2}"
basic="$(printf '%s:%s' "$user" "$token" | base64 -w0)"
forgejo_url="${FORGEJO_URL:-https://git.dvorakmortonxd.dev/edu/maturita.c.git}"
forgejo_url="${FORGEJO_URL:-https://git.dvorakmortonxd.dev/edu/Graduately.git}"
git -c "http.extraHeader=Authorization: Basic ${basic}" push -f \
"$forgejo_url" \
HEAD:refs/heads/builds
@ -323,7 +323,7 @@ jobs:
user="$(printf '%s' "${FORGEJO_USER:-}" | tr -d '\r\n')"
user="${user:-oauth2}"
basic="$(printf '%s:%s' "$user" "$token" | base64 -w0)"
forgejo_url="${FORGEJO_URL:-https://git.dvorakmortonxd.dev/edu/maturita.c.git}"
forgejo_url="${FORGEJO_URL:-https://git.dvorakmortonxd.dev/edu/Graduately.git}"
git -c "http.extraHeader=Authorization: Basic ${basic}" push -f \
"$forgejo_url" \
HEAD:refs/heads/main

View file

@ -1,6 +1,6 @@
# Graduately
Vzdělávací aplikace k přípravě na maturitu (repo `maturita.c`). / An educational app for the Czech maturita exam (repo `maturita.c`).
Vzdělávací aplikace k přípravě na maturitu (repo `Graduately`). / An educational app for the Czech maturita exam (repo `Graduately`).
**[Česky](#česky)** · **[English](#english)**
@ -18,7 +18,7 @@ zatím zamčené placeholdery. Aplikace se po instalaci aktualizuje sama.
### Instalace
Žádné releasy ani čísla verzí nejsou. CI po každém pushi na `main` uloží
balíčky do větve [`builds`](https://github.com/pepaskopec-blip/maturita.c/tree/builds).
balíčky do větve [`builds`](https://github.com/pepaskopec-blip/Graduately/tree/builds).
Instalátor samotnou aplikaci neobsahuje — při spuštění si dohledá aktuální
commit větve `builds` a stáhne ten soubor, ne kešovanou kopii podle názvu
větve.
@ -27,11 +27,11 @@ větve.
| Platforma | Soubor | Jak spustit |
| --------- | ------ | ----------- |
| macOS (Apple Silicon) | [maturita-installer-macos.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-macos.zip) | Rozbalit, pravý klik na **Nainstalovat Graduately** → **Otevřít** |
| Windows (x64) | [maturita-installer-windows.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-windows.zip) | Rozbalit a dvojklik; u SmartScreenu **Další informace → Přesto spustit** |
| Linux (x86_64) | [maturita-installer-linux.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-linux.zip) | Rozbalit a dvojklik na instalátor |
| Android (8+) | [maturita-installer-android.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-android.zip) | Rozbalit, otevřít **Stahnout Graduately.html** a nainstalovat APK (neznámé zdroje) |
| iOS (26+) | [maturita-installer-ios.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-ios.zip) | Rozbalit, otevřít **Jak nainstalovat Graduately.html**. Nejjednodušší: Xcode na Macu, nebo IPA přes AltStore |
| macOS (Apple Silicon) | [maturita-installer-macos.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-macos.zip) | Rozbalit, pravý klik na **Nainstalovat Graduately** → **Otevřít** |
| Windows (x64) | [maturita-installer-windows.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-windows.zip) | Rozbalit a dvojklik; u SmartScreenu **Další informace → Přesto spustit** |
| Linux (x86_64) | [maturita-installer-linux.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-linux.zip) | Rozbalit a dvojklik na instalátor |
| Android (8+) | [maturita-installer-android.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-android.zip) | Rozbalit, otevřít **Stahnout Graduately.html** a nainstalovat APK (neznámé zdroje) |
| iOS (26+) | [maturita-installer-ios.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-ios.zip) | Rozbalit, otevřít **Jak nainstalovat Graduately.html**. Nejjednodušší: Xcode na Macu, nebo IPA přes AltStore |
Kam se to nainstaluje: `/Applications` nebo `~/Applications` (macOS),
`%LOCALAPPDATA%\Programs\Graduately` (Windows), `~/Applications` (Linux).
@ -44,15 +44,15 @@ v **Nastavení → Aktualizace**.
#### Bez instalátoru
Na větvi [`builds`](https://github.com/pepaskopec-blip/maturita.c/tree/builds)
Na větvi [`builds`](https://github.com/pepaskopec-blip/Graduately/tree/builds)
jsou i hotové balíčky. Odkazy podle názvu větve umí CDN kešovat, proto je
spolehlivější instalátor výše, nebo stažení přímo z té stránky větve:
- [maturita-macos-arm64.zip](https://github.com/pepaskopec-blip/maturita.c/raw/builds/maturita-macos-arm64.zip)
- [maturita-windows-x64.zip](https://github.com/pepaskopec-blip/maturita.c/raw/builds/maturita-windows-x64.zip)
- [maturita-linux-x86_64.AppImage](https://github.com/pepaskopec-blip/maturita.c/raw/builds/maturita-linux-x86_64.AppImage)
- [maturita-android.apk](https://github.com/pepaskopec-blip/maturita.c/raw/refs/heads/builds/maturita-android.apk)
- [maturita-ios.ipa](https://github.com/pepaskopec-blip/maturita.c/raw/refs/heads/builds/maturita-ios.ipa)
- [maturita-macos-arm64.zip](https://github.com/pepaskopec-blip/Graduately/raw/builds/maturita-macos-arm64.zip)
- [maturita-windows-x64.zip](https://github.com/pepaskopec-blip/Graduately/raw/builds/maturita-windows-x64.zip)
- [maturita-linux-x86_64.AppImage](https://github.com/pepaskopec-blip/Graduately/raw/builds/maturita-linux-x86_64.AppImage)
- [maturita-android.apk](https://github.com/pepaskopec-blip/Graduately/raw/refs/heads/builds/maturita-android.apk)
- [maturita-ios.ipa](https://github.com/pepaskopec-blip/Graduately/raw/refs/heads/builds/maturita-ios.ipa)
Postup a nastavení se ukládají vedle `.app` / složky / AppImage do `progress/`.
Na Androidu, iOS a macOS do úložiště aplikace (stejné statistiky, témata a jazyk).
@ -98,8 +98,8 @@ sudo pacman -S base-devel pkgconf gtk4
```
```bash
git clone https://github.com/pepaskopec-blip/maturita.c.git
cd maturita.c
git clone https://github.com/pepaskopec-blip/Graduately.git
cd Graduately
```
Na Macu:
@ -144,7 +144,7 @@ C:\msys64\ucrt64.exe pacman -S --noconfirm mingw-w64-ucrt-x86_64-gcc mingw-w64-u
V terminálu **MSYS2 UCRT64**:
```bash
cd /c/Users/<jméno>/maturita.c # C:\Users\<jméno>\maturita.c v MSYS2
cd /c/Users/<jméno>/Graduately # C:\Users\<jméno>\Graduately v MSYS2
make
./maturita.exe
make bundle # dist/maturita.exe jde spustit i z Průzkumníka
@ -211,7 +211,7 @@ placeholders. After install the app updates itself.
### Install
There are no releases and no version numbers. CI writes packages to the
[`builds`](https://github.com/pepaskopec-blip/maturita.c/tree/builds) branch
[`builds`](https://github.com/pepaskopec-blip/Graduately/tree/builds) branch
whenever `main` changes. The installer carries no app of its own — it fetches
the current `builds` commit when you run it, not a CDN-cached copy of the
branch-named file.
@ -220,11 +220,11 @@ branch-named file.
| Platform | File | How to run |
| -------- | ---- | ---------- |
| macOS (Apple Silicon) | [maturita-installer-macos.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-macos.zip) | Unzip, right-click **Nainstalovat Graduately** → **Open** |
| Windows (x64) | [maturita-installer-windows.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-windows.zip) | Unzip and double-click; if SmartScreen appears, **More info → Run anyway** |
| Linux (x86_64) | [maturita-installer-linux.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-linux.zip) | Unzip and double-click the installer |
| Android (8+) | [maturita-installer-android.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-android.zip) | Unzip, open **Stahnout Graduately.html**, then install the APK (unknown sources) |
| iOS (26+) | [maturita-installer-ios.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-ios.zip) | Unzip, open **Jak nainstalovat Graduately.html**. Easiest: Xcode on a Mac, or the IPA via AltStore |
| macOS (Apple Silicon) | [maturita-installer-macos.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-macos.zip) | Unzip, right-click **Nainstalovat Graduately** → **Open** |
| Windows (x64) | [maturita-installer-windows.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-windows.zip) | Unzip and double-click; if SmartScreen appears, **More info → Run anyway** |
| Linux (x86_64) | [maturita-installer-linux.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-linux.zip) | Unzip and double-click the installer |
| Android (8+) | [maturita-installer-android.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-android.zip) | Unzip, open **Stahnout Graduately.html**, then install the APK (unknown sources) |
| iOS (26+) | [maturita-installer-ios.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-ios.zip) | Unzip, open **Jak nainstalovat Graduately.html**. Easiest: Xcode on a Mac, or the IPA via AltStore |
Install locations: `/Applications` or `~/Applications` (macOS),
`%LOCALAPPDATA%\Programs\Graduately` (Windows), `~/Applications` (Linux).
@ -237,15 +237,15 @@ banner. Manual check: **Settings → Updates**.
#### Packages without the installer
The same files live on
[`builds`](https://github.com/pepaskopec-blip/maturita.c/tree/builds).
[`builds`](https://github.com/pepaskopec-blip/Graduately/tree/builds).
Branch-named raw URLs can be cached by the CDN, so prefer the installer
above, or download from that branch page:
- [maturita-macos-arm64.zip](https://github.com/pepaskopec-blip/maturita.c/raw/builds/maturita-macos-arm64.zip)
- [maturita-windows-x64.zip](https://github.com/pepaskopec-blip/maturita.c/raw/builds/maturita-windows-x64.zip)
- [maturita-linux-x86_64.AppImage](https://github.com/pepaskopec-blip/maturita.c/raw/builds/maturita-linux-x86_64.AppImage)
- [maturita-android.apk](https://github.com/pepaskopec-blip/maturita.c/raw/refs/heads/builds/maturita-android.apk)
- [maturita-ios.ipa](https://github.com/pepaskopec-blip/maturita.c/raw/refs/heads/builds/maturita-ios.ipa)
- [maturita-macos-arm64.zip](https://github.com/pepaskopec-blip/Graduately/raw/builds/maturita-macos-arm64.zip)
- [maturita-windows-x64.zip](https://github.com/pepaskopec-blip/Graduately/raw/builds/maturita-windows-x64.zip)
- [maturita-linux-x86_64.AppImage](https://github.com/pepaskopec-blip/Graduately/raw/builds/maturita-linux-x86_64.AppImage)
- [maturita-android.apk](https://github.com/pepaskopec-blip/Graduately/raw/refs/heads/builds/maturita-android.apk)
- [maturita-ios.ipa](https://github.com/pepaskopec-blip/Graduately/raw/refs/heads/builds/maturita-ios.ipa)
Progress and settings live in `progress/` next to the `.app` / folder /
AppImage. On Android, iOS and macOS they stay in app storage (same stats, themes, language).
@ -292,8 +292,8 @@ sudo pacman -S base-devel pkgconf gtk4
```
```bash
git clone https://github.com/pepaskopec-blip/maturita.c.git
cd maturita.c
git clone https://github.com/pepaskopec-blip/Graduately.git
cd Graduately
```
On a Mac:
@ -338,7 +338,7 @@ C:\msys64\ucrt64.exe pacman -S --noconfirm mingw-w64-ucrt-x86_64-gcc mingw-w64-u
In an **MSYS2 UCRT64** terminal:
```bash
cd /c/Users/<name>/maturita.c # C:\Users\<name>\maturita.c in MSYS2
cd /c/Users/<name>/Graduately # C:\Users\<name>\Graduately in MSYS2
make
./maturita.exe
make bundle # dist/maturita.exe can be double-clicked

View file

@ -21,7 +21,7 @@ android {
versionCode = appVersionCode
versionName = "android-$appVersionCode"
buildConfigField("String", "COMMIT", "\"$commit\"")
buildConfigField("String", "UPDATE_REPO", "\"pepaskopec-blip/maturita.c\"")
buildConfigField("String", "UPDATE_REPO", "\"pepaskopec-blip/Graduately\"")
buildConfigField("String", "UPDATE_BRANCH", "\"builds\"")
}

View file

@ -7,20 +7,22 @@
# en: bullet
--- 2026-09-23
cs: Repozitář se jmenuje Graduately (GitHub i Forgejo); instalátory a updater míří tam
cs: Aplikace se jmenuje Graduately; úvod stále říká „Maturita? To dáme.“
cs: Kompletní maturitní četba (82 knih) se zápisky, kvízem a sestavením děje
cs: Studium knih: nejdřív procvičení (kvíz / sestavte děj), pak zápisky
cs: Kvíz a sestavení děje u všech knih i na GTK (Linux / Windows)
cs: Větší a čitelnější rozhraní na Macu
cs: Opravy výběru slov v dialogu a otevření knihy z vyhledávání
cs: Oprava zrcadlení na Forgejo (nová cesta edu/, force-push zrcadla)
cs: Oprava zrcadlení na Forgejo (edu/Graduately, plná historie, force-push)
en: Repository renamed to Graduately (GitHub and Forgejo); installers and updater follow
en: The app is now Graduately; the welcome line still says “Maturita? We've got this.”
en: Full maturita reading list (82 books) with notes, quiz, and plot ordering
en: Book study flow: practice first (quiz / order the plot), then notes
en: Quiz and plot assembly for every book on GTK too (Linux / Windows)
en: Larger, more readable Mac interface
en: Fixes for dialogue word picking and opening a book from search
en: Forgejo mirror fix (edu/ path, force-push mirror)
en: Forgejo mirror fix (edu/Graduately, full history, force-push)
--- 2026-09-18
cs: Po aktualizaci se na hlavní stránce ukáže, co je nového

View file

@ -31,18 +31,18 @@
<p>Klepni na tlačítko. Až se APK stáhne, otevři ho a povol instalaci z neznámých zdrojů.</p>
<p>
<a class="btn" id="dl"
href="https://raw.githubusercontent.com/pepaskopec-blip/maturita.c/refs/heads/builds/maturita-android.apk">
href="https://raw.githubusercontent.com/pepaskopec-blip/Graduately/refs/heads/builds/maturita-android.apk">
Stáhnout APK
</a>
</p>
<p>
Když odkaz hlásí 404, otevři
<a href="https://github.com/pepaskopec-blip/maturita.c/tree/builds">větev builds</a>
<a href="https://github.com/pepaskopec-blip/Graduately/tree/builds">větev builds</a>
a stáhni <code>maturita-android.apk</code> odtud.
</p>
<script>
(function () {
var repo = "pepaskopec-blip/maturita.c";
var repo = "pepaskopec-blip/Graduately";
fetch("https://api.github.com/repos/" + repo + "/commits/builds")
.then(function (r) { return r.json(); })
.then(function (d) {

View file

@ -10,7 +10,7 @@
set -eu
REPO="pepaskopec-blip/maturita.c"
REPO="pepaskopec-blip/Graduately"
BRANCH="builds"
ASSET="maturita-linux-x86_64.AppImage"

View file

@ -9,7 +9,7 @@
set -eu
REPO="pepaskopec-blip/maturita.c"
REPO="pepaskopec-blip/Graduately"
BRANCH="builds"
ASSET="maturita-macos-arm64.zip"

View file

@ -8,7 +8,7 @@ rem
rem Double-click the file to run it. The app updates itself from then on.
setlocal EnableDelayedExpansion
set "REPO=pepaskopec-blip/maturita.c"
set "REPO=pepaskopec-blip/Graduately"
set "BRANCH=builds"
set "ASSET=maturita-windows-x64.zip"
set "DEST=%LOCALAPPDATA%\Programs\Graduately"

View file

@ -35,7 +35,7 @@
s Xcode a vlastní iPhone (bezplatný Apple účet stačí na 7 dní).
</p>
<ol>
<li>Naklonuj <a href="https://github.com/pepaskopec-blip/maturita.c">maturita.c</a></li>
<li>Naklonuj <a href="https://github.com/pepaskopec-blip/Graduately">maturita.c</a></li>
<li>Otevři <code>Maturita.xcworkspace</code> v kořeni repozitáře</li>
<li>V Signing vyber svůj Team</li>
<li>Připoj iPhone a stiskni Run</li>
@ -46,18 +46,18 @@
</p>
<p>
<a class="btn" id="dl"
href="https://raw.githubusercontent.com/pepaskopec-blip/maturita.c/refs/heads/builds/maturita-ios.ipa">
href="https://raw.githubusercontent.com/pepaskopec-blip/Graduately/refs/heads/builds/maturita-ios.ipa">
Stáhnout IPA
</a>
</p>
<p>
Když odkaz hlásí 404, otevři
<a href="https://github.com/pepaskopec-blip/maturita.c/tree/builds">větev builds</a>
<a href="https://github.com/pepaskopec-blip/Graduately/tree/builds">větev builds</a>
a stáhni <code>maturita-ios.ipa</code> odtud.
</p>
<script>
(function () {
var repo = "pepaskopec-blip/maturita.c";
var repo = "pepaskopec-blip/Graduately";
fetch("https://api.github.com/repos/" + repo + "/commits/builds")
.then(function (r) { return r.json(); })
.then(function (d) {

View file

@ -13,7 +13,7 @@ enum AppConfig {
static var updateRepo: String {
(Bundle.main.object(forInfoDictionaryKey: "UPDATE_REPO") as? String)
?? "pepaskopec-blip/maturita.c"
?? "pepaskopec-blip/Graduately"
}
static var updateBranch: String {

View file

@ -9,6 +9,6 @@
<key>UPDATE_BRANCH</key>
<string>builds</string>
<key>UPDATE_REPO</key>
<string>pepaskopec-blip/maturita.c</string>
<string>pepaskopec-blip/Graduately</string>
</dict>
</plist>

View file

@ -99,7 +99,7 @@ final class Updater {
private func get(_ url: String) throws -> String {
guard let u = URL(string: url) else { throw URLError(.badURL) }
var req = URLRequest(url: u, timeoutInterval: 15)
req.setValue("maturita.c-ios", forHTTPHeaderField: "User-Agent")
req.setValue("Graduately-ios", forHTTPHeaderField: "User-Agent")
req.setValue("*/*", forHTTPHeaderField: "Accept")
let sem = DispatchSemaphore(value: 0)
var result: Result<String, Error> = .failure(URLError(.unknown))

View file

@ -7,6 +7,6 @@
<key>UPDATE_BRANCH</key>
<string>builds</string>
<key>UPDATE_REPO</key>
<string>pepaskopec-blip/maturita.c</string>
<string>pepaskopec-blip/Graduately</string>
</dict>
</plist>

View file

@ -175,7 +175,7 @@ final class Updater {
private func get(_ url: String) throws -> String {
guard let u = URL(string: url) else { throw URLError(.badURL) }
var req = URLRequest(url: u, timeoutInterval: 15)
req.setValue("maturita.c-macos", forHTTPHeaderField: "User-Agent")
req.setValue("Graduately-macos", forHTTPHeaderField: "User-Agent")
req.setValue("*/*", forHTTPHeaderField: "Accept")
let sem = DispatchSemaphore(value: 0)
var result: Result<String, Error> = .failure(URLError(.unknown))

View file

@ -5,7 +5,7 @@ set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
REPO="${REPO:-pepaskopec-blip/maturita.c}"
REPO="${REPO:-pepaskopec-blip/Graduately}"
fail=0
say() { printf '==> %s\n' "$*"; }

View file

@ -29,7 +29,7 @@
#ifndef APP_COMMIT
#define APP_COMMIT "dev"
#endif
#define UPDATE_REPO "pepaskopec-blip/maturita.c"
#define UPDATE_REPO "pepaskopec-blip/Graduately"
/* Packages live on their own branch rather than in releases, so the update
* always matches whatever is on main. */
#define UPDATE_BRANCH "builds"