Из python2 в python3

Использую Kodi19 Нужно переделать скрипт из python2 в python3

import xbmcaddon,os,requests,xbmc,xbmcgui,urllib,re,xbmcplugin
    import urllib.request

    def CATEGORIES():
    addDir3('Live Tv','https://dl.dropbox.com/s/xzyoyz7aewc13q8/Hits2.txt',3,'','')
    addDir3('Movies','https://dl.dropbox.com/s/xzyoyz7aewc13q8/Hits2.txt',4,'','')
    # addDir3 = addDir3.decode('utf-8')

    def channel():
    r = requests.get('https://dl.dropbox.com/s/xzyoyz7aewc13q8/Hits2.txt')
    match = re.compile('name= (.+?) url= "(.+?)" logo= "(.+?)"').findall(r.content)
    for name,link, logo in match:
    addLink(name,link,logo,'','')
     
    def Moviess():
    r = requests.get('https://dl.dropbox.com/s/xzyoyz7aewc13q8/Hits2.txt')
    match = re.compile('name= (.+?) url= "(.+?)" logo= "(.+?)"').findall(r.content)
    for name,link, logo in match:
    addLink(name,link,logo,'','')
     
    def addLink(name,url,image,urlType,fanart):
    ok=True
    liz=xbmcgui.ListItem(name)
    liz.setInfo( type="Video", infoLabels={ "Title": name } )
    liz.setProperty('IsPlayable','true')
    liz.setProperty('fanart_image',fanart)
    ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=url,listitem=liz)

    def get_params():
    param=[]
    paramstring=sys.argv[2]
    if len(paramstring)>=2:
            params=sys.argv[2]
            cleanedparams=params.replace('?','')
            if (params[len(params)-1]=='/'):
                    params=params[0:len(params)-2]
            pairsofparams=cleanedparams.split('&')
            param={}
            for i in range(len(pairsofparams)):
                    splitparams={}
                    splitparams=pairsofparams[i].split('=')
                    if (len(splitparams))==2:
                            param[splitparams[0]]=splitparams[1]
                            
    return param       
    #################################################################################################################

    #                               NEED BELOW CHANGED


    def addDir(name,url,mode):
    u=sys.argv[0]+"?url="+urllib.parse.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.parse.quote_plus(name)
    ok=True
    liz=xbmcgui.ListItem(name)
    liz.setInfo( type="Video", infoLabels={ "Title": name } )
    ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
    return ok

    def addDir2(name,url,mode):
    u=sys.argv[0]+"?url="+urllib.parse.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.parse.quote_plus(name)
    ok=True
    liz=xbmcgui.ListItem(name)
    liz.setInfo( type="Video", infoLabels={ "Title": name } )
    ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=False)
    return ok
    ###############################################################################################################        

    def addDir3(name,url,mode,fanart,description):
    u=sys.argv[0]+"?url="+urllib.parse.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.parse.quote_plus(name)+"&fanart="+urllib.parse.quote_plus(fanart)+"&description="+urllib.parse.quote_plus(description)
    ok=True
    liz=xbmcgui.ListItem(name)
    liz.setInfo( type="Video", infoLabels={ "Title": name, "Plot": description } )
    liz.setProperty( "Fanart_Image", fanart )
    ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
    return ok


    def setView(content, viewType):
    # set content type so library shows more views and info
    if content:
    xbmcplugin.setContent(int(sys.argv[1]), content)
    if ADDON.getSetting('auto-view')=='true':
    xbmc.executebuiltin("Container.SetViewMode(%s)" % viewType )



          
    params=get_params()
    url=None
    name=None
    mode=None
    iconimage=None
    fanart=None
    description=None


    try:
    url=urllib.parse.unquote_plus(params["url"])
    except:
    pass
    try:
    name=urllib.parse.unquote_plus(params["name"])
    except:
    pass
    try:
    iconimage=urllib.parse.unquote_plus(params["iconimage"])
    except:
    pass
    try:        
    mode=int(params["mode"])
    except:
    pass
    try:        
    fanart=urllib.parse.unquote_plus(params["fanart"])
    except:
    pass
    try:        
    description=urllib.parse.unquote_plus(params["description"])
    except:
    pass

    print ("Mode: "+str(mode))
    print ("URL: "+str(url))
    print ("Name: "+str(name))

    if mode==None or url==None or len(url)<1:
    print ("")
    CATEGORIES()

    elif mode==1:
    OPEN_URL(url)
    elif mode==3:
    channel()
    elif mode==4:
    Moviess()




    xbmcplugin.endOfDirectory(int(sys.argv[1]))

Выдает ошибку

Error Contents: cannot use a string pattern on a bytes-like object TypeError: cannot use a string pattern on a bytes-like object


Ответы (1 шт):

Автор решения: beats

Есть ответ! Нужно добавить b

b'name= (.+?) url= "(.+?)" logo= "(.+?)"').findall(r.content)

→ Ссылка