def search(results,encodedTitle,title,searchTitle,siteNum,lang,searchByDateActor,searchDate,searchSiteID):
    # try Actress Search
    try:
        url = PAsearchSites.getSearchSearchURL(searchSiteID) + searchTitle.lower().replace(" ","")
        Log('Actress Page: ' + url)
        searchResults = HTML.ElementFromURL(url)
        Log('Actress Search')
        for searchResult in searchResults.xpath('//section[1]//div[@class="tile-grid-item"]'):
            titleNoFormatting = searchResult.xpath('.//a[@class="video-card-title heading heading--4"]')[0].get('title')
            Log("Result Title: " + titleNoFormatting)
            curID = searchResult.xpath('.//a[@class="video-card-title heading heading--4"]')[0].get('href')
            curID = curID.replace("_","+").replace("/","_")
            Log("curID: " + curID)
            releaseDate = parse(searchResult.xpath('.//span[@class="video-card-upload-date"]')[0].text_content().strip()).strftime('%Y-%m-%d')
            Log("releaseDate: " + releaseDate)
            girlName = searchResult.xpath('.//a[@itemprop="actor"]')[0].text_content().strip()
            if searchDate:
                score = 100 - Util.LevenshteinDistance(searchDate, releaseDate)
            else:
                score = 100 - Util.LevenshteinDistance(searchTitle.lower(), girlName.lower())

            results.Append(MetadataSearchResult(id = curID + "|" + str(searchSiteID), name = girlName + " in " + titleNoFormatting + " [" + PAsearchSites.getSearchSiteName(searchSiteID) + "] " + releaseDate, score = score, lang = lang))
    # revert to scene title search
    except:
        Log("Scene Title Search")
        siteName = PAsearchSites.getSearchFilter(searchSiteID)
        if siteName == "KinkVR":
            scenePageBase = "/bdsm-vr-video/"
        elif siteName == "VRCosplayX":
            scenePageBase = "/cosplaypornvideo/"
        else:
            scenePageBase = "/vrpornvideo/"
        Log('scenePageBase: ' + scenePageBase)
        searchString = searchTitle.lower().replace(" ","_").replace("'","_").replace(".","_").replace(",","")
        url = PAsearchSites.getSearchBaseURL(searchSiteID) + scenePageBase + searchString
        Log("Scene Page url: " + url)
        searchResults = HTML.ElementFromURL(url)
        searchResult = searchResults.xpath('//div[@class="video-rating-and-details"]')[0]
        titleNoFormatting = searchResult.xpath('.//h1[@class="heading heading--2 video-title"]')[0].text_content()
        Log("SceneTitle: " + titleNoFormatting)
        curID = searchResults.xpath('//link[@rel="canonical"]')[0].get('href')
        curID = curID.replace("_","+").replace("/","_")
        Log("curID: " + curID)
        releaseDate = parse(searchResult.xpath('.//div[@class="video-details"]//p[@class="video-upload-date"]')[0].get('content').strip()).strftime('%Y-%m-%d')
        Log("ReleaseDate: " + releaseDate)
        girlName = searchResult.xpath('.//a[contains(@class,"video-actor-link")]')[0].text_content()
        Log("firstActressName: " + girlName)
        if searchDate:
            score = 100 - Util.LevenshteinDistance(searchDate, releaseDate)
        else:
            score = 100 - Util.LevenshteinDistance(searchTitle.lower(), titleNoFormatting.lower())
        results.Append(MetadataSearchResult(id = curID + "|" + str(searchSiteID), name = girlName + " in " + titleNoFormatting + " [" + PAsearchSites.getSearchSiteName(searchSiteID) + "] " + releaseDate, score = score, lang = lang))

    return results
def search(results, encodedTitle, title, searchTitle, siteNum, lang,
           searchByDateActor, searchDate, searchSiteID):
    if searchSiteID != 9999:
        siteNum = searchSiteID
    searchString = searchTitle.replace(' ', '-').replace("'", "-")
    actressSearchResults = HTML.ElementFromURL(
        PAsearchSites.getSearchSearchURL(siteNum) + searchString + "/")
    actressPageUrl = actressSearchResults.xpath(
        '//div[@class="item-inside"]//a')[0].get('href')
    searchResults = HTML.ElementFromURL(actressPageUrl)
    for searchResult in searchResults.xpath(
            '//div[contains(@class,"listing-videos")]//div[@class="item"]'):
        titleNoFormatting = searchResult.xpath(
            './/span[@class="title"]')[0].text_content()
        Log("Result Title: " + titleNoFormatting)
        curID = searchResult.xpath('.//a')[0].get('href').replace('/',
                                                                  '_').replace(
                                                                      '?', '!')
        Log("curID: " + curID)
        releaseDate = parse(
            searchResult.xpath('.//span[@class="date"]')
            [0].text_content().replace("th", "").replace(
                'st', '').strip()).strftime('%Y-%m-%d')
        Log("releaseDate: " + releaseDate)
        subSiteRaw = searchResult.xpath(
            './/div[@class="meta"]//span[@class="date-and-site"]//span'
        )[0].text_content()
        Log("subSite: " + releaseDate)
        if subSiteRaw == 'kha':
            subSite = 'KarupsHA'
        elif subSiteRaw == 'kow':
            subSite = 'KarupsOW'
        elif subSiteRaw == 'kpc':
            subSite = 'KarupsPC'
        if searchDate:
            score = 100 - Util.LevenshteinDistance(searchDate, releaseDate)
        else:
            searchSubSite = PAsearchSites.getSearchFilter(siteNum)
            score = 100 - Util.LevenshteinDistance(searchSubSite.lower(),
                                                   subSite.lower())
        results.Append(
            MetadataSearchResult(id=curID + "|" + str(siteNum),
                                 name=titleNoFormatting + " [" + subSite +
                                 "] " + releaseDate,
                                 score=score,
                                 lang=lang))
    return results