Skip to content

v0.1.4

Latest

Choose a tag to compare

@eunjaylee eunjaylee released this 19 Oct 01:37
· 1 commit to main since this release
  • 보안: tidoly 터널의 https 로 들어온 요청이 Host 헤더를 집 안 주소로 바꾸면 "집 안에서 온 요청" 으로 판정되어, 밖에서 이 서버의 비밀번호 로그인 · 첫 계정 만들기 · 폴더 훑기 · VPN 설정이 열리던 것을 고쳤습니다. 이제 https 로 온 요청은 Host 와 상관없이 언제나 밖에서 온 것으로 봅니다.

새로 생긴 것

  • 진척률 — 기존 사진 폴더를 훑을 때 파일 수를 먼저 세어 "3,913 / 14,298장 (27%)" 처럼 보여 줍니다. 상태 화면의 "뒤에서 하는 일" 에 남은 작업 수와 지금 하는 일, 작업마다 완료 / 전체와 막대가 붙고, 끝날 때까지 저절로 바뀝니다. 정리가 남아 있는 동안에는 관리 화면 맨 위에도 남은 작업 수와 "진행 보기" 가 뜹니다.
  • 리눅스도 관리 화면의 업데이트 단추로 새 버전으로 바뀝니다. 설치 스크립트가 업데이트만 하는 서비스(tidoly-stow-update)를 함께 깔고, 단추를 누르면 그 서비스가 처음 설치와 같은 스크립트를 돌립니다 — sudo 비밀번호를 묻지 않고, 체크섬이 맞지 않으면 바꾸지 않고 실패로 알립니다. 이미 깐 리눅스는 설치 명령을 한 번 더 실행하면 그다음부터 단추로 됩니다.
  • 아이폰 사진(HEIC)도 확대하면 원본 해상도로 바뀝니다. 브라우저가 HEIC 를 그리지 못해 미리보기(긴 변 1440)까지만 선명하던 것을, 처음 확대할 때 원본 크기 JPEG 를 만들어 바꿉니다. 만드는 동안은 미리보기로 확대되고, 한 번 만든 것은 다시 씁니다. 사진을 많이 넣는 중에도 다른 처리보다 먼저 만듭니다. 원본 받기를 막은 공유 링크로는 내보내지 않습니다.
  • 화면 캡처 자동 앨범 — 스크린샷을 "화면 캡처" 앨범에 따로 모읍니다(처음부터 켜짐, 관리 → 자동 앨범에서 끕니다). 이름이 화면 캡처인 그림과, 이름이 평범해도 폰 화면 모양인 PNG(아이폰 캡처)를 모읍니다. 앨범에서 뺀 것은 다시 넣지 않습니다.
  • 리눅스 서버에서 관리자 비밀번호를 잊었을 때 sudo tidoly-stow password 한 줄로 터미널에서 새 비밀번호를 넣습니다. 설정 파일 위치는 서비스 설정에서 찾으므로 몰라도 됩니다. 서버를 끄지 않아도 됩니다. 이 명령은 설치 스크립트를 다시 실행하면 생깁니다.

사진이 많을 때

  • 사진을 많이 넣는 동안 사진 화면이 느려지던 것을 고쳤습니다. HEIC · 동영상의 작은 그림을 만드는 ffmpeg 가 CPU 를 모두 차지하고 있었습니다 — 이제 하나가 CPU 1개만, 낮은 우선순위로 씁니다.
  • 사진이 많은 달(1만 장 넘게)의 사진 화면이 수십 초씩 걸리거나 뜨지 않던 것을 고쳤습니다. 라이브 포토의 짝을 찾는 쿼리가 색인을 쓰지 못해 사진마다 모든 사진을 읽고 있었습니다 — 1만 1천 장의 달이 6초 → 0.04초(같은 DB 사본, 같은 장비).
  • 사진이 많은 서버를 켤 때마다 1분쯤 디스크와 CPU 가 바쁘고 화면이 느렸던 것을 고쳤습니다. 짝이 없는 짧은 영상마다 라이브 포토의 사진을 찾느라 사진 목록 전체를 읽고 있었습니다(3만 장에서 켤 때마다 13GB) — 이제 색인으로 찾습니다. 작은 그림을 만들 수 없는 GIF · WebP 가 켤 때마다 다시 처리되어 열린 화면에 "바뀐 사진" 소식을 보내던 것도 멈췄습니다.
  • 기존 사진 폴더에 이미 라이브러리에 있는 사진(다른 폴더 · 폰에서 온 것과 같은 사진)이 많으면, 프로그램을 켤 때마다 그 파일들을 처음부터 끝까지 다시 읽어 하드가 몇 분씩 바빴고 그동안 화면이 느렸던 것을 고쳤습니다. 이제 한 번 읽은 중복 파일은 크기와 시각이 그대로면 다시 읽지 않습니다. 원래 사진을 지우면 그다음 훑을 때 이 파일을 대신 넣습니다.
  • 사진을 많이 읽는 동안 같은 하드에 큰 복사가 겹치면 "database is locked" 로 작업이 멈칫하고, 끝난 작업이 "하는 중" 으로 남아 다시 켤 때까지 진척률이 100% 가 되지 않던 것을 고쳤습니다. 끝냄 기록은 될 때까지 다시 시도하고, 쓰기를 기다리는 시간을 10초에서 1분으로 늘렸습니다. 열어 둔 사진 화면도 이제 바뀐 사진의 달만, 몇 초에 한 번까지만 다시 받습니다 — 전에는 정리하는 내내 화면의 모든 달을 1–3초마다 다시 읽었습니다.

고친 것

  • tidoly 터널의 이번 주 새 자리가 다 찼을 때, 관리 화면이 "tidoly 가 이 서버의 열쇠를 받지 않습니다" 라고 잘못 알리던 것을 고쳤습니다. 이제 "대기 N번째 · 다음 자리는 … 에 열립니다 · 차례가 오면 저절로 연결되고 메일로 알려 드립니다" 로 보이고, 순번은 30초마다 다시 확인합니다. 기다리는 동안에도 주소 · 인증서 · tidoly 로그인은 그대로 됩니다.
  • 작은 그림을 만들지 못한 파일(망가진 JPEG, ffmpeg 가 못 여는 HEIC)이 프로그램을 켤 때마다 다시 시도되어, 상태 화면의 실패 수가 켤 때마다 늘던 것을 고쳤습니다. 이제 한 번 포기한 파일은 다시 넣지 않고, 이미 여러 번 쌓인 실패는 파일마다 하나로 줄입니다.
  • 사진 화면에서 저장 위치를 하나만 고른 때처럼 좁힌 화면을 열어 둔 채 다른 위치의 사진을 읽는 동안, 화면이 2초마다 통째로 새로고침되던 것을 고쳤습니다. 이제 새 달이 이 화면에 정말 생겼을 때만 다시 그립니다.
  • 쿠폰 앨범도 다른 앨범처럼 찍은 날짜별로 보입니다. 전에는 유효기간 순서였는데, 그림에서 읽은 유효기간이 정확하지 않아 순서가 어긋났습니다.
  • 기존 사진 폴더를 훑는 동안 관리 화면이 2초마다 통째로 새로고침되어, 폴더를 고르는 창이 닫히고 다른 폴더를 등록할 수 없던 것을 고쳤습니다. 이제 폴더 줄만 다시 받고, 창이 열려 있는 동안에는 기다립니다.
  • GIF · WebP 그림이 이름이나 폴더에 날짜가 있어도(DCIM/201812__, Screenshot_2018…) 파일을 복사한 날에 놓이던 것을 고쳤습니다. 이미 넣은 그림은 다음에 켤 때 다시 읽습니다.
  • 원본 받기를 막은 공유 링크에서, 작은 그림이 아직 만들어지기 전에는 그 자리에 원본 파일이 나가던 것을 고쳤습니다. 이제 작은 그림이 만들어질 때까지 빈 그림을 보냅니다.
  • 공유 링크로 연 화면이 왼쪽에 빈 메뉴 자리를 남겨, 사진 한 장 화면이 반만 검게 보이던 것을 고쳤습니다.
  • 링크를 만든 뒤 뜨는 창에서 "주소 복사" 가 클립보드를 비우던 것과, 닫기(X) 단추가 제목 아래로 내려가던 것을 고쳤습니다.
  • 같은 얼굴을 여러 번 붙인 합성 사진 · 스티커 사진이 인물을 여럿 만들던 것을 고쳤습니다. 한 사진 안에서 아주 닮은 얼굴은 하나만 남깁니다(실제 다른 사람 · 닮은 가족은 그대로 둘). 이미 그렇게 읽힌 사진은 켤 때 다시 봅니다.
  • 찍은 날짜가 없는 사진(스크린샷, 메신저에서 저장한 그림)이 파일을 복사한 날에 놓이던 것을 고쳤습니다. 이제 파일 이름(Screenshot_20231215-…, KakaoTalk_20230501_…)이나, 기존 사진 폴더의 폴더 이름(아이폰을 PC 로 옮긴 DCIM/201805__, 2018-05, 2018/05)의 날짜로 놓습니다. 폴더를 훑을 때부터 이 날짜를 써서, 정보를 다 읽기 전에도 사진이 대략 맞는 달에 놓입니다. 이미 넣은 사진은 다음에 켤 때 다시 읽습니다.