mIRC Home    About    Download    Register    News    Help

Print Thread
Capture the 1st link in line... #266399 30/11/19 11:17 PM
Joined: Nov 2003
Posts: 74
C
colt45 Offline OP
Babel fish
OP Offline
Babel fish
C
Joined: Nov 2003
Posts: 74
There's a few HTTP links in a single line but I'd like my script to capture the 1st HTTP link found (or 2nd or 3rd - depends if they changed the layout in the future?) and use that to echo back to myself.
here's example...

<moviebot> The Lion King (Animation, Adventure, Drama) - https://www.imdb.com/title/tt6105098 - Official Site Link : https://movies.disney.com/the-lion-king-2019 - Blu-ray due out on or around 22nd Oct 2019
<moviebot> Fast & Furious: Hobbs & Shaw (Action, Adventure) - https://www.imdb.com/title/tt6806448 - Official Site Link : https://www.hobbsandshaw.com - Blu-ray due out on or around 5th Nov 2019
...
...


And so on, but if I use $5 on that Lion King, it'll picks up https://www.imdb.com/title/tt6105098 but not that F&F because that's would show up as & frown

If I do my way, it'll be very messy i.e.
Code
If (http isin $1) { /echo -a $1 | halt }
else (http isin $2) { /echo -a $2 | halt }
else (http isin $3) { /echo -a $3 | halt }
else (http isin $4) { /echo -a $4 | halt }
else (http isin $5) { /echo -a $5 | halt }
else (http isin $6) { /echo -a $6 | halt }
else (http isin $7) { /echo -a $7 | halt }

But also, "optional", I'd like to output to something like this

The Lion King - https://www.imdb.com/title/tt6105098

Strip out the genre and the rest of the line because it's cleaner for me to read rather than having to read that long line from moviebot.

I'm still a newbie to coding - can only write very basic code - I'd appreciated for any help.

Re: Capture the 1st link in line... [Re: colt45] #266400 01/12/19 02:10 AM
Joined: Jan 2004
Posts: 1,226
maroon Offline
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 1,226
assuming you want to avoid color codes getting in the way, you would use $strip to sanitize the input. $1 would only be the 1st word, so you'd want $1- to peek at all words. Have a look at this and other links at https://en.wikichip.org/wiki/mirc/token_manipulation

If you want to match the 1st word beginning with http, you could do like:

//tokenize 32 foo bar httpSTUFF test foo | echo -a $wildtok($strip($1-), http*, 1, 32)

Re: Capture the 1st link in line... [Re: maroon] #266401 01/12/19 02:38 AM
Joined: Nov 2003
Posts: 74
C
colt45 Offline OP
Babel fish
OP Offline
Babel fish
C
Joined: Nov 2003
Posts: 74
Alright, I'll give it a try .. thanks
Will reply back if I'm stuck with codes wink
Yea, I'm aware of $strip colours just that I'm too lazy to code properly on forums ;P

Re: Capture the 1st link in line... [Re: colt45] #266402 01/12/19 05:49 AM
Joined: Apr 2010
Posts: 924
F
FroggieDaFrog Offline
Hoopy frood
Offline
Hoopy frood
F
Joined: Apr 2010
Posts: 924
you could use regex:

Code
on *:TEXT:*:#:{

  ; matches: name (genres) - http...
  var %pattern = /^.+? \([^()]+\) - (https?:\/\/\S+)/S

  if ($regex($1-, %pattern)) {
    var %name = $regml(1)
    var %link = $regml(2)

    ; do stuff 
  }
}

Last edited by FroggieDaFrog; 01/12/19 05:50 AM.

I am SReject
My Stuff