約 3,020,776 件
https://w.atwiki.jp/kobapan/pages/202.html
Flickr/以前のシンプルな表示にする Flickr/撮影日時順で一覧表示する Flickr/flickcurl-コマンドラインでFlickr Flickr/flickr-upload.scm Flickr/GaucheでflickrAPIを書いてみた
https://w.atwiki.jp/maimuzo/pages/22.html
プラグイン名 Flickr library このライブラリでできること Flickr APIにアクセスできる。 タグから画像を検索できる 対象バージョン 1.2系 インストール方法 gemから gem install flickr ちょー簡単な使い方 手順があるので、ちょー簡単ではないかも。 下のチュートリアル参照。 公式ページ わかりません 日本語解説ページ RailsでFlickrを遊ぼう! (Putting Flickr on Rails)CommentsAdd Star ※対象としているライブラリのバージョンがちょっと古いと思う。たぶんコピペしただけでは動かない。 外国語解説ページ Putting Flickr on Rails ※Netbeansのサンプルだ コメント 画像の取得に1秒/件ぐらいかかる。こんなに遅いものなの? - まいぞ 2008-01-12 22 43 55 名前
https://w.atwiki.jp/wpbphoto/pages/20.html
Flickrについて サンプル 試しに作ってみました。 ちょっと見難いかもね。 http //www.flickr.com/photos/61955276@N08/ 用語メモ set アルバムのようなもの。2005,2006といった枠組みを定義できる tag 画像に付けれるタグ。複数設定可能。
https://w.atwiki.jp/kobapan/pages/332.html
コマンドラインからFlickrに写真をアップロードしたくて、いろいろと試したがこいつがよさそう。 Flickcurl C library for the Flickr API C言語で書かれたFlickrの写真を操作するライブラリ。ライブラリといいながら、コマンドラインユーティリティが同梱されている。これが便利。 見出し 依存関係の解決 Flickcurlをダウンロード&インストール マニュアルにしたがって、個人設定を行う。 使い方 複数ファイルを一度にアップロードできるラッパーを作った 依存関係の解決 libcurl 7.10.0 or newer $ sudo apt install libcurl3 libxml2 2.6.8 or newer $ sudo apt install libxml2 libxml2-dev さくらインターネットにインストールするなら、入っているっぽい $ /usr/local/bin/curl $ ls /usr/local/include/libxml2/libxml Flickcurlをダウンロード&インストール $ wget http //download.dajobe.org/flickcurl/flickcurl-1.26.tar.gz $ tar xf flickcurl-1.26.tar.gz $ cd flickcurl-1.26 $ ./configure $ make $ sudo make install さくらインターネットの場合はこちら $ wget http //download.dajobe.org/flickcurl/flickcurl-1.26.tar.gz $ tar xf flickcurl-1.26.tar.gz $ cd flickcurl-1.26 $ ./configure --prefix=/home/UserName $ make $ make install マニュアルにしたがって、個人設定を行う。 1. The App Garden | Flickrに行って、 API Key と Secret を作成する。 2. ~/.flickcurl.conf を作成し、 API Key と Secret を記述する。 [flickr] oauth_client_key= YOUR API Key oauth_client_secret= YOUR API Secret 3. Key / Secret に対応した、request token, request token secret, Authentication URL を取得する。 $ flickcurl oauth-create 4. 得られた Authentication URL をブラウザで開いて、 [OK, I LL AUTHORIZE IT]をクリックすると、9文字の暗証番号(NNN-NNN-NNN)が得られる。 5. 3.と4.の情報でもって、Access Token, Access Token Secretを取得する $ flickcurl oauth-verify request token request token secret NNN-NNN-NNN 6. ~/.flickcurl.confに、Access Token, Access Token Secretが自動的に追記される。 $ cat ~/.flickcurl.conf [flickr] oauth_token=12345678901234567-abcdef0123456789 oauth_token_secret=abcdef9876543210 oauth_client_key=0123456789abcdef0123456789abcdef oauth_client_secret=fedcba9876543210 これで設定完了。 .flickcurl.conf は違うPCに置いても使える。 使い方 写真をアップロード $ flickcurl upload IMG_2581.JPG title "干し柿" public flickcurl Uploading file IMG_2581.jpg flickcurl Photo upload status Photo ID NNNNNNNNNNN アップロードした写真のURLを取得 flickrdf $ flickrdf http //www.flickr.com/photos/USER/NNNNNNNNNNN/ 注意:httpsだとダメ出しされる。 #生画像urlだけでいい人は以下 $ flickrdf http //www.flickr.com/photos/USER/NNNNNNNNNNN/ | grep "Medium" | grep -o https //.*jpg アップロード済みの写真を別の写真と入れ替える $ flickcurl replace dsc_4439.jpg NNNNNNNNNNN flickcurl Photo replace status Secret 75c7aeb85b Original Secret 6bcc3317a4 https //farm5.staticflickr.com/XXXX/NNNNNNNNNNN_6bcc3317a4.jpg から https //farm5.staticflickr.com/XXXX/NNNNNNNNNNN_75c7aeb85b.jpg に変わったよ、という意味。 複数ファイルを一度にアップロードできるラッパーを作った Flickr/flickr-upload.scm Gaucheでさらに便利なプログラムを書いた(;・`д・́)
https://w.atwiki.jp/kobapan/pages/338.html
C言語で書かれた Flickr API 「flickcurl」 のコマンドラインユーティリティを使って、 複数ファイルを一度にアップロードするためのラッパーをGaucheで書きました。 flickr-upload.scm | github 目次 flickcurl 使い方 INFILEの構文 蛇足:INFILEの作り方 flickcurl Flickcurl公式 事前にflickcurlをインストール&設定しておく必要がある。 → Flickr/flickcurl-コマンドラインでFlickr 使い方 flickrのユーザ名と、アップロードする画像ファイルのパス名を記述したファイル名を、引数にとります。 アップロードした画像のflickrでのIDと、タイトル、URLを返します。 $ flickr-upload.scm FLICKR-USERNAME INFILE ID[NNN] TITLE[name] URL[xxx.jpg] . . . INFILEの構文 1行に一つの画像ファイルを記述します。スペースに続いて画像タイトルを記述します(省略可)。 /path/to/image.(jpg|jpeg|png|gif)[ title] . . . 蛇足:INFILEの作り方 配下の全画像を再帰的に $ find $PWD/* -regex ".*\(jpg\|jpeg\|gif\|png\)" up.txt 直下の画像ファイル $ find $PWD/* -maxdepth 0 -regex ".*\(jpg\|jpeg\|gif\|png\)" up.txt
https://w.atwiki.jp/irvinewiki/pages/20.html
Irvineを使ってFlickrの静止画を落とすためのスクリプト(動画には非対応)。「All Sizes」のページが無かったり、有っても「The owner has disabled downloading of their photos」(本オーナーは本画像のDLを拒否する)の標記が有る画像には使えないにも使える(出来るだけ大きい画像、VGA~XGA、2012年12月以降に送信された画像は最大長辺2048ピクセルまで)(2007年2月28日以前に送信された画像はほぼ無条件に本画像をDLする)様に改良。 ここからIrvineとDorothy2.zipをDL、インストールする 「(Irvineが有るフォルダ)¥Dorothy2¥program¥flickr.dms」を以下の内容で上書きする Irvineを起動後、上記サイトに出てる設定を行う 後は上記サイトの説明通り //Dorothy2 //caption=Flickr //version=0.08 //hint=「All Sizes」ボタンがあるページのURLを渡してください //match=https? //www.flickr.com/photos/ //author=nanasi //path=program //priority=500 //end //rebooted 17,Dec.,2010 by Abcdefgh //modified 18,Dec.,2010 by Abcdefgh //modified 21,Dec.,2010 by Abcdefgh //modified 23,Dec.,2010 by Abcdefgh //modified 09,Jan.,2011 by Abcdefgh //modified 30,Jan.,2011 by Abcdefgh //modified 2,Apr.,2011 by Abcdefgh //modified 1,Oct.,2013 by Abcdefgh //modified 25,Apr.,2015 by Abcdefgh function(){ println( flickr.dms start ); // 渡されたURLをALL SIZESページのURLに変換 var title = urlinfo.url.match(/.+photos\/[^\/]+\/[0-9]+/)[0]; if (!title) { println( error--- ALL SIZESページURLが見つかりません ); exit(); } title2 = title + /sizes/o ; title3 = title + /sizes/k ; title4 = title + /sizes/h ; var url = new URL(title2); urlinfo.url = url.url; headers.host = url.host; // ALL SIZESページをダウンロード common_load( download ); var http = download(urlinfo.url); if( (http.responseHeader.code != 200) (http.responseHeader.code != 302) ){ return retry( error--- + http.responseHeader.code); } if(http.responseHeader.code == 302){ var url = new URL(title3); urlinfo.url = url.url; headers.host = url.host; // 最大画素数プレビューページをダウンロード common_load( download ); var http = download(urlinfo.url); if( (http.responseHeader.code != 200) (http.responseHeader.code != 302) ){ return retry( error--- + http.responseHeader.code); } if(http.responseHeader.code == 302){ var url = new URL(title4); urlinfo.url = url.url; headers.host = url.host; // 最大画素数(1600)プレビューページをダウンロード common_load( download ); var http = download(urlinfo.url,true); if(http.responseHeader.code != 200){ return retry( error--- + http.responseHeader.code); } } } //画像URLを取得 if (!http.data.match(/ a href=\"([^"]+_?[mbhkoz]?_d[.][^"]+)/)) { // このページはオリジナルサイズではない if (!http.data.match(/ img src=\"([^"]+(static|farm)[^"]+)/)) { println( error--- 大きなサイズの画像が見つかりません ); exit(); } } var title=RegExp.$1; if ( (!title.match(/_[mbdhkoz][.]/)) ){ var title = title.replace(/[.]jpg/ , "_z.jpg"); } //単純変換が可能か否かを調査 var title2 = title.replace(/(_[mbhkoz])?((_d)?[.][^\/]+)$/ , "_o$2"); var url = new URL(title2); urlinfo.url = url.url; headers.host = url.host; var rHeader = new Object; rHeader[ bytesRead ] = 1024; common_load( test2_download ); var http = test2_download(urlinfo.url,false,rHeader); if( (http.responseHeader.code != 200) (http.responseHeader.code != 302) ){ return retry( error--- + http.responseHeader.code); } if(http.responseHeader.code != 302){ title=title2; } var url = new URL(title); urlinfo.url = url.url; headers.host = url.host; //ファイル名を抽出 if (!title.match(/([^\/?]+)([?].+)?$/)) { println( error--- ファイル名が見つかりません ); exit(); } Dorothy.fileName = RegExp.$1; }
https://w.atwiki.jp/kobapan/pages/340.html
Flickr/flickr-upload.scmを書いた後で、ふと思った。なにも、CのFlickrAPIを介さずとも、GaucheでFlickrAPIを書けばいいではないか。 ということで書いた。 GaucheでOAuthを使ってTwitterに投稿する | tana-laevatein をベースにして、 Flickr API with OAuth-based user authentication | mathworks と User Authentication | flickr を参考に、Flickr の Oauth フローを書く。一部、Gauche-net-oauth から引用した。httpsを使う点とか、oauth_callbackの指定とか、パラメータをアルファベット順にするとか、uriとパラメータの間には"?"を書くとか、その辺が変更点。画像のアップロードまでやろうと思ってたけど、力尽きて、test.loginの結果を返して終わり。 これで、Flickr Oauthの流れが分かったので、次はGauche-net-oauth | githubを使って書いてみようと思う。 Gaucheのユーザリファレンスは、具体例が少なすぎる。 (;゚д ...! 各関数のTIPS的なのはWiLiKiを見れってことなんだろうか。 #!/usr/bin/env gosh (use rfc.http) (use rfc.sha) (use rfc.hmac) (use rfc.base64) (use www.cgi) (use math.mt-random) (use gauche.uvector) (use sxml.ssax) (use sxml.sxpath) ;; ------------ ;; custom var ;; ------------ ;; API-KEY と API-SECRET は事前に、 ;; https //www.flickr.com/services/apps/create/apply/ ;; で、新しいAPIを作って取得しておく。 (define consumer-key "API-KEY") (define consumer-secret "API-SECRET") ; client-credentials-secret ;; ------------ ;; lib ;; ------------ (define (uri-encode-string str) (call-with-string-io str (lambda(in out) (while (read-byte in) (compose not eof-object?) = ch (if (char-set-contains? #[a-zA-Z0-9.~_-] (integer- char ch)) (write-char (integer- char ch) out) (format out "%~2, 0X" (char- integer (integer- char ch)))))))) (define (time-stamp) (number- string (sys-time))) (define (random-string) (let ((random-source (make mersenne-twister seed (sys-time))) (v (make-u32vector 10))) (mt-random-fill-u32vector! random-source v) (digest-hexify (sha1-digest-string (x- string v))))) ;; !! alphabetical order is needed (define (param-form-data? param) (odd? (length param))) (define (oauth-normalize-parameters params) (define (param-sorter a b) (or (string ? (car a) (car b)) (and (string=? (car a) (car b)) (string ? (cadr a) (cadr b))))) (sort (remove param-form-data? params) param-sorter)) (define (query-compose query) (string-join (map (cut string-join "=") (oauth-normalize-parameters query) ) " ")) (define (signature method uri info optional (token-secret "")) (let* ((query-string (query-compose info)) (signature-basic-string (string-append method " " (uri-encode-string uri) " " ; !! this is not ? (uri-encode-string query-string)))) (uri-encode-string (base64-encode-string (hmac-digest-string signature-basic-string key #`",|consumer-secret| ,|token-secret|" ; client-credentials-secret token-credentials-secret hasher sha1 ))) )) (define (string- sxml str) (call-with-input-string str (lambda (port) (ssax xml- sxml port ())))) ;; ------------ ;; Oauth ;; ------------ ;; Request Tokenの取得 (define query `(("oauth_consumer_key" ,consumer-key) ("oauth_nonce" ,(random-string)) ("oauth_signature_method" "HMAC-SHA1") ("oauth_timestamp" ,(time-stamp)) ("oauth_callback" "oob") ; out of band authentication = not web authentication ("oauth_version" "1.0") ; option )) (define credential (signature "GET" "https //www.flickr.com/services/oauth/request_token" ; !! https query ;; no token-credentials-secret this time )) (define token (receive (status header body) (http-get "www.flickr.com" (string-append "/services/oauth/request_token?" ; !! you need ?" (query-compose `(,@query ("oauth_signature" ,credential)) )) secure #t ) ; !! https (cgi-parse-parameters query-string body))) (define oauth-token (cadr (assoc "oauth_token" token))) (define oauth-token-secret (cadr (assoc "oauth_token_secret" token))) ;; OAuth Verifierの取得 (display "open this url.") (newline) (format #t "https //www.flickr.com/services/oauth/authorize?oauth_token=~A perms=write" oauth-token) ; optional perms= parameter, asking for read, write, or delete (newline) (newline) (display "input pin ") (flush) ;これが無いと、「input pin 」と表示されるのがread-lineの後になってしまう。 (define oauth-verifier (read-line)) ;; Access Tokenの取得 (define query `(("oauth_consumer_key" ,consumer-key) ("oauth_nonce" ,(random-string)) ("oauth_signature_method" "HMAC-SHA1") ("oauth_timestamp" ,(time-stamp)) ("oauth_token" ,oauth-token) ("oauth_verifier" ,oauth-verifier) ("oauth_version" "1.0") ; option )) (define credential (signature "GET" "https //www.flickr.com/services/oauth/access_token" ; !! https query oauth-token-secret)) ; token-credentials-secret (define token (receive (status header body) (http-get "www.flickr.com" (string-append "/services/oauth/access_token?" ; !! you need ?" (query-compose `(,@query ("oauth_signature" ,credential)) )) secure #t) (cgi-parse-parameters query-string body))) ;; request_tokenの時と同じ oauth_token というkeyだが、Access Token の値が入ってる (define access-token (cadr (assoc "oauth_token" token))) ;; request_tokenの時と同じ oauth_token_secret というkeyだが、Access Token Secret の値が入ってる (define access-token-secret (cadr (assoc "oauth_token_secret" token))) ;; ------------ ;; test ;; ------------ (define query `(("oauth_consumer_key" ,consumer-key) ("oauth_nonce" ,(random-string)) ("oauth_signature_method" "HMAC-SHA1") ("oauth_timestamp" ,(time-stamp)) ("oauth_token" ,access-token) ("method" "flickr.test.login") )) (define credential (signature "GET" "https //api.flickr.com/services/rest" ; !! https query access-token-secret) ) ; token-credentials-secret (define test-login (receive (status header body) (http-get "api.flickr.com" (string-append "/services/rest?" (query-compose `(,@query ("oauth_signature" ,credential)) )) secure #t) (sxml string ((sxpath "rsp/@stat") (string- sxml body)) ))) (print test-login)
https://w.atwiki.jp/kobapan/pages/204.html
2013-05-20(米国時間)Flickrがリニューアルされて、無料会員も1テラバイトの容量を使えるなど変更があった 1番の変化は、見た目だ オシャレっぽいデザインに変わったのだが、このおかげで、とても見づらくなった 1枚の写真ごとの詳細表示も写真がやたらと大きく表示されてしまって、また見づらい。(2013-10-16現在、さらに新しいデザインが導入されるようで、「Try our new Photo experience」というリンクが表示されるようになった ) オシャレっぽい外見を一体だれに見せる前提でデザイン変更したのか、SNS機能を充実させていこうという前フリなのかもしれないが、そっちはYahooが買収したTumblrに任せておけばいいと思う とにかくシンプルな使い方をするには、使う側が工夫しないといけない状態 さて、前置きが長くなってしまった。以下本題 以前のphotostreamに近い表示は以下のURL http //www.flickr.com/photos/自分のURL/?details=1 自分の Flickr の TOPページURL の後ろに、/?details=1 を追加する setをシンプルに見るには以下のURL http //www.flickr.com/photos/自分のURL/sets/setの番号/detail/ 見たい set の URL の後ろに、/detail/ を追加する
https://w.atwiki.jp/japanesehiphop/pages/142.html
Format Title Artist Label Model Number Release Press 12 時代特急 FLICK EL DORADO RECORDS ED2012 2000/07/28 - Side Track Title Produce A 1 時代特急 KASHI 2 時代特急(Inst) KASHI B 3 203高地 KASHI 4 203高地(Inst) KASHI PERTAIN CD DIME PIECES
https://w.atwiki.jp/soyjoynice/pages/99.html
http //stakam.net/jquery/flickgal/ ・親=コンテナ ・子=コンテナインナー ・孫=アイテム ・孫=アイテム となっていて、 ●親、子 …オーバーフローした部分=隠す 高さは一緒 ●子 …横長い -webkit-transform で3Dの変形 ●孫 …左寄せ 【HTML】 section div class="containerOuter" div class="container" div class="containerInner" …横長の部分 p class="item" ほげほげ その1 /p p class="item" ほげほげ その2 /p p class="item" ほげほげ その3 /p p class="item" ほげほげ その4 /p /div /div /div /section 【CSS】 .container { overflow hidden; height 280px; } .containerInner { position relative; overflow hidden; top 0; left 0; width 1500px; height 280px; -webkit-transform translate3d(240px, 0, 0); } .item { float left; } 【HTMLの中に直書きするstyleとscript】 style .flickBox .moving { -webkit-transition -webkit-transform .2s ease-out; -moz-transition -moz-transform .2s ease-out; } /style script head.ready( jquery , function () { head.js( /jquery/flickgal/jquery.flickgal.min.js , function () { $(function () { $( .flickBox ).not( #slideShow ).flickGal(); $( #slideShow ).flickGal({ lockScroll false }); }); }); }); /script * * * 公式: http //d.hatena.ne.jp/piglovesyou/20110123/1295786690 デモ: http //stakam.net/jquery/flickgal/demo