Best Python code snippet using playwright-python
seyirTURK.py
Source:seyirTURK.py
...19 if privacy == "true":20 mrl = root() + 'main/vip.php?dummy=dummy'21 22 resp = root() + "check/check.php?mail=" + settings.getSetting( "mail" ) + "&parola=" + settings.getSetting( "sifre" )23 membership = get_url(resp)24 if ("okmember" in membership and settings.getSetting( "favori" ) == "true" ):25 erl = "&tip=favori&url=" + root() + "data/"+ hashlib.md5(settings.getSetting( "mail" )).hexdigest()+".xml"26 elif settings.getSetting( "favori" ) != "true" :27 erl =""28 else:29 erl="";30 showMessage("Favorilerim ozelligini kullanabilmek icin lutfen http://seyirturk.com a uye olunuz.")31 listele(mrl+erl) 32 if ("okmember" in membership and settings.getSetting( 'favori' ) == "false" ):33 addDir('[COLOR orange][B][COLOR blue]* [/COLOR]'+ 'Favorilerim' +'[/B][/COLOR]'+'[COLOR blue]* [/COLOR]',mrl + "&tip=favori&url="+root()+"data/"+ hashlib.md5(settings.getSetting( "mail" )).hexdigest()+".xml",2,root()+'resimler/favori.png')34 elif ("okmember" in membership and settings.getSetting( 'favori' ) == "true"):35 if settings.getSetting( 'Adult')!='true':36 portal_url = root() + 'main/vip.php?dummy=dummy'37 else :38 portal_url = root() + 'main/vip.php?filter=evet'39 addDir('[COLOR orange][B][COLOR blue]* [/COLOR]'+ 'Portallar' +'[/B][/COLOR]'+'[COLOR blue]* [/COLOR]',mrl,2,"resim")40 41def listele(url):42 43 searchstring=""44 if "&keyword" in url:45 keyboard = xbmc.Keyboard( '', "Film Arama", False )46 keyboard.doModal()47 if ( keyboard.isConfirmed() ):48 searchstring = keyboard.getText()49 url = url+searchstring50 if url == "seyirturk.xml":51 seyirturk_file = os.path.join(userdata, 'seyirturk.xml') 52 if os.path.isfile(seyirturk_file) :53 g = open(seyirturk_file).read()54 else:55 showMessage("[COLOR blue][B]seyirTURK[/B][/COLOR]","[COLOR red][B]yerel listeniz yok![/B][/COLOR]")56 else :57 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 seyirTURK_KODI (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})58 f = urllib2.urlopen(request)59 g = get_url(url)60 print url61 print g62 if "Baslik" in g:63 js = json.load(f)64 for rs in js:65 baslik=rs['Baslik'].encode('utf-8')66 resim=rs['Resim'].encode('utf-8')67 playlist=rs['Playlist'].encode('utf-8')68 stream=rs['Stream'].encode('utf-8')69 aciklama=rs['Aciklama'].encode('utf-8')70 koruma=rs['Koruma']71 if playlist <> '': 72 url= playlist73 if koruma == "False":74 75 addDir('[COLOR orange][B][COLOR blue]* [/COLOR]'+ baslik +'[/B][/COLOR]',url+searchstring,2,resim)76 #addDir('[COLOR orange][B][COLOR blue]* [/COLOR]'+ baslik +'[/B][/COLOR]',url,2,resim)77 else:78 addDir('[COLOR red][B][COLOR blue]+18 > [/COLOR]'+ baslik +'[/B][/COLOR]',url,2,resim)79 else:80 url=stream81 addDir('[COLOR white][B][COLOR red]> [/COLOR]'+baslik+'[/B][/COLOR]',url,3,resim)82 if "PORTALLAR" in g:83 addDir('[COLOR orange][B][COLOR blue]* [/COLOR] Yerel Oynatma Listem[/B][/COLOR]',settings.getSetting( "yerelxml" ) ,2,root()+'resimler/xml.png')84 85 elif "title" in g:86 xmldoc = minidom.parseString(g)87 js = xmldoc.getElementsByTagName('channel')88 89 for rs in js:90 baslik = rs.getElementsByTagName("title")[0].firstChild.data.encode('utf-8')91 resim=rs.getElementsByTagName("logo_30x30")[0].firstChild.data.encode('utf-8')92 playlist_url = rs.getElementsByTagName("playlist_url")93 stream_url = rs.getElementsByTagName("stream_url") 94 if len(playlist_url) > 0:95 playlist=playlist_url[0].firstChild.data.encode('utf-8')96 url = playlist97 stream =None98 elif len(stream_url)>0:99 stream=stream_url[0].firstChild.data.encode('utf-8')100 url = stream101 playlist =None102 else:103 playlist = None104 stream =None105 aciklama=rs.getElementsByTagName("description")[0].firstChild.data.encode('utf-8')106 aciklama = re.sub(r'<.*?>', '', aciklama)107 if playlist <> None: 108 addDir('[COLOR orange][B][COLOR blue]* [/COLOR]'+ baslik +'[/B][/COLOR]',url,2,resim)109 else:110 addDir('[COLOR white][B][COLOR red]> [/COLOR]'+baslik+'[/B][/COLOR]',url,3,resim)111 112 else:113 showMessage("[COLOR blue][B]seyirTURK[/B][/COLOR]","[COLOR blue][B]Link Bulunamadi[/B][/COLOR]")114def oynat(url,baslik): 115 playList.clear()116 url = str(url).encode('utf-8', 'ignore')117 if "vk.com" in url:118 url= VKoynat(url)119 elif "picasaweb" in url:120 url= Picasaweb(url)121 elif "ok.ru" in url:122 url= okru(url)123 elif "odnoklassniki.ru" in url:124 url= okru(url)125 elif "mail.ru" in url:126 url = Mailru(url)127 elif "youtube" in url:128 url= YoutubeOynat(url)129 elif "dailymotion" in url:130 url= dailyoynat(url)131 elif "epornik" in url:132 url= epornik(url)133 elif "veterok" in url:134 url= veterok(url)135 elif "vid.ag" in url:136 url= vidagoynat(url)137 elif "imdb" in url:138 url= imdb(url)139 elif "player.vimeo.com" in url:140 url= vimeo(url)141 elif "embed.myvideo.az" in url:142 url= myvideo(url)143 elif "watchcinema.ru" in url:144 url= watchcinema(url)145 elif "stagevu" in url:146 url= stagevu(url)147 elif "rutube" in url:148 url= rutube(url)149 elif "cloudy" in url:150 url= filekey1(url)151 elif "videoraj" in url:152 url= filekey1(url)153 elif "novamov" in url:154 url= filekey(url)155 elif "divxstage" in url:156 url= filekey(url)157 elif "embed.movshare" in url:158 url= kzd(url)159 elif "embed.nowvideo" in url:160 url= kzd(url)161 elif "plus.google.com" in url:162 url= google(url)163 elif "docs.google.com" in url:164 url= google(url)165 elif 'rtmp:' in url:166 url= url167 elif 'rtsp:' in url:168 url= url 169 elif 'mms:' in url:170 url= url171 elif '.m3u8' in url:172 url= url173 elif url.endswith('.mp4'):174 url= url 175 else:176 url1=urlresolver.resolve(url)177 if url1:178 url = url1179 if url:180 if ("vk.com" in url or "youtube.com" in url or "rutube" in url):181 oynat(url, baslik)182 else:183 addLink(baslik,url,'')184 listitem = xbmcgui.ListItem(baslik, iconImage="DefaultFolder.png", thumbnailImage='')185 listitem.setInfo('video', {'name': baslik } )186 playList.add(url,listitem=listitem)187 xbmcPlayer.play(playList)188 else:189 showMessage("[COLOR blue][B]seyirTURK[/B][/COLOR]","[COLOR blue][B]Link Bulunamadi[/B][/COLOR]")190def google(url):191 if 'plus.google.com' in url:192 if "oid" in url:193 oid = re.findall('oid=([0-9]+)',url)[0]194 pid = re.findall('pid=([0-9]+)',url)[0]195 else:196 ids = url.split("/")197 oid = ids[4]198 pid = ids[7]199 url = "https://picasaweb.google.com/data/feed/tiny/user/"+oid+"/photoid/"+pid+"?alt=jsonm";200 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})201 response = urllib2.urlopen(request)202 html = response.read().decode('unicode-escape')203 204 if 'picasaweb.google.com' in url:205 links_part = re.findall('"https://redirector(.*?)"', html)206 pre_link = 'https://redirector'207 if 'docs.google.com' in url:208 links_parts = re.findall('"fmt_stream_map","(.*?)"', html)[0]209 links_part = re.findall('\\|(.*?),', links_parts)210 pre_link =''211 videolist = []212 qualitylist = []213 for link_part in links_part: 214 if link_part.encode('utf_8').find("itag=18") > -1:215 videolist.append(pre_link + link_part.encode('utf_8'))216 qualitylist.append("360p")217 if link_part.encode('utf_8').find("itag=22") > -1:218 videolist.append(pre_link + link_part.encode('utf_8'))219 qualitylist.append("720p")220 if link_part.encode('utf_8').find("itag=37") > -1:221 videolist.append(pre_link + link_part.encode('utf_8'))222 qualitylist.append("1080p")223 dialog = xbmcgui.Dialog()224 ret = dialog.select('kalite secin...',qualitylist)225 return videolist[ret]226def kzd(url):227 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})228 secondpage = urllib2.urlopen(request).read()229 link = re.findall('flashvars\\.file="(.*?)";', secondpage)230 key = re.findall('var fkzd="(.*?)";', secondpage)231 if 'embed.movshare' in url:232 video = 'http://www.movshare.net/api/player.api.php?file=' + link[0] + '&key=' + key[0]233 else:234 video = 'http://www.nowvideo.sx/api/player.api.php?file=' + link[0] + '&key=' + key[0]235 request2 = urllib2.Request(video, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})236 thirdpage = urllib2.urlopen(request2).read()237 return re.findall('url=(.*?flv)', thirdpage)[0]238def filekey(url):239 240 url = url.replace("http://embed.divxstage.eu/embed.php?v=","http://www.cloudtime.to/video/")241 url = url.replace("http://www.divxstage.eu/video/","http://www.cloudtime.to/video/")242 url = url.replace("http://www.divxstage.to/video/","http://www.cloudtime.to/video/")243 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})244 page = urllib2.urlopen(request).read()245 link = re.findall('flashvars.file="(.*?)";', page)246 key = re.findall('flashvars.filekey="(.*?)";', page)247 if 'novamov' in url:248 video = 'http://www.novamov.com/api/player.api.php?file=' + link[0] + '&key=' + key[0]249 else :250 video = 'http://www.cloudtime.to/api/player.api.php?file=' + link[0] + '&key=' + key[0]251 request2 = urllib2.Request(video, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})252 page2 = urllib2.urlopen(request2).read()253 return urllib.unquote(re.findall('url=(.*?)&', page2)[0])254def filekey1(url):255 256 url = url.replace ("http://www.videoraj.ch/v/","http://www.videoraj.ch/embed.php?id=")257 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})258 page = urllib2.urlopen(request).read()259 link = re.findall('file:"(.*?)",', page)260 key = re.findall('key: "(.*?)",', page)261 domain = re.findall('domain: "(.*?)",', page)262 if 'videoraj' in url:263 video = "http://www.videoraj.ch/api/player.api.php?file="+ link[0] + "&key="+key[0]264 else:265 video = 'http://www.cloudy.ec/api/player.api.php?user=undefined&codes=1&file=' + link[0] + '&pass=undefined&key=' + key[0]266 request2 = urllib2.Request(video, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})267 page2 = urllib2.urlopen(request2).read()268 return urllib.unquote(re.findall('url=(.*?)&', page2)[0])269def rutube(url):270 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'}) 271 page = urllib2.urlopen(request).read()272 page = page.replace (""","")273 return re.findall('m3u8:(.*?)}', page)[0].replace("&", "&")274 275def stagevu(url):276 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})277 page = urllib2.urlopen(request).read()278 return re.findall('"src" value="(.*?)"', page)[0]279 280def watchcinema(url):281 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})282 page = urllib2.urlopen(request).read()283 page = page.strip(' \t\n\r')284 regex = re.findall('<iframe src="(.*?)"', page)285 return "http://"+regex[0].replace("https:","").replace("http://","").replace("&", "&").replace("vkontakte.ru", "vk.com").replace("watchcinema.ru", "vk.com")286def vimeo(url):287 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})288 page = urllib2.urlopen(request).read()289 qualitylist = re.findall('(hd|sd|mobile)":\\{"profile".*?"url":".*?["|&]', page)290 videolist = re.findall('":\\{"profile".*?"url":"(.*?)"', page)291 dialog = xbmcgui.Dialog()292 ret = dialog.select('kalite secin...',qualitylist)293 return videolist[ret]294def myvideo(url):295 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})296 response = urllib2.urlopen(request).read()297 a= re.findall("'file': '(.*?)'",response)298 request = urllib2.Request(a[0], None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})299 response = urllib2.urlopen(request)300 video = response.geturl()301 response.close()302 return video303 304def imdb(url):305 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})306 page = urllib2.urlopen(request).read()307 return re.findall('"url":"(.*?)"', page)[0] 308def veterok(url):309 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})310 page = urllib2.urlopen(request).read()311 return re.findall('<script>files.*?="(.*?)"', page)[0]312 313def epornik(url):314 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'}) 315 page = urllib2.urlopen(request).read()316 return re.findall('file: "(.*?)"', page)[0]317def Mailru(url):318 url = url.replace(".html","")319 var_arr = url.split("/")320 url = "http://m.my.mail.ru/mail/" +var_arr[6] + "/video/" + var_arr[7] + "/" + var_arr[8] + ".html"321 request = urllib2.Request(url, None)322 page = urllib2.urlopen(request).read()323 return re.findall('data-src="(.*?)"' ,page)[0].replace("&","&")324def VKoynat(url):325 url = url.replace('https', 'http').replace('http://www.', 'http://')326 sorgu = url.split('?', 1)[-1]327 sorgu = parse_qs(sorgu)328 url = 'http://api.vk.com/method/video.getEmbed?oid=%s&video_id=%s&embed_hash=%s' % (sorgu['oid'][0], sorgu['id'][0], sorgu['hash'][0])329 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})330 page = urllib2.urlopen(request).read()331 er = re.findall('error_msg":"([^"]+)', page)332 if er:333 url = 'http://vk.com/al_video.php?act=show_inline&al=1&video=%s_%s' % (sorgu['oid'][0], sorgu['id'][0])334 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})335 page = urllib2.urlopen(request).read()336 page = re.sub('\\\\', '', page)337 videolist = re.findall('"url[^"]+":"(http:[^"]+)', page)338 qualitylist = re.findall('"url([^"]+)":"http:[^"]+', page)339 dialog = xbmcgui.Dialog()340 ret = dialog.select('kalite secin...',qualitylist)341 return videolist[ret]342def Picasaweb(url):343 idd = re.findall('#(.*?)$', url)344 dert = '"streamIds".*?shared_group_'+idd[0]+'.*?content":(.*?)description'345 request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3','Connection': 'Close'})346 response = urllib2.urlopen(request)347 html = response.read()348 bundlelinks = re.findall(dert,html)[0]349 links=re.findall('https(.*?)"', bundlelinks)350 qualitylist = []351 videolist = []352 pre_link='https'353 for link_part in links: 354 if link_part.find("=m18") > -1:355 videolist.append(pre_link + link_part)356 qualitylist.append("360p")357 if link_part.find("=m22") > -1:358 videolist.append(pre_link + link_part)359 qualitylist.append("720p")360 if link_part.find("=m37") > -1:361 videolist.append(pre_link + link_part)362 qualitylist.append("1080p")363 dialog = xbmcgui.Dialog()364 ret = dialog.select('kalite secin...',qualitylist)365 return videolist[ret]366def okru(url):367 id = re.search('\d+', url).group(0)368 json_url = 'http://ok.ru/dk?cmd=videoPlayerMetadata&mid=' + id369 req = urllib2.Request(json_url)370 response = urllib2.urlopen(req)371 source = response.read()372 response.close()373 json_source = json.loads(source)374 videolist = []375 qualitylist = []376 sources = []377 for source in json_source['videos']:378 name = source['name']379 link = source['url']380 videolist.append(link.decode('unicode_escape').encode('utf-8'))381 qualitylist.append(name)382 dialog = xbmcgui.Dialog()383 ret = dialog.select('kalite secin...',qualitylist)384 return videolist[ret] 385def vidagoynat(url):386 page = get_url(url)387 vids = re.findall(',{file:"(.*?mp4)"', page)388 quals = re.findall('",label:"(.*?)"', page)389 videolist = [ reg.replace('\\','').replace('"','') for reg in vids]390 qualitylist = [ qual + '' for qual in quals ]391 dialog = xbmcgui.Dialog()392 ret = dialog.select('kalite secin...',qualitylist)393 return videolist[ret]394def YoutubeOynat(url):395 yt_id = url.replace("http://www.youtube.com/embed/","").replace("http://www.youtube.com/watch?v=","")396 url='plugin://plugin.video.youtube/?action=play_video&videoid=' + yt_id397 return url398 399def dailyoynat(url):400 qualitylist =[]401 videolist=[]402 url = url.replace('dailymotion.com/video/', 'dailymotion.com/embed/video/')403 page = get_url(url)404 array = re.findall('stream_h264_(?:hd1080_|ld_|hq_|hd_|)url":"(.*?H264-(.*?)\\\\/.*?)"', page)405 if array:406 for v, q in array:407 url = v.replace('\\', '')408 videolist.append(url)409 qualitylist.append(q+"p")410 array1 = re.findall('"(\\d+)":\\[{"type":"video\\\\\\/mp4","url":"([^"]+)"}]', page)411 if array1:412 for v, q in array1:413 url = q.replace('\\', '')414 videolist.append(url)415 qualitylist.append(v+"p")416 dialog = xbmcgui.Dialog()417 ret = dialog.select('kalite secin...',qualitylist)418 return videolist[ret]419def root():420 req = urllib2.Request(base64.b64decode("aHR0cDovL2hpdGl0LnRrL21haW4vZ2V0cm9vdC5waHA="), None, {'User-agent': 'Mozilla/5.0 seyirTURK_E2','Connection': 'Close'})421 return base64.b64decode(urllib2.urlopen(req).read())422def get_url(url):423 req = urllib2.Request(url)424 req.add_header('User-Agent', 'Mozilla/5.0 seyirTURK_KODI (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3')425 response = urllib2.urlopen(req)426 link=response.read()427 response.close()428 return link429def showMessage(heading='seyirTURK', message = '', times = 2000, pics = ''):430 try: xbmc.executebuiltin('XBMC.Notification("%s", "%s", %s, "%s")' % (heading, message, times, pics))431 except Exception, e:432 xbmc.log( '[%s]: showMessage: exec failed [%s]' % ('', e), 1 )433def addLink(name,url,iconimage):434 ok=True435 liz=xbmcgui.ListItem(name, iconImage="DefaultVideo.png", thumbnailImage=iconimage)436 liz.setInfo( type="Video", infoLabels={ "Title": name } )...
test_url.py
Source:test_url.py
1from django.template import RequestContext, TemplateSyntaxError2from django.test import RequestFactory, SimpleTestCase, override_settings3from django.urls import NoReverseMatch, resolve4from ..utils import setup5@override_settings(ROOT_URLCONF='template_tests.urls')6class UrlTagTests(SimpleTestCase):7 # Successes8 @setup({'url01': '{% url "client" client.id %}'})9 def test_url01(self):10 output = self.engine.render_to_string('url01', {'client': {'id': 1}})11 self.assertEqual(output, '/client/1/')12 @setup({'url02': '{% url "client_action" id=client.id action="update" %}'})13 def test_url02(self):14 output = self.engine.render_to_string('url02', {'client': {'id': 1}})15 self.assertEqual(output, '/client/1/update/')16 @setup({'url02a': '{% url "client_action" client.id "update" %}'})17 def test_url02a(self):18 output = self.engine.render_to_string('url02a', {'client': {'id': 1}})19 self.assertEqual(output, '/client/1/update/')20 @setup({'url02b': "{% url 'client_action' id=client.id action='update' %}"})21 def test_url02b(self):22 output = self.engine.render_to_string('url02b', {'client': {'id': 1}})23 self.assertEqual(output, '/client/1/update/')24 @setup({'url02c': "{% url 'client_action' client.id 'update' %}"})25 def test_url02c(self):26 output = self.engine.render_to_string('url02c', {'client': {'id': 1}})27 self.assertEqual(output, '/client/1/update/')28 @setup({'url03': '{% url "index" %}'})29 def test_url03(self):30 output = self.engine.render_to_string('url03')31 self.assertEqual(output, '/')32 @setup({'url04': '{% url "named.client" client.id %}'})33 def test_url04(self):34 output = self.engine.render_to_string('url04', {'client': {'id': 1}})35 self.assertEqual(output, '/named-client/1/')36 @setup({'url05': '{% url "меÑка_опеÑаÑоÑа" v %}'})37 def test_url05(self):38 output = self.engine.render_to_string('url05', {'v': 'Ω'})39 self.assertEqual(output, '/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4/%CE%A9/')40 @setup({'url06': '{% url "меÑка_опеÑаÑоÑа_2" tag=v %}'})41 def test_url06(self):42 output = self.engine.render_to_string('url06', {'v': 'Ω'})43 self.assertEqual(output, '/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4/%CE%A9/')44 @setup({'url08': '{% url "меÑка_опеÑаÑоÑа" v %}'})45 def test_url08(self):46 output = self.engine.render_to_string('url08', {'v': 'Ω'})47 self.assertEqual(output, '/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4/%CE%A9/')48 @setup({'url09': '{% url "меÑка_опеÑаÑоÑа_2" tag=v %}'})49 def test_url09(self):50 output = self.engine.render_to_string('url09', {'v': 'Ω'})51 self.assertEqual(output, '/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4/%CE%A9/')52 @setup({'url10': '{% url "client_action" id=client.id action="two words" %}'})53 def test_url10(self):54 output = self.engine.render_to_string('url10', {'client': {'id': 1}})55 self.assertEqual(output, '/client/1/two%20words/')56 @setup({'url11': '{% url "client_action" id=client.id action="==" %}'})57 def test_url11(self):58 output = self.engine.render_to_string('url11', {'client': {'id': 1}})59 self.assertEqual(output, '/client/1/==/')60 @setup({'url12': '{% url "client_action" id=client.id action="!$&\'()*+,;=~:@," %}'})61 def test_url12(self):62 output = self.engine.render_to_string('url12', {'client': {'id': 1}})63 self.assertEqual(output, '/client/1/!$&'()*+,;=~:@,/')64 @setup({'url13': '{% url "client_action" id=client.id action=arg|join:"-" %}'})65 def test_url13(self):66 output = self.engine.render_to_string('url13', {'client': {'id': 1}, 'arg': ['a', 'b']})67 self.assertEqual(output, '/client/1/a-b/')68 @setup({'url14': '{% url "client_action" client.id arg|join:"-" %}'})69 def test_url14(self):70 output = self.engine.render_to_string('url14', {'client': {'id': 1}, 'arg': ['a', 'b']})71 self.assertEqual(output, '/client/1/a-b/')72 @setup({'url15': '{% url "client_action" 12 "test" %}'})73 def test_url15(self):74 output = self.engine.render_to_string('url15')75 self.assertEqual(output, '/client/12/test/')76 @setup({'url18': '{% url "client" "1,2" %}'})77 def test_url18(self):78 output = self.engine.render_to_string('url18')79 self.assertEqual(output, '/client/1,2/')80 @setup({'url19': '{% url named_url client.id %}'})81 def test_url19(self):82 output = self.engine.render_to_string(83 'url19', {'client': {'id': 1}, 'named_url': 'client'}84 )85 self.assertEqual(output, '/client/1/')86 @setup({'url20': '{% url url_name_in_var client.id %}'})87 def test_url20(self):88 output = self.engine.render_to_string('url20', {'client': {'id': 1}, 'url_name_in_var': 'named.client'})89 self.assertEqual(output, '/named-client/1/')90 @setup({'url21': '{% autoescape off %}'91 '{% url "client_action" id=client.id action="!$&\'()*+,;=~:@," %}'92 '{% endautoescape %}'})93 def test_url21(self):94 output = self.engine.render_to_string('url21', {'client': {'id': 1}})95 self.assertEqual(output, '/client/1/!$&\'()*+,;=~:@,/')96 # Failures97 @setup({'url-fail01': '{% url %}'})98 def test_url_fail01(self):99 with self.assertRaises(TemplateSyntaxError):100 self.engine.get_template('url-fail01')101 @setup({'url-fail02': '{% url "no_such_view" %}'})102 def test_url_fail02(self):103 with self.assertRaises(NoReverseMatch):104 self.engine.render_to_string('url-fail02')105 @setup({'url-fail03': '{% url "client" %}'})106 def test_url_fail03(self):107 with self.assertRaises(NoReverseMatch):108 self.engine.render_to_string('url-fail03')109 @setup({'url-fail04': '{% url "view" id, %}'})110 def test_url_fail04(self):111 with self.assertRaises(TemplateSyntaxError):112 self.engine.get_template('url-fail04')113 @setup({'url-fail05': '{% url "view" id= %}'})114 def test_url_fail05(self):115 with self.assertRaises(TemplateSyntaxError):116 self.engine.get_template('url-fail05')117 @setup({'url-fail06': '{% url "view" a.id=id %}'})118 def test_url_fail06(self):119 with self.assertRaises(TemplateSyntaxError):120 self.engine.get_template('url-fail06')121 @setup({'url-fail07': '{% url "view" a.id!id %}'})122 def test_url_fail07(self):123 with self.assertRaises(TemplateSyntaxError):124 self.engine.get_template('url-fail07')125 @setup({'url-fail08': '{% url "view" id="unterminatedstring %}'})126 def test_url_fail08(self):127 with self.assertRaises(TemplateSyntaxError):128 self.engine.get_template('url-fail08')129 @setup({'url-fail09': '{% url "view" id=", %}'})130 def test_url_fail09(self):131 with self.assertRaises(TemplateSyntaxError):132 self.engine.get_template('url-fail09')133 @setup({'url-fail11': '{% url named_url %}'})134 def test_url_fail11(self):135 with self.assertRaises(NoReverseMatch):136 self.engine.render_to_string('url-fail11')137 @setup({'url-fail12': '{% url named_url %}'})138 def test_url_fail12(self):139 with self.assertRaises(NoReverseMatch):140 self.engine.render_to_string('url-fail12', {'named_url': 'no_such_view'})141 @setup({'url-fail13': '{% url named_url %}'})142 def test_url_fail13(self):143 with self.assertRaises(NoReverseMatch):144 self.engine.render_to_string('url-fail13', {'named_url': 'template_tests.views.client'})145 @setup({'url-fail14': '{% url named_url id, %}'})146 def test_url_fail14(self):147 with self.assertRaises(TemplateSyntaxError):148 self.engine.render_to_string('url-fail14', {'named_url': 'view'})149 @setup({'url-fail15': '{% url named_url id= %}'})150 def test_url_fail15(self):151 with self.assertRaises(TemplateSyntaxError):152 self.engine.render_to_string('url-fail15', {'named_url': 'view'})153 @setup({'url-fail16': '{% url named_url a.id=id %}'})154 def test_url_fail16(self):155 with self.assertRaises(TemplateSyntaxError):156 self.engine.render_to_string('url-fail16', {'named_url': 'view'})157 @setup({'url-fail17': '{% url named_url a.id!id %}'})158 def test_url_fail17(self):159 with self.assertRaises(TemplateSyntaxError):160 self.engine.render_to_string('url-fail17', {'named_url': 'view'})161 @setup({'url-fail18': '{% url named_url id="unterminatedstring %}'})162 def test_url_fail18(self):163 with self.assertRaises(TemplateSyntaxError):164 self.engine.render_to_string('url-fail18', {'named_url': 'view'})165 @setup({'url-fail19': '{% url named_url id=", %}'})166 def test_url_fail19(self):167 with self.assertRaises(TemplateSyntaxError):168 self.engine.render_to_string('url-fail19', {'named_url': 'view'})169 # {% url ... as var %}170 @setup({'url-asvar01': '{% url "index" as url %}'})171 def test_url_asvar01(self):172 output = self.engine.render_to_string('url-asvar01')173 self.assertEqual(output, '')174 @setup({'url-asvar02': '{% url "index" as url %}{{ url }}'})175 def test_url_asvar02(self):176 output = self.engine.render_to_string('url-asvar02')177 self.assertEqual(output, '/')178 @setup({'url-asvar03': '{% url "no_such_view" as url %}{{ url }}'})179 def test_url_asvar03(self):180 output = self.engine.render_to_string('url-asvar03')181 self.assertEqual(output, '')182 @setup({'url-namespace01': '{% url "app:named.client" 42 %}'})183 def test_url_namespace01(self):184 request = RequestFactory().get('/')185 request.resolver_match = resolve('/ns1/')186 template = self.engine.get_template('url-namespace01')187 context = RequestContext(request)188 output = template.render(context)189 self.assertEqual(output, '/ns1/named-client/42/')190 @setup({'url-namespace02': '{% url "app:named.client" 42 %}'})191 def test_url_namespace02(self):192 request = RequestFactory().get('/')193 request.resolver_match = resolve('/ns2/')194 template = self.engine.get_template('url-namespace02')195 context = RequestContext(request)196 output = template.render(context)197 self.assertEqual(output, '/ns2/named-client/42/')198 @setup({'url-namespace03': '{% url "app:named.client" 42 %}'})199 def test_url_namespace03(self):200 request = RequestFactory().get('/')201 template = self.engine.get_template('url-namespace03')202 context = RequestContext(request)203 output = template.render(context)204 self.assertEqual(output, '/ns2/named-client/42/')205 @setup({'url-namespace-no-current-app': '{% url "app:named.client" 42 %}'})206 def test_url_namespace_no_current_app(self):207 request = RequestFactory().get('/')208 request.resolver_match = resolve('/ns1/')209 request.current_app = None210 template = self.engine.get_template('url-namespace-no-current-app')211 context = RequestContext(request)212 output = template.render(context)213 self.assertEqual(output, '/ns2/named-client/42/')214 @setup({'url-namespace-explicit-current-app': '{% url "app:named.client" 42 %}'})215 def test_url_namespace_explicit_current_app(self):216 request = RequestFactory().get('/')217 request.resolver_match = resolve('/ns1/')218 request.current_app = 'app'219 template = self.engine.get_template('url-namespace-explicit-current-app')220 context = RequestContext(request)221 output = template.render(context)...
urlparse.py
Source:urlparse.py
...97 __slots__ = ()98 def __new__(cls, scheme, netloc, path, query, fragment):99 return BaseResult.__new__(100 cls, (scheme, netloc, path, query, fragment))101 def geturl(self):102 return urlunsplit(self)103class ParseResult(BaseResult):104 __slots__ = ()105 def __new__(cls, scheme, netloc, path, params, query, fragment):106 return BaseResult.__new__(107 cls, (scheme, netloc, path, params, query, fragment))108 @property109 def params(self):110 return self[3]111 def geturl(self):112 return urlunparse(self)113def urlparse(url, scheme='', allow_fragments=True):114 """Parse a URL into 6 components:115 <scheme>://<netloc>/<path>;<params>?<query>#<fragment>116 Return a 6-tuple: (scheme, netloc, path, params, query, fragment).117 Note that we don't break the components up in smaller bits118 (e.g. netloc is a single string) and we don't expand % escapes."""119 tuple = urlsplit(url, scheme, allow_fragments)120 scheme, netloc, url, query, fragment = tuple121 if scheme in uses_params and ';' in url:122 url, params = _splitparams(url)123 else:124 params = ''125 return ParseResult(scheme, netloc, url, params, query, fragment)...
web_extractor.py
Source:web_extractor.py
...147 return data['Content-Disposition'].split(";")[1].split('"')[1]148 else:149 return re.search(r'(?<=\/)[^\/\?#]+(?=[^\/]*$)', url).group(0)150 151def redirect_url(url):152 web_domain = getDomain(url)153 if(web_domain == 'github'):154 return requests.head(url)155 else:156 with requests.Session() as session:157 return session.head(session.post(url).url)158domain_crawler_mapper = {159 "mediafire": mediafire,160 "google": google,161 "dropbox": dropbox,162 "github": github,163 "youtube": youtube,164 "facebook": facebook165}166def direct_link_generator(url):167 response = redirect_url(url)168 url = response.url169 if(response.status_code == 404 or response.status_code == 403 or response.status_code == 400):170 return "Invalid url"171 else:172 url_type, _ = mimetypes.guess_type(url)173 if url_type is None:174 url_type = response.headers175 if(('Content-Type' in url_type) and (url_type['Content-Type'] == 'text/html; charset=utf-8' or url_type['Content-Type'] == 'text/html; charset="utf-8"' or url_type['Content-Type'] == 'text/html; charset=UTF-8' )): # True if this url is text/html, False if is a file176 web_domain = getDomain(url)177 if web_domain in domain_crawler_mapper:178 direct_url = domain_crawler_mapper[web_domain](url)179 if(direct_url):180 if(type(direct_url) is not tuple):181 return (get_file_name(direct_url),direct_url)...
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!