HatenaBookmarkからGoogleBookmarkへ移行
をテンプレートにして作成
[
Front page
] [
Page list
|
Search
|
Recent changes
|
RSS of recent changes
]
Start:
+はてなブックマークのfeedを取得
+Googleにログインして
+一つずつPOST
はてなブックマークのFeedの取得は、以前作った[[hbmark]]で...
set dumpfile ./all.xml
set mail my@loginmail
set pass mypassword
set ua "Mozilla/5.0 (Windows; U; Windows NT 5.0; ja; rv:...
set google "http://www.google.com"
package require http
package require tls
package require cookiejar
http::register https 443 ::tls::socket
http::config -useragent $ua -urlencoding utf-8
cookiejar::configure -debug 0 -info 0
#-------------------------------------------------------...
# Google
#-------------------------------------------------------...
proc login {mail pass} {
set posturl https://www.google.com/accounts/LoginAuth
set token [http::geturl $posturl \
-query [http::formatQuery \
Email $mail\
PersistentCookie yes\
Passwd $pass\
null "ログイン"]]
upvar #0 $token state
foreach {k v} $state(meta) {
if {$k eq "Location"} {
set next $v
break;
}
}
http::cleanup $token
set token [http::geturl $next]
upvar #0 $token state
foreach {k v} $state(meta) {
if {$k eq "Location"} {
set next $v
break;
}
}
http::cleanup $token
set token [http::geturl $next]
http::cleanup $token
}
proc move {url} {
set url $::google$url
set token [http::geturl $url]
upvar #0 $token state
foreach {k v} $state(meta) {
if {$k eq "Location"} {
set next $v
break;
}
}
http::cleanup $token
return $next
}
proc addBookmark {bkmk title tags comment} {
set url [move "/bookmarks/mark?op=add"]
set token [http::geturl $::google$url]
set html [http::data $token]
set q {hidden name=sig value="(.*?)"}
set siglist [regexp -linestop -inline -all -- $q $ht...
if {[llength $siglist] == 0} {error "failed to get s...
set sig [lindex $siglist 1]
set q {name="add_bkmk_form" action="(.*?)"}
set postlist [regexp -linestop -inline -all -- $q $h...
set posturl [lindex $postlist 1]
http::cleanup $token
set token [http::geturl $::google$posturl \
-query [http::formatQuery \
title $title \
bkmk $bkmk \
labels [join $tags ,] \
annotation $comment \
sig $sig \
prev /lookup \
q is:bookmarked \
btnA ブックマークを追加 \
btnC キャンセル]]
}
#-------------------------------------------------------...
# Do
#-------------------------------------------------------...
source c:/doc/tcl/mailme.tcl
login $mail $pass
package require tdom
set fp [open $dumpfile r]
fconfigure $fp -encoding utf-8
set xml [read $fp]
close $fp
set doc [dom parse $xml]
set elist [list]
foreach enode [$doc getElementsByTagName entry] {
set elist [concat $enode $elist]
}
foreach enode $elist {
set link ""
foreach lnode [$enode getElementsByTagName link] {
if {[$lnode getAttribute rel] eq "related"} {
set link [string trim [$lnode getAttribute h...
break;
}
}
if {$link eq ""} {
puts [$enode asXML]
continue
}
set tags [list]
foreach tnode [$enode getElementsByTagName dc:subjec...
lappend tags [string trim [$tnode asText]]
}
set title [string trim [[$enode getElementsByTagName...
set sum [string trim [[$enode getElementsByTagName...
puts $title
if {[catch {addBookmark $link $title $tags $sum}]} {
puts [$enode asXML]
}
after 10000
}
#完了したら携帯電話にメールを送る
EMailSend "H2G Complete!!" ""
----
[[Categoryはてな]] [[CategoryGoogle]] [[CategoryTclTk]]
End:
+はてなブックマークのfeedを取得
+Googleにログインして
+一つずつPOST
はてなブックマークのFeedの取得は、以前作った[[hbmark]]で...
set dumpfile ./all.xml
set mail my@loginmail
set pass mypassword
set ua "Mozilla/5.0 (Windows; U; Windows NT 5.0; ja; rv:...
set google "http://www.google.com"
package require http
package require tls
package require cookiejar
http::register https 443 ::tls::socket
http::config -useragent $ua -urlencoding utf-8
cookiejar::configure -debug 0 -info 0
#-------------------------------------------------------...
# Google
#-------------------------------------------------------...
proc login {mail pass} {
set posturl https://www.google.com/accounts/LoginAuth
set token [http::geturl $posturl \
-query [http::formatQuery \
Email $mail\
PersistentCookie yes\
Passwd $pass\
null "ログイン"]]
upvar #0 $token state
foreach {k v} $state(meta) {
if {$k eq "Location"} {
set next $v
break;
}
}
http::cleanup $token
set token [http::geturl $next]
upvar #0 $token state
foreach {k v} $state(meta) {
if {$k eq "Location"} {
set next $v
break;
}
}
http::cleanup $token
set token [http::geturl $next]
http::cleanup $token
}
proc move {url} {
set url $::google$url
set token [http::geturl $url]
upvar #0 $token state
foreach {k v} $state(meta) {
if {$k eq "Location"} {
set next $v
break;
}
}
http::cleanup $token
return $next
}
proc addBookmark {bkmk title tags comment} {
set url [move "/bookmarks/mark?op=add"]
set token [http::geturl $::google$url]
set html [http::data $token]
set q {hidden name=sig value="(.*?)"}
set siglist [regexp -linestop -inline -all -- $q $ht...
if {[llength $siglist] == 0} {error "failed to get s...
set sig [lindex $siglist 1]
set q {name="add_bkmk_form" action="(.*?)"}
set postlist [regexp -linestop -inline -all -- $q $h...
set posturl [lindex $postlist 1]
http::cleanup $token
set token [http::geturl $::google$posturl \
-query [http::formatQuery \
title $title \
bkmk $bkmk \
labels [join $tags ,] \
annotation $comment \
sig $sig \
prev /lookup \
q is:bookmarked \
btnA ブックマークを追加 \
btnC キャンセル]]
}
#-------------------------------------------------------...
# Do
#-------------------------------------------------------...
source c:/doc/tcl/mailme.tcl
login $mail $pass
package require tdom
set fp [open $dumpfile r]
fconfigure $fp -encoding utf-8
set xml [read $fp]
close $fp
set doc [dom parse $xml]
set elist [list]
foreach enode [$doc getElementsByTagName entry] {
set elist [concat $enode $elist]
}
foreach enode $elist {
set link ""
foreach lnode [$enode getElementsByTagName link] {
if {[$lnode getAttribute rel] eq "related"} {
set link [string trim [$lnode getAttribute h...
break;
}
}
if {$link eq ""} {
puts [$enode asXML]
continue
}
set tags [list]
foreach tnode [$enode getElementsByTagName dc:subjec...
lappend tags [string trim [$tnode asText]]
}
set title [string trim [[$enode getElementsByTagName...
set sum [string trim [[$enode getElementsByTagName...
puts $title
if {[catch {addBookmark $link $title $tags $sum}]} {
puts [$enode asXML]
}
after 10000
}
#完了したら携帯電話にメールを送る
EMailSend "H2G Complete!!" ""
----
[[Categoryはてな]] [[CategoryGoogle]] [[CategoryTclTk]]
Page:
HTML convert time: 0.003 sec.