Go로 작성된 Legimi 전자책의 간단한 대체 다운로더입니다.
기본적으로 Lua에서 이전 다운로더를 다시 작성했습니다.
그것은 완전히 비공식적이며, 저는 레기미와 어떤 식으로든 관련이 없습니다.
메모
이 작업은 아직 진행 중이지만 이미 사용할 수 있습니다.
배경에서 어떻게 발생했는지에 대한 자세한 정보를 찾을 수 있습니다.
릴리스 섹션에서 아카이브를 다운로드하고 압축을 풀고 실행 가능하게 만듭니다(필요한 경우): $ chmod +x legimi-go
. 물론 어디서나 실행할 수 있도록 PATH
변수에 설치 디렉터리를 추가할 수 있습니다.
또는 Go가 설치되어 있는 경우 go install
명령을 사용하여 설치할 수 있습니다.
$ go install github.com/tp86/legimi-go@ < version >
릴리스의 특정 버전 태그이거나 main
분기에서 코드를 가져오는 latest
일 수 있습니다. main
분기에는 완료되지 않은 기능이 포함될 수 있습니다. 그래도 나는 작동하는 코드만 커밋하기 위해 최선을 다하고 있습니다.
사용량을 보려면 다음을 호출하십시오.
$ legimi-go --help
모든 명령줄 스위치는 선택 사항입니다.
--config path
구성 파일의 경로입니다. 기본값은 "$HOME/.config/legimi-go/config.ini"
입니다. 구성 파일에는 Legimi 서비스에서 할당한 자격 증명과 Kindle ID가 포함되어 있습니다. 첫 번째 명령 실행 시 자동으로 생성되므로(누락된 디렉터리 포함) 일반적으로 직접 수정할 필요가 없습니다. 로그인과 비밀번호를 파일에 저장하지 않으려면 명령줄에서 자격 증명을 제공할 수 있습니다( --login
및 --password
스위치 참조).
팁
여러 계정 간에 쉽게 전환할 수 있도록 많은 구성 파일을 만들 수 있습니다.
--login login
Legimi 로그인. 명령줄에서 로그인을 제공하지 않으면 구성 파일에서 읽혀집니다. 구성 파일에도 누락된 경우 명령 실행 중에 이를 제공하라는 메시지가 표시됩니다. 그런 다음 구성 파일에 저장되므로 향후 명령 실행 중에 반복할 필요가 없습니다. 명령줄에서 로그인을 제공하면 구성 파일에 기록되지 않습니다.
--password password
귀하의 레지미 비밀번호입니다. 로그인과 동일한 논리가 적용됩니다. 로그인과 비밀번호는 구성 파일에 일반 텍스트로 저장됩니다.
--debug
디버깅 모드를 활성화합니다. 디버깅 모드에서는 교환된 요청 및 응답에 대해 선택된 정보가 stderr에 인쇄됩니다. 현재 아마도 가장 유용한 정보는 세션 응답에 포함되어 있을 것입니다.
메모
대시 1개( -config
) 또는 대시 2개( --config
)를 사용하여 스위치를 지정할 수 있습니다.
사용 가능한 명령은 다음과 같습니다.
list
현재 Legimi 서가에 있는 책을 나열합니다.
download
해당 ID에 따라 책을 다운로드합니다. 도서 ID는 도서를 나열하여 얻을 수 있습니다(도서 항목 라인의 첫 번째 값).
version
Legimi-go 버전을 인쇄하세요.
명령 제공은 필수이며 기본 명령은 없습니다.
첫 번째 명령 호출 시 자격 증명(명령줄 스위치를 통해 제공되지 않은 경우 위 참조) 및 Kindle 일련 번호(Kindle의 설정 -> 장치 옵션 -> 장치 정보)를 제공하라는 메시지가 표시됩니다. Legimi Kindle ID는 자동으로 쿼리되어 나중에 사용할 수 있도록 구성 파일에 저장됩니다.
서가에 있는 책을 나열하세요.
$ legimi-go list
처음으로 스크립트를 실행하거나 아직 자격 증명이 없는 구성 파일을 전달하는 경우 로그인 및 비밀번호를 묻는 메시지가 표시됩니다.
선택한 도서 다운로드
$ legimi-go download < book-id >
다운로드한 책은 현재 작업 디렉터리의
파일에 저장됩니다.
팁
파일 복사를 피하기 위해 다운로드하기 전에 마운트된 Kindle의 documents
디렉토리로 cd
이동할 수 있습니다.
Kindle의 documents
디렉토리에 파일을 복사하세요.
documents
디렉토리에 있는 동안 책을 다운로드한 경우 이는 선택 사항입니다.
분명히 공식 Legimi 앱의 기능 중 일부만 지원됩니다.
대부분의 오류 응답은 아직 인식/처리되지 않습니다. 이는 앞으로 개선되어야 합니다.
Legimi 서비스에 알려지지 않은 계정을 생성하거나 장치를 등록하기 위한 스크립트가 아닙니다. 이를 위해서는 공식 앱을 사용해야 합니다. 장치 등록은 작동하지만 문제가 발생할 수 있습니다.
구독 기간 동안 남은 도서 다운로드 수를 알고 싶다면 -debug
스위치를 사용하고 Session response
섹션에서 downloads left
정보를 찾아보세요. 제한한 것보다 더 많은 책을 다운로드하려고 하면 Legimi 서비스가 다운로드를 차단합니다.
예상대로 작동하지 않는 경우 -debug
스위치를 사용하여 자세한 정보를 얻으십시오.
공식 레지미 앱도 참고사항이므로 꼭 확인해보세요. 공식 앱을 사용하면 잠재적으로 문제를 해결할 수도 있습니다(#3(댓글)).
공식 Legimi 앱은 Linux를 지원하지 않습니다. 저는 OS를 전환할 필요 없이(또는 Windows를 설치하지 않고도) Linux에서 전자책을 다운로드할 수 있기를 원했습니다.
다운로더의 첫 번째 버전은 Lua에서 만들어졌습니다. 잘 작동했지만 때때로 설치가 어려웠습니다(종속성이 다른 경로에 설치됨). 또한 유지 관리가 어렵고 Legimi 프로토콜 업데이트에 문제가 발생합니다. 그래서 저는 Go로 스크립트를 다시 작성하기로 결정했습니다. 설치, 사용 및 유지 관리가 더 쉬워지기를 바랍니다.
레지미 공식 애플리케이션과 서비스 간에 주고받는 트래픽을 기반으로 도서 다운로드 로직을 추출했습니다. 따라서 확실히 누락된 부분과 기능이 있습니다. 또한 대부분의 오류 응답은 지원되지 않습니다. 더 많은 누락된 기능에 대해서는 제한 사항을 참조하세요.