|
Joined: Mar 2006
Posts: 19
Pikka bird
|
OP
Pikka bird
Joined: Mar 2006
Posts: 19 |
well i am the kind of person that needs guidding through something so can some1 tell me if this is even close to being right so far, i dont want some1 to give me the script but to tell me if what i am doing is right:
/sockopen hpcomp runescape.com 80
on *:sockopen:hpcomp:{ sockwrite -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= HTTP/1.1 sockwrite -n $sockname Host: runescape.com $+ $crlf $+ $crlf } on *:sockread:hpcomp:{ if ($sockerr) { echo -a Error. halt } else { var %temptext sockread %temptext ; handling here } }
i forgot to add that this is going to call the hp stats from runescape.com
Last edited by adamb53; 29/03/06 02:48 AM.
|
|
|
|
Joined: Oct 2005
Posts: 1,741
Hoopy frood
|
Hoopy frood
Joined: Oct 2005
Posts: 1,741 |
That code looks like it should work. A couple things though:
You should use HTTP/1.0 in mIRC sockets, otherwise the server will send in bursts, and you will get strange numbers in your data.
To test if the connection is working, add an echo where you have: ; handling here.
Something like this: echo 5 -s > %temptext
That should echo the entire contents of the website to the status window.
-genius_at_work
|
|
|
|
Joined: Mar 2006
Posts: 19
Pikka bird
|
OP
Pikka bird
Joined: Mar 2006
Posts: 19 |
hmmm ok, i attempted to add some more and im starting to get confused and i think there is something wrong but ill post it:
/sockopen hpcomp runescape.com 80
on *:sockopen:hpcomp:{
sockwrite -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ %user HTTP/1.0
sockwrite -n $sockname Host: runescape.com $+ $crlf $+ $crlf
}
on *:sockread:hpcomp:{
if ($sockerr) {
echo -a Error.
halt
}
else {
var %temptext
sockread %temptext
echo 5 -s > %temptext
if <span class="small text">Hitpoint stats: Starting Level: * , Current Level: * , Difference: *{
echo -a -
echo -a $htmlfree(%temptext)
}
}
}
alias -l htmlfree {
; It's local because it won't be used by the command line, only this file.
; Local aliases avoid conflicting names.
var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;)
return %x
}
alias hpcomp {
if ($2-) {
set %user $2
; Variables to be used in the future URL are being set here!
sockopen hpcomp runescape.com 80
}
else {
echo -a You didn't specify a user and the info.
}
}
|
|
|
|
Joined: Aug 2004
Posts: 7,252
Hoopy frood
|
Hoopy frood
Joined: Aug 2004
Posts: 7,252 |
You have an extra } at the end of your ON SOCKREAD event.
|
|
|
|
Joined: Mar 2006
Posts: 19
Pikka bird
|
OP
Pikka bird
Joined: Mar 2006
Posts: 19 |
ok i fixed that, anything else wrong?
/sockopen hpcomp runescape.com 80
on *:sockopen:hpcomp:{
sockwrite -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ %user HTTP/1.0
sockwrite -n $sockname Host: runescape.com $+ $crlf $+ $crlf
}
on *:sockread:hpcomp:{
if ($sockerr) {
echo -a Error.
halt
}
else {
var %temptext
sockread %temptext
echo 5 -s > %temptext
if <span class="small text">Hitpoint stats: Starting Level: * , Current Level: * , Difference: *{
echo -a -
echo -a $htmlfree(%temptext)
}
}
alias -l htmlfree {
; It's local because it won't be used by the command line, only this file.
; Local aliases avoid conflicting names.
var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;)
return %x
}
alias hpcomp {
if ($2-) {
set %user $2
; Variables to be used in the future URL are being set here!
sockopen hpcomp runescape.com 80
}
else {
echo -a You didn't specify a user and the info.
}
}
|
|
|
|
Joined: Oct 2005
Posts: 1,741
Hoopy frood
|
Hoopy frood
Joined: Oct 2005
Posts: 1,741 |
Your /sockopen command should be within an alias, like this:
alias rune {
if ($sock(hpcomp)) sockclose hpcomp
sockopen hpcomp runescape.com 80
.timer 1 5 sockclose hpcomp
echo -at Connecting to runescape
}
To start the connection, you would type /rune -genius_at_work
|
|
|
|
Joined: Mar 2006
Posts: 19
Pikka bird
|
OP
Pikka bird
Joined: Mar 2006
Posts: 19 |
my finaly code is:
on *:sockopen:hpcomp:{
sockwrite -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ %user HTTP/1.0
sockwrite -n $sockname Host: runescape.com $+ $crlf $+ $crlf
}
on *:sockread:hpcomp:{
if ($sockerr) {
echo -a Error.
halt
}
else {
var %temptext
sockread %temptext
echo 5 -s > %temptext
if <span class="small text"> Hitpoint stats: Starting Level: * , Current Level: * , Difference: *{
echo -a -
echo -a $htmlfree(%temptext)
}
}
alias -l htmlfree {
; It's local because it won't be used by the command line, only this file.
; Local aliases avoid conflicting names.
var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;)
return %x
}
alias hpcomp {
if ($2-) {
set %user $2
; Variables to be used in the future URL are being set here!
sockopen hpcomp runescape.com 80
}
else {
echo -a You didn't specify a user and the info.
}
}
alias rune {
if ($sock(hpcomp)) sockclose hpcomp
sockopen hpcomp runescape.com 80
.timer 1 5 sockclose hpcomp
echo -at Connecting to runescape
}
but when i try to use it, it says: [21:34:21] Connecting to runescape <--- in the active window * /if: 'class="small' unknown operator (line 16, script13.ini) <--- in status window
|
|
|
|
Joined: Aug 2004
Posts: 7,252
Hoopy frood
|
Hoopy frood
Joined: Aug 2004
Posts: 7,252 |
simply put a space on either side of the equals sign in that line. I don't know if it makes a difference or not, but in most of the coding for a comparison, a == is used, rather than =
Just make sure you have a space on either side of the == or the =
|
|
|
|
Joined: Oct 2005
Posts: 1,741
Hoopy frood
|
Hoopy frood
Joined: Oct 2005
Posts: 1,741 |
I don't see any actual comparison in that if-statement. Your code is like this: if (SOMETHING) { Which always evaluates to true. It should have a comparison in it like this: if (SOMETHING == SOMETHING) { Or in your case, if (*wild*string* iswm %variable) {
if (<span class="small text"> Hitpoint stats: Starting Level: * , Current Level: * , Difference: * iswm %temptext) {
-genius_at_work
|
|
|
|
Joined: Mar 2006
Posts: 19
Pikka bird
|
OP
Pikka bird
Joined: Mar 2006
Posts: 19 |
ok my code:
/sockopen hpcomp runescape.com 80
on *:sockopen:hpcomp:{
sockwrite -n $sockname GET runescape.com/lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ %user HTTP/1.0
sockwrite -n $sockname Host: runescape.com $+ $crlf $+ $crlf
}
on *:sockread:hpcomp:{
if ($sockerr) {
echo -a Error.
halt
}
else {
var %temptext
sockread %temptext
echo 5 -s > %temptext
if (<span+class == "small text">Hitpoint stats: Starting Level: * , Current Level: * , Difference: * iswm %temptext){
echo -a -
echo -a $htmlfree(%temptext)
}
}
alias -l htmlfree {
; It's local because it won't be used by the command line, only this file.
; Local aliases avoid conflicting names.
var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;)
return %x
}
alias hpcomp {
if ($2-) {
set %user $2
; Variables to be used in the future URL are being set here!
sockopen hpcomp runescape.com 80
}
else {
echo -a You didn't specify a user and the info.
}
}
alias rune {
if ($sock(hpcomp)) sockclose hpcomp
sockopen hpcomp runescape.com 80
.timer 1 5 sockclose hpcomp
echo -at Connecting to runescape
}
and it says: [23:25:05] Connecting to runescape - HTTP/1.1 404 Not found - Content-type: text/html - Cache-control: no-cache - Pragma: no-cache - Expires: 0 - Connection: Close - Content-length: 549 - 404 - Page not found404 - Page not foundSorry, the page you were looking for was not found.
|
|
|
|
Joined: Oct 2005
Posts: 1,741
Hoopy frood
|
Hoopy frood
Joined: Oct 2005
Posts: 1,741 |
Obviously, that result means that the page you are trying to view doesn't exist. Find the correct URL, and change it in your code.
Also, your sockwrite GET line is incorrect. It should be something like this:
sockwrite -n $sockname GET lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ %user HTTP/1.0
That is assuming that you have set %user as a global variable somewhere else before you opened the socket.
Your if iswm line also has a problem. At the end of the line, there should be a space between the ) and {, like this:
if (<span...%temptext) {
When you fix that, you will have a } bracket mismatch. Add another } after the second /echo command.
-genius_at_work
Last edited by genius_at_work; 30/03/06 04:39 AM.
|
|
|
|
|