| View previous topic :: View next topic |
| Author |
Message |
wckdkl0wn Voice
Joined: 07 Oct 2007 Posts: 7
|
Posted: Sun Oct 28, 2007 8:32 pm Post subject: REQ: maybe someone knows how to do this |
|
|
| i looked fora script but couldnt find one. maybe someone knows of one and can point me towards it. but i am looking for a script that will look on a phpbb forum and reply back to the channel its in with the like top 3 or 5 new posts made. maybe an option to display the current users logged on. or perhaps the daily site visits. anyone know of any script that can do this? |
|
| Back to top |
|
 |
rosc2112 Revered One

Joined: 19 Feb 2006 Posts: 1454 Location: Northeast Pennsylvania
|
Posted: Wed Oct 31, 2007 2:10 pm Post subject: |
|
|
| If I knew how to make a script log in to a website, then retrieving data from these boards would be fairly simple. Other people have made similar requests, but I've yet to see any example script that can log in to the website to be able to pull data from them. |
|
| Back to top |
|
 |
user

Joined: 18 Mar 2003 Posts: 1452 Location: Norway
|
Posted: Thu Nov 01, 2007 7:00 am Post subject: |
|
|
| rosc2112 wrote: | | If I knew how to make a script log in to a website, then retrieving data from these boards would be fairly simple. Other people have made similar requests, but I've yet to see any example script that can log in to the website to be able to pull data from them. |
There's no standard way to log in to a website... In phpBB, all you need to do is post the login form and you get redirected to a url with a session ID in it.
| Code: |
# usage: getegghelp <yourUsername> <yourPassword> [theDesiredDestinationUri]
# returns: url based on uri with appended session id
proc getegghelp {user pass {uri ""}} {
set Q {}
lappend Q username $user
lappend Q password $pass
lappend Q redirect $uri
lappend Q login "Log in";# required by phpbb
set t [http::geturl http://forum.egghelp.org/login.php -query [eval http::formatQuery $Q]]
if {[http::ncode $t]==302} {
upvar #0 $t s
array set h $s(meta)
http::cleanup $t
set h(Location)
} else {
error "failed?"
}
}
getegghelp rosc2112 password /search.php?search_id=newposts
|
Other sites might require cookies (store cookies recieved in the header field "Set-Cookie" and send it out in subsequent requests using "-headers {Cookie $theCookie}") or WWW-Authentication (you'll get a 401 when loading the page with no/wrong Authorization header (-headers {Authorization "Basic [base64encode user:pass]"}))
EDIT: here's some code to demonstrate BASIC authentication:
| Code: | proc geturlauth {url args} {
# parse the url to extract user:pass
if {![regexp -- {^([a-z]+://)?(?:([^@/]+)@)?(.+)$} $url url prefix login rest]} {
error "Invalid url"
}
if {$login==""} {
error "Don't use it if you don't need it ;)"
}
array set o $args
lappend o(-headers) "Authorization" "Basic [b64e $login]"
eval http::geturl [list $prefix$rest] [array get o]
}
# base64encode based on RS's proc in the tcl wiki
proc b64e str {
binary scan $str B* bits
switch [expr {[string len $bits]%6}] {
2 {append bits 0000==}
4 {append bits 00=}
}
string map {
000000 A 000001 B 000010 C 000011 D 000100 E 000101 F
000110 G 000111 H 001000 I 001001 J 001010 K 001011 L
001100 M 001101 N 001110 O 001111 P 010000 Q 010001 R
010010 S 010011 T 010100 U 010101 V 010110 W 010111 X
011000 Y 011001 Z 011010 a 011011 b 011100 c 011101 d
011110 e 011111 f 100000 g 100001 h 100010 i 100011 j
100100 k 100101 l 100110 m 100111 n 101000 o 101001 p
101010 q 101011 r 101100 s 101101 t 101110 u 101111 v
110000 w 110001 x 110010 y 110011 z 110100 0 110101 1
110110 2 110111 3 111000 4 111001 5 111010 6 111011 7
111100 8 111101 9 111110 + 111111 /
} $bits
}
|
Use it like http::geturl, but include user:pass@ in front of the host
(geturlauth http://user:pass@some.site/) _________________ Have you ever read "The Manual"? |
|
| Back to top |
|
 |
rosc2112 Revered One

Joined: 19 Feb 2006 Posts: 1454 Location: Northeast Pennsylvania
|
Posted: Thu Nov 01, 2007 7:38 pm Post subject: |
|
|
Saved for future reference, thanks User  |
|
| Back to top |
|
 |
|