This snippet pulls a team and users stats from the Extreme Overclocking API, as such your team needs to be added to the Extreme Overclocking site in order for the stats to work. It can be found here http://folding.extremeoverclocking.com/ (Though i think they've recently started syncing all team data, not only those who have submitted their team to the site)
More information about Folding@Home can be found here http://folding.stanford.edu
Simply change the 2 vars in the fah alias to your username and team number respectively.
Use:
To lookup your own stats:
/fah
To lookup another users stats:
/fah <username> <team number>
You can customize the colours and formatting by editing the fahlogo, fahblogo, fahc1 and fahc2 aliases.
Suggestions/Improvements/Bugs welcome :)
Attached screenshot seems to be really small, heres the fullsize http://img.iwader.co.uk/Screenshot-2012-05-27_18.52.39.png
alias fah {
var %user <your_username>, %team <your_team_number>
var %fuser $iif($2,$1,%user), %fteam $iif($2,$2,%team), %sock $+(fah.,%fuser,.,%fteam)
if ($sock(%sock)) { closesock %sock }
sockopen %sock folding.extremeoverclocking.com 80
sockmark %sock %fuser %fteam
}
alias fahlogo { return $+(06,$chr(40),14,$1-,06,$chr(41),) }
alias fahblogo { return $+(06,$chr(91),14,$1-,06,$chr(93),) }
alias fahc1 { return $+(06,$1-,) }
alias fahc2 { return $+(14,$1-,) }
on *:SOCKOPEN:fah.*: {
sockwrite -nt $sockname GET $+(/xml/user_summary.php?un=,$gettok($sock($sockname).mark,1,32),&t=,$gettok($sock($sockname).mark,2,32)) HTTP/1.0
sockwrite -nt $sockname Host: folding.extremeoverclocking.com
sockwrite -nt $sockname $crlf
sockmark $sockname
}
on *:SOCKREAD:fah.*: {
var %read
sockread %read
if ($regex(%read,/Invalid TeamID \/ TeamID Not Found/Si)) {
sockmark $sockname Invalid TeamID
}
elseif ($regex(%read,/Invalid UserID Or User Name!/Si)) {
sockmark $sockname Invalid Username
}
elseif ($regex(%read,/<Team_Name>(.*)<\/Team_Name>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
elseif ($regex(%read,/<TeamID>(\d+)<\/TeamID>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
elseif ($regex(%read,/<Rank>(\d+)<\/Rank>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
elseif ($regex(%read,/<Change_Rank_24hr>-?(\d+)<\/Change_Rank_24hr>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
elseif ($regex(%read,/<Change_Rank_7days>-?(\d+)<\/Change_Rank_7days>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
elseif ($regex(%read,/<Users_Active>(\d+)<\/Users_Active>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
elseif ($regex(%read,/<Users>(\d+)<\/Users>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
elseif ($regex(%read,/<Points_24hr_avg>(\d+)<\/Points_24hr_avg>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
elseif ($regex(%read,/<Points_Today>(\d+)<\/Points_Today>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
elseif ($regex(%read,/<Points_Week>(\d+)<\/Points_Week>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
elseif ($regex(%read,/<Points>(\d+)<\/Points>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
elseif ($regex(%read,/<WUs>(\d+)<\/WUs>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
elseif ($regex(%read,/<User_Name>(.*)<\/User_Name>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
elseif ($regex(%read,/<Team_Rank>(\d+)<\/Team_Rank>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
elseif ($regex(%read,/<Overall_Rank>(\d+)<\/Overall_Rank>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
elseif ($regex(%read,/<Last_Update_Unix_TimeStamp>(\d+)<\/Last_Update_Unix_TimeStamp>/Si)) {
sockmark $sockname $instok($sock($sockname).mark,$regml(1),0,124)
}
}
on *:SOCKCLOSE:fah.*: {
if ($sock($sockname).mark == Invalid TeamID) {
msg $active $fahlogo(Folding@Home) $fahc1(Invalid TeamID) $+ $fahc2(!)
}
elseif ($sock($sockname).mark == Invalid Username) {
msg $active $fahlogo(Folding@Home) $fahc1(Invalid Username) $+ $fahc2(!)
}
else {
msg $active $fahlogo(Folding@Home) $fahc1(Team) $+ $fahc2(: $gettok($sock($sockname).mark,1,124)) $fahblogo($gettok($sock($sockname).mark,2,124)) $&
$fahc1(Team Rank) $+ $fahc2(: $gettok($sock($sockname).mark,3,124) $fahblogo(24Hr: $fahrank($gettok($sock($sockname).mark,6,124))) $fahblogo(7Days: $fahrank($gettok($sock($sockname).mark,7,124)))) $&
$fahc1(Users) $+ $fahc2(: $gettok($sock($sockname).mark,5,124) $fahblogo(Active: $gettok($sock($sockname).mark,4,124))) $&
$fahc1(Points) $+ $fahc2(: $bytes($gettok($sock($sockname).mark,11,124),b) $fahblogo(24HrAvg. $bytes($gettok($sock($sockname).mark,8,124),b)) $fahblogo(Today: $bytes($gettok($sock($sockname).mark,9,124),b)) $fahblogo(Week: $bytes($gettok($sock($sockname).mark,10,124),b))) $&
$fahc1(Team WUs) $+ $fahc2(: $bytes($gettok($sock($sockname).mark,12,124),b)) $&
$fahc1(User Name) $+ $fahc2(: $gettok($sock($sockname).mark,13,124)) $&
$fahc1(Rank) $+ $fahc2(: $bytes($gettok($sock($sockname).mark,14,124),b) $fahblogo(24Hr: $fahrank($gettok($sock($sockname).mark,16,124))) $fahblogo(7Day: $fahrank($gettok($sock($sockname).mark,17,124)))) $&
$fahc1(Project Rank) $+ $fahc2(: $bytes($gettok($sock($sockname).mark,15,124),b)) $&
$fahc1(Points) $+ $fahc2(: $bytes($gettok($sock($sockname).mark,21,124),b) $fahblogo(24HrAvg. $bytes($gettok($sock($sockname).mark,18,124),b)) $fahblogo(Today: $bytes($gettok($sock($sockname).mark,19,124),b)) $fahblogo(Week: $bytes($gettok($sock($sockname).mark,20,124),b))) $&
$fahc1(Work Units) $+ $fahc2(: $bytes($gettok($sock($sockname).mark,22,124),b)) $&
$fahc1(Last Update) $+ $fahc2(: $asctime($gettok($sock($sockname).mark,23,124),ddd doo mmm yyyy) at $asctime($gettok($sock($sockname).mark,23,124),HH:nn:ss zzz))
}
}
alias fahrank {
if ($1 >= 1) { var %return $+(03,$chr(8593),$1) }
elseif ($1 <= -1) { var %return $+(04,$chr(8595),$1) }
else { var %return $1 }
return %return
}