1
0
Fork 0

Add scritti_ro.sh and reformat readme.

main
alberto 5 days ago
parent 27b8e7cdf1
commit 66b1485213

@ -2,128 +2,189 @@
Questa repository contiene i seguenti script:
- `steam-install` — [@BachoSeven](https://git.phc.dm.unipi.it/BachoSeven)
- `steam-install` — [@BachoSeven](https://git.phc.dm.unipi.it/BachoSeven)
Serve ad installare `steam` (o con poche modifiche qualsiasi AppImage) in aula 3/4, pur non avendo FUSE installato.
Per utilizzarlo, basta eseguire il seguente comando da terminale:
Serve ad installare `steam` (o con poche modifiche qualsiasi AppImage) in aula
3/4, pur non avendo FUSE installato. Per utilizzarlo, basta eseguire il
seguente comando da terminale:
```bash
curl -L "https://git.phc.dm.unipi.it/phc/dm-scripts/raw/branch/main/steam-install" | bash
```
```bash
curl -L "https://git.phc.dm.unipi.it/phc/dm-scripts/raw/branch/main/steam-install" | bash
```
- `install-llm-web-interface` — [@aziis98](https://git.phc.dm.unipi.it/aziis98)
- `install-llm-web-interface` —
[@aziis98](https://git.phc.dm.unipi.it/aziis98)
Serve a scaricare una [web-ui per usare LLM](https://github.com/oobabooga/text-generation-webui/) in locale in Aula 3/4. Per utilizzarlo, basta eseguire il seguente comando da terminale
Serve a scaricare una
[web-ui per usare LLM](https://github.com/oobabooga/text-generation-webui/) in
locale in Aula 3/4. Per utilizzarlo, basta eseguire il seguente comando da
terminale
```bash shell
$ curl -LO "https://git.phc.dm.unipi.it/phc/dm-scripts/raw/branch/main/install-llm-web-interface"
$ chmod +x install-llm-web-interface
```bash shell
$ curl -LO "https://git.phc.dm.unipi.it/phc/dm-scripts/raw/branch/main/install-llm-web-interface"
$ chmod +x install-llm-web-interface
# La prima volta che lo si esegue, bisogna installare i pacchetti necessari
$ ./install-llm-web-interface
# La prima volta che lo si esegue, bisogna installare i pacchetti necessari
$ ./install-llm-web-interface
# Le volte successive, si può eseguire questo per impostare una porta specifica
$ ./install-llm-web-interface --listen-port 8080
```
# Le volte successive, si può eseguire questo per impostare una porta specifica
$ ./install-llm-web-interface --listen-port 8080
```
Nel frattempo, è possibile usare LLM in locale aprendo il browser all'indirizzo `http://localhost:8080` oppure se si sta usando ssh aprendo un tunnel con
Nel frattempo, è possibile usare LLM in locale aprendo il browser
all'indirizzo `http://localhost:8080` oppure se si sta usando ssh aprendo un
tunnel con
```bash shell
$ ssh -L 8080:localhost:8080 <username>@a3-dott8.cs.dm.unipi.it
```
```bash shell
$ ssh -L 8080:localhost:8080 <username>@a3-dott8.cs.dm.unipi.it
```
e poi aprendo il browser all'indirizzo `http://localhost:8080`.
e poi aprendo il browser all'indirizzo `http://localhost:8080`.
Una volta nell'interfaccia web si può scaricare un modello di LLM (ad esempio <https://huggingface.co/TheBloke/Orca-2-7B-GGUF>) andando nella tab "Models" ed inserendo l'ID da huggingface (e.g. `TheBloke/Orca-2-7B-GGUF` ed il nome del singolo file `orca-2-7b.Q5_K_M.gguf`), poi premere "Refresh" e poi "Load" nella lista dei modelli per selezionarlo (conviene tenere sotto'occhio il terminare per vedere quando ha finito di scaricare il modello). Una volta caricato il modello, si può andare in "Chat" per usarlo.
Una volta nell'interfaccia web si può scaricare un modello di LLM (ad esempio
<https://huggingface.co/TheBloke/Orca-2-7B-GGUF>) andando nella tab "Models"
ed inserendo l'ID da huggingface (e.g. `TheBloke/Orca-2-7B-GGUF` ed il nome
del singolo file `orca-2-7b.Q5_K_M.gguf`), poi premere "Refresh" e poi "Load"
nella lista dei modelli per selezionarlo (conviene tenere sotto'occhio il
terminare per vedere quando ha finito di scaricare il modello). Una volta
caricato il modello, si può andare in "Chat" per usarlo.
- `printa4` &mdash; [@BachoSeven](https://git.phc.dm.unipi.it/BachoSeven)
- `printa4` &mdash; [@BachoSeven](https://git.phc.dm.unipi.it/BachoSeven)
Serve a stampare in aula4 (o qualsiasi altra stampante del dip) dal proprio computer, aprendo Okular graficamente da remoto.
Serve a stampare in aula4 (o qualsiasi altra stampante del dip) dal proprio
computer, aprendo Okular graficamente da remoto.
- `impagina` &mdash; [@BachoSeven](https://git.phc.dm.unipi.it/BachoSeven)
- `impagina` &mdash; [@BachoSeven](https://git.phc.dm.unipi.it/BachoSeven)
Impagina un pdf in modo da poi poterlo stampare "a libretto", usando l'opzione fronte-retro (lato corto), per poi tagliare e sovrapporre una metà sull'altra.
Impagina un pdf in modo da poi poterlo stampare "a libretto", usando l'opzione
fronte-retro (lato corto), per poi tagliare e sovrapporre una metà sull'altra.
Dipendenze: `pdftk`, `pdfjam` (parte di TeXlive), `groff` (non solo `groff-base`)
Dipendenze: `pdftk`, `pdfjam` (parte di TeXlive), `groff` (non solo
`groff-base`)
- `bookletify` &mdash; [@Fran314](https://git.phc.dm.unipi.it/Fran314)
- `bookletify` &mdash; [@Fran314](https://git.phc.dm.unipi.it/Fran314)
Simile a `impagina`, ma in python. Formatta un pdf in modo da poi poterlo stampare "a libretto" tagliando chiudendolo come un libro.
Simile a `impagina`, ma in python. Formatta un pdf in modo da poi poterlo
stampare "a libretto" tagliando chiudendolo come un libro.
Supporta:
- trim
- diversi tipi di paper size (A4 di default, per poter mandare in stampa senza dover mettere "fit-to-page")
- aggiunta di un bordo interno (a sinistra per le pagine dispari, a destra per le pagine pari) per la rilegatura
- pipe da stdin / a stdout
Supporta:
- trim
- diversi tipi di paper size (A4 di default, per poter mandare in stampa senza
dover mettere "fit-to-page")
- aggiunta di un bordo interno (a sinistra per le pagine dispari, a destra per
le pagine pari) per la rilegatura
- pipe da stdin / a stdout
Dipendenze: `PyPDF2`
Dipendenze: `PyPDF2`
- `pokepixel` &mdash; [@Fran314](https://git.phc.dm.unipi.it/Fran314)
- `pokepixel` &mdash; [@Fran314](https://git.phc.dm.unipi.it/Fran314)
Permette di "disegnare" a terminale degli sprite di pokemon presi da [questa repo](https://github.com/msikma/pokesprite/)
Permette di "disegnare" a terminale degli sprite di pokemon presi da
[questa repo](https://github.com/msikma/pokesprite/)
Ad esempio `pokepixel latias.png` cerca un file di nome `latias.png` nella cartella corrente. Se lo trova renderizza quello, altrimenti lo cerca nella repo linkata. Per ora funziona solo con i pokemon fino alla 7a gen non shiny
Ad esempio `pokepixel latias.png` cerca un file di nome `latias.png` nella
cartella corrente. Se lo trova renderizza quello, altrimenti lo cerca nella
repo linkata. Per ora funziona solo con i pokemon fino alla 7a gen non shiny
- `gobbino` &mdash; [@BachoSeven](https://git.phc.dm.unipi.it/BachoSeven) + [@Dilillo](http://poisson.phc.dm.unipi.it/~dilillo/Vario/index.html)
- `gobbino` &mdash; [@BachoSeven](https://git.phc.dm.unipi.it/BachoSeven) +
[@Dilillo](http://poisson.phc.dm.unipi.it/~dilillo/Vario/index.html)
Permette di scaricare video e/o pdf di qualsiasi corso presente sul sito del professor Gobbino
Permette di scaricare video e/o pdf di qualsiasi corso presente sul sito del
professor Gobbino
- `pdfcompress` &mdash; [@aziis98](https://git.phc.dm.unipi.it/aziis98) (script preso in prestito [da questa repo](https://git.phc.dm.unipi.it/aziis98/chatgpt-scripts/src/branch/main/bin/pdfcompress2))
- `pdfcompress` &mdash; [@aziis98](https://git.phc.dm.unipi.it/aziis98) (script
preso in prestito
[da questa repo](https://git.phc.dm.unipi.it/aziis98/chatgpt-scripts/src/branch/main/bin/pdfcompress2))
Comprime un PDF vettorizzato (ad esempio note scritte su un iPad) utilizzando poppler (file di ~100MB diventa tranquillamente di ~10MB)
Comprime un PDF vettorizzato (ad esempio note scritte su un iPad) utilizzando
poppler (file di ~100MB diventa tranquillamente di ~10MB)
- `pptx_to_pdf` &mdash; [@lukefleed](https://git.phc.dm.unipi.it/lukefleed)
- `pptx_to_pdf` &mdash; [@lukefleed](https://git.phc.dm.unipi.it/lukefleed)
Permette di convertire tutti i file .pptx dentro una cartella in file .pdf. Per utilizzarlo, basta eseguire lo script da terminale nella cartella dove sono presenti i file `.pptx`
Permette di convertire tutti i file .pptx dentro una cartella in file .pdf.
Per utilizzarlo, basta eseguire lo script da terminale nella cartella dove
sono presenti i file `.pptx`
I nuovi file `.pdf `verranno salvati nella cartella `pdf` (che verrà creata automaticamente se non esiste già). Per poter eseguire lo script, è necessario avere installati i seguenti pacchetti (ubuntu):
I nuovi file `.pdf`verranno salvati nella cartella `pdf` (che verrà creata
automaticamente se non esiste già). Per poter eseguire lo script, è necessario
avere installati i seguenti pacchetti (ubuntu):
```bash
sudo apt install libreoffice default-jre libreoffice-java-common
```
```bash
sudo apt install libreoffice default-jre libreoffice-java-common
```
- `removeproofs` &mdash; [@lukefleed](https://git.phc.dm.unipi.it/lukefleed)
- `removeproofs` &mdash; [@lukefleed](https://git.phc.dm.unipi.it/lukefleed)
Rimuove le dimostrazioni da un file `.tex`, utile per creare piccoli cheat sheet da portare agli esami dove è consentito portare materiale di studio.
Rimuove le dimostrazioni da un file `.tex`, utile per creare piccoli cheat
sheet da portare agli esami dove è consentito portare materiale di studio.
Utilizzo:
Utilizzo:
```bash
removeproofs <file.tex>
```
```bash
removeproofs <file.tex>
```
Questo script è stato utilizzato per creare dei riassunti di Geometria 2 da delle dispense più complete: [G2-cheat-sheet](https://github.com/lukefleed/G2-cheat-sheet)
Questo script è stato utilizzato per creare dei riassunti di Geometria 2 da
delle dispense più complete:
[G2-cheat-sheet](https://github.com/lukefleed/G2-cheat-sheet)
- `tex_to_md` &mdash; [@lukefleed](https://git.phc.dm.unipi.it/lukefleed)
- `tex_to_md` &mdash; [@lukefleed](https://git.phc.dm.unipi.it/lukefleed)
Script che prende in input un file `.tex` da in output un file `.md` contenente un elenco puntato di tutte le definizioni, teoremi e proposizioni presenti nel file `.tex`. Utile per creare un riassunto degli argomenti di un corso da utilizzare per preparare l'orale.
Script che prende in input un file `.tex` da in output un file `.md`
contenente un elenco puntato di tutte le definizioni, teoremi e proposizioni
presenti nel file `.tex`. Utile per creare un riassunto degli argomenti di un
corso da utilizzare per preparare l'orale.
Utilizzo:
Utilizzo:
```bash
tex_to_md <input.tex> <output.md>
```
```bash
tex_to_md <input.tex> <output.md>
```
Qui un esempio di utilizzo: [Argomenti di G2](https://git.phc.dm.unipi.it/lukefleed/domande-orali/src/branch/master/geoemtria-2)
Qui un esempio di utilizzo:
[Argomenti di G2](https://git.phc.dm.unipi.it/lukefleed/domande-orali/src/branch/master/geoemtria-2)
- `parseunimap` &mdash; [@aziis98](https://git.phc.dm.unipi.it/aziis98) + [@alberto](https://git.phc.dm.unipi.it/alberto)
- `parseunimap` &mdash; [@aziis98](https://git.phc.dm.unipi.it/aziis98) +
[@alberto](https://git.phc.dm.unipi.it/alberto)
Script che converte il registro delle lezioni dell'Unipi in markdown
Script che converte il registro delle lezioni dell'Unipi in markdown
Installare:
```bash
bun init
bun install jsdom
bun install node-fetch
```
Installare:
```bash
bun init
bun install jsdom
bun install node-fetch
```
Per eseguire:
```bash
bun run script.js <registro_link>
```
Una volta ottenuto in output il file markdown, è possibile convertirlo in pdf utilizzando ad
esempio Pandoc tramite il comando
Per eseguire:
```bash
bun run script.js <registro_link>
```
Una volta ottenuto in output il file markdown, è possibile convertirlo in pdf
utilizzando ad esempio Pandoc tramite il comando
```bash
pandoc fileregistro.md -o fileregistro.pdf
```
```bash
pandoc fileregistro.md -o fileregistro.pdf
```
- `scritti_ro.sh` [@alberto](https://git.phc.dm.unipi.it/alberto)
Scarica tutti i PDF di **Testi** (o **Svolgimenti**) dalla
[pagina DidaWiki del corso](https://didawiki.cli.di.unipi.it/doku.php/matematica/ro/start)
e li unisce in un unico PDF.
Utilizzo:
```bash
# unisce tutti i PDF dei Testi
./scritti_ro.sh
# unisce tutti i PDF degli Svolgimenti
./scritti_ro.sh --with-solutions
```
Output: `testi_unificati.pdf` o `soluzioni_unificati.pdf`.
Dipendenze:
- `curl`, `grep`, `gs` (ghostscript)

@ -0,0 +1,34 @@
#!/usr/bin/env bash
set -euo pipefail
URL="https://didawiki.cli.di.unipi.it/doku.php/matematica/ro/start"
BASE="https://didawiki.cli.di.unipi.it"
TMPDIR=$(mktemp -d)
cleanup() { rm -rf "$TMPDIR"; }
trap cleanup EXIT
if [[ "${1:-}" == "--with-solutions" ]]; then
PREFIX="sc"
OUTFILE="soluzioni_ro_merge.pdf"
echo "Fetching Svolgimenti PDFs..."
else
PREFIX="c"
OUTFILE="testi_ro_merge.pdf"
echo "Fetching Testi PDFs..."
fi
curl -s "$URL" \
| grep -oP "/lib/exe/fetch\.php/matematica/ro/${PREFIX}\d{6}\.pdf" \
| sort -u \
| while read -r path; do
filename=$(basename "$path")
echo " Downloading $filename"
curl -s -o "$TMPDIR/$filename" "${BASE}${path}"
done
echo ""
echo "Merging PDFs into $OUTFILE..."
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$OUTFILE" "$TMPDIR"/*.pdf
echo "Done → $OUTFILE ($(wc -c < "$OUTFILE") bytes)"
Loading…
Cancel
Save