@@ -91,7 +91,8 @@ async def getChannelsByExtendBaseUrls(channel_names):
9191 url = re .match (pattern , line ).group (2 )
9292 value = (url , None , resolution )
9393 if key in link_dict :
94- link_dict [key ].append (value )
94+ if value not in link_dict [key ]:
95+ link_dict [key ].append (value )
9596 else :
9697 link_dict [key ] = [value ]
9798 found_channels = []
@@ -137,31 +138,37 @@ def updateFile(final_file, old_file):
137138 os .replace (old_file , final_file )
138139
139140
140- def getUrlInfo ( result ):
141+ def getChannelUrl ( element ):
141142 """
142143 Get the url, date and resolution
143144 """
144- url = date = resolution = None
145- result_div = [div for div in result .children if div .name == "div" ]
146- if 1 < len (result_div ):
147- channel_text = result_div [1 ].get_text (strip = True )
148- url_match = re .search (
149- r"http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+" ,
150- channel_text ,
145+ url = None
146+ urlRegex = r"http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+"
147+ url_search = re .search (
148+ urlRegex ,
149+ element .get_text (strip = True ),
150+ )
151+ if url_search :
152+ url = url_search .group ()
153+ return url
154+
155+
156+ def getChannelInfo (element ):
157+ """
158+ Get the channel info
159+ """
160+ date , resolution = None , None
161+ info_text = element .get_text (strip = True )
162+ if info_text :
163+ date , resolution = (
164+ (info_text .partition (" " )[0 ] if info_text .partition (" " )[0 ] else None ),
165+ (
166+ info_text .partition (" " )[2 ].partition ("•" )[2 ]
167+ if info_text .partition (" " )[2 ].partition ("•" )[2 ]
168+ else None
169+ ),
151170 )
152- if url_match is not None :
153- url = url_match .group ()
154- info_text = result_div [- 1 ].get_text (strip = True )
155- if info_text :
156- date , resolution = (
157- (info_text .partition (" " )[0 ] if info_text .partition (" " )[0 ] else None ),
158- (
159- info_text .partition (" " )[2 ].partition ("•" )[2 ]
160- if info_text .partition (" " )[2 ].partition ("•" )[2 ]
161- else None
162- ),
163- )
164- return url , date , resolution
171+ return date , resolution
165172
166173
167174async def getSpeed (url , urlTimeout = 5 ):
0 commit comments