What's wrong with this subroutine?
A.Newby
deathtospam43423 at altavista.com
Mon Feb 25 20:45:58 EST 2002
More information about the Python-list mailing list
Mon Feb 25 20:45:58 EST 2002
- Previous message (by thread): What's wrong with this subroutine?
- Next message (by thread): What's wrong with this subroutine?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
First, here's what I'm trying to do ...... I'm working on a html, cgi based chat script. It's working pretty well so far. I want to get this subroutine so that the user just has to post a url into the chat box to get a post a picture or a link in chat. For e.g, to post a pic of a walrus, you would simply type .... http://www.pbs.org/kratts/world/oceans/walrus/images/walrus.jpg ... and the script would take that, and before writing it to the chat log it would convert it to ... <img src = http://www.pbs.org/kratts/world/oceans/walrus/images/walrus.jpg> ... or to post a link, the user would simply type ... http://www.goodvibes.com/ ... and the script would convert it to .... <a href = "http://www.goodvibes.com/>Link!</a> Here's the subroutine I'm using to try and do this.... it is called from a function named "infilter" which filters the posts before writing them to the chat log ... def search4URL(string): #the following bits are used to alter the post when it finds the URL beginpic = " <img src =" endpic = ">" beginlink = " <a href =" endlink = " target = blank>Link</a>" URLStarts = string.find(' http:') #space is so when the function #repeats, it won't convert the same #block of text again URLEnds = string.find(' ', URLStarts+1, len(string)) plaything = string[URLStarts: URLEnds] if plaything[-4:] == ".jpg" or plaything[-4:] == ".gif": #if the URL is #a pic nstring = string.replace(plaything,beginpic+plaything[1:]+ endpic) elif not plaything[-4:] == ".jpg" or plaything[-4:] == ".gif": #for some reason, "else:" return a "ValueError: empty pattern string" nstring=string.replace(plaything,beginlink+plaything[1:]+ endlink) return nstring ...... The problem (aside from the fact that someone clever could probably neaten it up), is that it only works ONCE per post. That means, that if a chatter tries to post two pics, or a pic and a link, the URLs just come out as plain text. Any more than once and get a "ValueError: empty pattern string". I have tried fixing the routine in "infilter" so it repeats the function as many times as it finds the substring " http:". I have tried doing this ... x = searchstring.count(' http:') for c in range(0, x): searchstring = search4URL(searchstring) ... And I've also tried using a while loop instead. But I keep getting the dread ValueError. What am I missing here? -- cdewin at dingoblue.net.au
- Previous message (by thread): What's wrong with this subroutine?
- Next message (by thread): What's wrong with this subroutine?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list