Page Menu
Home
DevCentral
Search
Configure Global Search
Log In
Files
F10341970
genindex
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Referenced Files
None
Subscribers
None
genindex
View Options
#!/usr/bin/env tclsh
#
# Generate feeds index
#
#Gets MD5 hash
proc md5 {string} {
#tcllib way:
#package require md5
#string tolower [::md5::md5 --hex $string]
#BSD way:
#exec -- md5 -q -s $string
#Linux way:
#exec -- echo -n $string | md5sum | sed "s/\ *-/\ \ /"
#Solaris way:
#lindex [exec -- echo -n $string | md5sum] 0
#OpenSSL way:
exec -- echo -n $string | openssl md5
}
namespace eval ::gravatar {
#Gets Gravatar e-mail hash
#http://en.gravatar.com/site/implement/hash/
proc get_hash {mail} {
md5 [string tolower [string trim $mail]]
}
#Gets Gravatar URL
#http://en.gravatar.com/site/implement/images/
#size: 1-512 (in pixels, default 80px
#default: what to print if hash not found, default gravatar logo
# values: 404 mm identicon monsterid wavatar retro or an URL
#rating: g pg r x
#We don't validate parameters, are API is unstable and evolves often.
proc get_url {mail {size 0} {default ""} {rating ""}} {
set url //www.gravatar.com/avatar/
append url [get_hash $mail]
set params {}
if {$size != 0} {
lappend params s $size
}
if {$default != ""} {
lappend params d $default
}
if {$rating != ""} {
lappend params r $rating
}
if {[llength $params] > 0} {
append url ?[::http::formatQuery {*}$params]
}
return $url
}
}
proc get_feed_info {feed} {
}
proc generate_index {{dir .} {index index.xml}} {
set fd [open index.tmp r]
set data [read $fd]
close $fd
set fd [open $index w]
puts $fd "<feeds>"
foreach file $data {
if {$data == ""} {continue}
# Gets feed name and e-mail
set name ""
set email ""
set fdfeed [open $file r]
set data [read $fdfeed 4096]
close $fdfeed
if [catch {
set pos [string first "owner email=" $data]
if {$pos == -1} {
set pos [string first "<user email=" $data]
}
set pos2 [string first "\"" $data $pos+13]
set email [string range $data $pos+13 $pos2-1]
set pos [string first ">" $data $pos2]
set pos2 [string first "<" $data $pos]
set name [string range $data $pos+1 $pos2-1]
}] {
puts stderr "Not a valid feed file: $file"
continue
}
# Writes feed entry (title, avatar from Gravatar and file)
puts $fd "\t<feed>"
puts $fd "\t\t<title>$name</title>"
puts $fd "\t\t<avatar>[gravatar::get_url $email]</avatar>"
puts $fd "\t\t<file>$file</file>"
puts $fd "\t</feed>"
}
puts $fd "</feeds>"
close $fd
}
generate_index
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Jul 2, 21:47 (10 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2570824
Default Alt Text
genindex (2 KB)
Attached To
Mode
rTOOLS Nasqueron Tools
Attached
Detach File
Event Timeline
Log In to Comment