various bambu, bangle, and arch additions

This commit is contained in:
2024-09-05 11:32:45 -04:00
parent bf326f97da
commit e246a23f45
8 changed files with 212 additions and 1 deletions

View File

@@ -0,0 +1,111 @@
# iOS
## Photos Export
<https://github.com/icloud-photos-downloader/icloud_photos_downloader>
```bash
podman run -it --rm --name icloudpd \
-v $(pwd)/iPhotos:/data \
-e TZ=America/New_York \
icloudpd/icloudpd:latest \
icloudpd \
--directory /data \
--username apple@ducoterra.net \
--watch-with-interval 3600
```
You can browse all downloaded photos with `feh`:
```bash
pacman -S feh
feh --recursive --scale-down -d -S filename $(pwd)/iPhotos
```
## Extensions
- PNG
- HEIC: iOS HDR photo
- MOV
- DNG: iOS raw photo
- JPG
- 3gp: quicktime video file
- MP4
- GIF
- WEBP: Google photo container
- CR2: Canon raw photo
## Conversion
You will need `imagemagick` and `libraw`:
```bash
pacman -S imagemagick libraw
```
Then you can convert any image with magick:
```bash
magick input.HEIC output.png
magick input.HEIC output.jpeg
```
You get a list of all unique file extensions with:
```bash
find . -type f | awk -F. '!a[$NF]++{print $NF}'
```
Then use those file extensions to create a find command:
```bash
# -o means "or" in this case
# Parentheses are required
find . -type f -printf '%p\n' \( \
-iname '*.jpg' \
-o -iname '*.heic' \
-o -iname '*.dng' \
-o -iname '*.png' \
-o -iname '*.WEBP' \
-o -iname '*.cr2' \
\)
```
And then use xargs with magick to convert the images:
```bash
find . -type f \( \
-iname '*.jpg' \
-o -iname '*.heic' \
-o -iname '*.dng' \
-o -iname '*.png' \
-o -iname '*.WEBP' \
-o -iname '*.cr2' \
\) -print0 | xargs -0 -P $(nproc) -I % python -c "\
import subprocess; \
from pathlib import Path; \
to_folder = '/run/media/ducoterra/photos/'; \
p = Path(\"%\"); \
realpath = (str(p.parent) + '/' if str(p.parent) != '.' else '') + p.stem + '.jpg'; \
subprocess.run(['mkdir', '-p', to_folder + str(Path(realpath).parent)]); \
subprocess.run(['magick', \"%\", to_folder + realpath])"
```
And then videos:
```bash
find . -type f \( \
-iname '*.MOV' \
-o -iname '*.3gp' \
-o -iname '*.MP4' \
-o -iname '*.GIF' \
\) -print0 | xargs -0 -I % python -c "\
import subprocess; \
from pathlib import Path; \
to_folder = '/run/media/ducoterra/photos/'; \
p = Path(\"%\"); \
realpath = (str(p.parent) + '/' if str(p.parent) != '.' else '') + p.stem + '.mp4'; \
subprocess.run(['mkdir', '-p', to_folder + str(Path(realpath).parent)]); \
subprocess.run(['ffmpeg', '-i', '%', '-c', 'copy', to_folder + realpath])"
```