If I've helped you or you've enjoyed something I've made, feel free to show some appreciation, it'll make my day!
Here are a few ways you can do that:
If I've helped you or you've enjoyed something I've made, feel free to show some appreciation, it'll make my day!
Here are a few ways you can do that:
I wrote these because the apps and suggestions I tried before lacked either live photos, or the YYYY/MM
file structure I wanted to organize my photos.
This requires:
cd Downloads && sudo apt-get install libjpeg-dev libtiff-dev libwebp-dev libheif-dev && wget http://www.imagemagick.org/download/ImageMagick.tar.gz && tar -xzvf ImageMagick.tar.gz && cd ImageMagick-* && ./configure --with-heic=yes --with-webp=yes --with-jpg=yes --with-png=yes && make && sudo make install && sudo ldconfig /usr/local/lib
)~/Downloads/
)~/Downloads/iCloud Photos Export
.After having your export:
I hereby claim:
To claim this, I am signing this object:
Verifying my Blockstack ID is secured with the address 1FBJPttYvREtEcw7Vgd9gCZcRteERYuSma https://explorer.blockstack.org/address/1FBJPttYvREtEcw7Vgd9gCZcRteERYuSma |
module.exports = function(context, request, response) { | |
if (request.method !== 'POST') { | |
response.writeHead(400, { 'Content-Type': 'text/html' }); | |
return response.end('Must be POST request'); | |
} | |
if (context.body && context.body.grant_type !== 'refresh_token') { | |
response.writeHead(400, { 'Content-Type': 'text/html' }); | |
return response.end('grant_type must be "refresh_token"'); | |
} |
module.exports = function(context, request, response) { | |
if (request.method !== 'POST') { | |
response.writeHead(400, { 'Content-Type': 'text/html' }); | |
return response.end('Must be POST request'); | |
} | |
if (context.body && context.body.grant_type !== 'authorization_code') { | |
response.writeHead(400, { 'Content-Type': 'text/html' }); | |
return response.end('grant_type must be "authorization_code"'); | |
} |
module.exports = function(context, cb) { | |
cb(null, [ | |
{ | |
"key":"name", | |
"label":"Better Name", | |
"type":"string" | |
}, | |
{ | |
"key":"authorId", | |
"label":"Author", |
module.exports = function(context, cb) { | |
cb(null, [ | |
{ | |
"key":"authorId", | |
"label":"Author", | |
"type":"number", | |
"required": true, | |
"helpText": "This is some help, yo!" | |
} | |
]); |
module.exports = function(context, cb) { | |
cb(null, { | |
"id":"1", | |
"createdAt":1471984289, | |
"name":"name 1", | |
"authorId":63, | |
"directions":"directions 1", | |
"style":"style 1" | |
}); | |
}; |
module.exports = function(context, cb) { | |
if (!context.headers.authorization) { | |
return cb(403, 'Forbidden'); | |
} | |
if (context.headers.authorization !== 'Bearer a_token' && context.headers.authorization !== 'Bearer a_new_token') { | |
return cb(401, 'Unauthorized'); | |
} | |
cb(null, { |