piFlickr là ứng dụng chạy trên RPi, giúp upload ảnh lên flickr.com, mỗi thư mục ảnh được đặt trong một album có title là tên thư mục.
Cải tiến trong piFlickr version 2.0:
- Mã nguồn được viết lại theo OOP, đơn giản hơn và nhanh hơn
- Bảo vệ access token không bị quá hạn
- Tránh các thư mục con trùng tên tạo album trùng title
- Tránh các threat chạy song song tạo các album trùng title
- Nhiều tiện ích hơn, như sắp xếp các album theo thời gian chụp…
Sử dụng:
Trước khi sử dụng cần biên tập lại file user.py, bao gồm các thông số:
API_KEY = "(1)" API_SECRET = "(2)" PHOTO_DIR = "(3)"
Để có (1) và (2) vào https://www.flickr.com/services/apps/create/apply để đăng ký sử dụng ứng dụng có dùng flickr api.
Sau đó biên tập file user.py, điền các giá trị API_KEY và API_SECRET. Phần đầu file user.py có dạng như sau:
class user:
API_KEY = "0afc1d0696b4efb2b0e8960123456789"
API_SECRET = "dafd3920123456789
PHOTO_DIR = '(3)'
(3) là tên thư mục ngoài cùng chứa các thư mục con và ảnh cần upload
Chạy piStart.py để bắt đầu upload photo lên flickr.com. Nếu chưa kết nối với flickr.com, người dùng sẽ được yêu cầu mở trình duyệt với url được cho sẳn để lấy mã chứng thực.
Ứng dụng sẽ chạy ngầm không cần laptop/desktop đã gọi chạy nó. Cứ để RPi chạy qua đêm nếu số lượng photo vài chục ngàn…
Kiểm tra xem piStart.py có đang chạy hay không?
piStart có thể gặp lỗi và ngưng chạy.
- Trước hết đọc file nohup.out để biết quá trình làm việc của piStart.py cũng như các thông báo lỗi. Vì piStart.py gọi lstUpload.sh nên cũng có thể kiểm tra như sau:
- Hoặc gõ pstree để xem lstUpload.sh có trong cây các tiến trình hay không
- Hoặc gõ pidof -x lstUpload.sh, nếu có các id được in ra thì lstUpload.sh đang chạy
Các file thành phần
- piClass.py: thư viện chính của piFlickr gồm class piFlickr và class piTools
- piStart.py: file khởi tạo và upload photo lên flickr.com
- lstUpload: upload photo trong các thư mục có trong danh sách pi.lst
- watch.sh: quan sát các thay đổi trên PHOTO_DIR để cập nhật tương ứng trên flickr
- piList.sh, user.py: các file thành phần
- pi.lst, pi.dne, pi.err: các danh sách do piStart.py tạo ra (upload, làm xong và lỗi)
Các tiện ích:
- mergeSets.py: ghép các album có cùng title
- orderSets.py: sắp xếp các album theo thứ tự taken_date của primary_photo mới hơn (rất chậm, mất 10 phút để sắp xếp 1000 album)
- notInSet.py: Xóa các photo không nằm trong bất cứ album nào (tối đa 100 photo/lần)
Chú thích
piFlickr chạy với python3 và flickrapi
Một công cụ giúp cài đặt flickrapi và những gói python khác dễ dàng là pip
Cài đặt pip bằng công cụ get-pip.py tại trang https://bootstrap.pypa.io/
Câu lệnh cài đặt flickrapi
pip install flickrapi
Tải về
piFlickr_v2.zip