Changeset 1965 for trunk/Collection.py


Ignore:
Timestamp:
08/28/07 13:41:58 (12 years ago)
Author:
gabor
Message:

fixed #1495 spent 30h

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Collection.py

    r1941 r1965  
    535535                    inputList.insert(0, text) 
    536536 
    537             def reqursiveRegularSplit(inputList, infoList, info, reg, first, next): 
     537            def reqursiveRegularSplit(inputList, infoList, info, reg, first, next, delete = -1): 
    538538                if isinstance(inputList, (list, tuple)): 
    539539                    for i in range(len(inputList)): 
    540540                        if not isinstance(infoList[i], str): 
    541                             inputList[i], infoList[i] = reqursiveRegularSplit(inputList[i], infoList[i], info, reg, first, next) 
     541                            inputList[i], infoList[i] = reqursiveRegularSplit(inputList[i], infoList[i], info, reg, first, next, delete) 
    542542                else: 
    543543                    reg = sre.compile(reg, sre.DOTALL | sre.IGNORECASE) 
     
    546546                        infoList = [] 
    547547                        for i in range(len(inputList)): 
    548                             if i % next == first: 
     548                            mod = i % next 
     549                            if mod == first: 
    549550                                infoList.append(info) 
    550551                            else: 
     552                                if mod == delete: 
     553                                    inputList[i] = '' 
    551554                                infoList.append(None) 
    552555                        combineNones(inputList, infoList) 
     
    567570            splitHtml, infoList = reqursiveRegularSplit(splitHtml, infoList, 'src', '(<link[^>]+href=")(.*?)("[^>]+rel="stylesheet")', 2, 4) 
    568571            splitHtml, infoList = reqursiveRegularSplit(splitHtml, infoList, 'href', '(<a[^>]+)href="(.*?)"', 2, 3) 
    569             splitHtml, infoList = reqursiveRegularSplit(splitHtml, infoList, 'fvars', '(<embed[^>]*?flashvars=")(.*?)(")', 2, 4) 
     572            splitHtml, infoList = reqursiveRegularSplit(splitHtml, infoList, 'fvars', '(<object.*?<embed[^>]*?src="(mp3player.swf|FlowPlayer.swf|player.swf)"[^>]*?flashvars=")(.*?)(".*?</object>)', 3, 5, 2) 
    570573            splitHtml, infoList = reqursiveRegularSplit(splitHtml, infoList, 'XMLmp3', '(<voiceover[^>]+src=")(.*?)(")', 2, 4) 
    571574            splitHtml, infoList = reqursiveRegularSplit(splitHtml, infoList, 'src', '(<[^>]+src=")(.*?)(")', 2, 4) 
     
    629632                    absURL, flash = getAbsoluteURL(splitHtml[i], infoList[i], baseURL) 
    630633                    if infoList[i] != 'href' or splitHtml[i].find('at_download') != -1: 
    631                         if srcs.has_key(absURL): 
    632                             srcs[absURL]['usedBy'].add(htmlIndex) 
     634                        if not absURL.startswith('http://') or absURL.startswith(self.portal_url()): 
     635                            if srcs.has_key(absURL): 
     636                                srcs[absURL]['usedBy'].add(htmlIndex) 
     637                            else: 
     638                                srcs[absURL] = {} 
     639                                src = srcs[absURL] 
     640                                src['fileName'] = findUniqueFileName(absURL, srcs) 
     641                                src['finalURL'] = '' 
     642                                src['usedBy'] = set([htmlIndex]) 
     643                                src['counter'] = 0 
     644                                if flash == 'mp3': 
     645                                    src['extension'] = 'mp3' 
     646                                elif flash == 'pilot': 
     647                                    src['extension'] = 'xml' 
     648                                elif flash in ('flv1', 'flv2'): 
     649                                    src['extension'] = 'flv' 
     650                                elif infoList[i] == 'XMLmp3': 
     651                                    src['extension'] = 'mp3' 
     652                                else: 
     653                                    src['extension'] = '' 
    633654                        else: 
    634                             srcs[absURL] = {} 
    635                             src = srcs[absURL] 
    636                             src['fileName'] = findUniqueFileName(absURL, srcs) 
    637                             src['finalURL'] = '' 
    638                             src['usedBy'] = set([htmlIndex]) 
    639                             src['counter'] = 0 
    640                             if flash == 'mp3': 
    641                                 src['extension'] = 'mp3' 
    642                             elif flash == 'pilot': 
    643                                 src['extension'] = 'xml' 
    644                             elif flash in ('flv1', 'flv2'): 
    645                                 src['extension'] = 'flv' 
    646                             elif infoList[i] == 'XMLmp3': 
    647                                 src['extension'] = 'mp3' 
    648                             else: 
    649                                 src['extension'] = '' 
     655                            infoList[i] = None 
    650656                if infoList[i] == 'href': 
    651657                    absURL, flash = getAbsoluteURL(splitHtml[i], infoList[i], baseURL) 
Note: See TracChangeset for help on using the changeset viewer.