+def get_season_episode(title):
+ """Récupère les numéros de la saison et de l'épisode. Crash si ne trouve pas."""
+ ep = int(re.findall("ep([0-9]*)", title)[0])
+ saison = int(re.findall("s([0-9]*)", title)[0])
+ return saison, ep
+
+def last_noob_warpzone():
+ global last_nw
+ # GRUIK
+ if "last_nw" in globals().keys():
+ return last_nw
+ titles = parse_youtube("Funglisoft")
+ noobs = [t.lower().strip() for t in titles if t.lower().strip().startswith("noob")]
+ warpzones = [t.lower().strip() for t in titles if t.lower().strip().startswith("warpzone project")]
+ lasts = []
+ for serie in [noobs, warpzones]:
+ # Les titres sont dans l'ordre antichronologique, on s'arrête donc au premier qu'on comprend
+ for titre in serie:
+ if "noob le film" in titre or "making of" in titre:
+ continue
+ try:
+ if DEBUG:
+ print titre
+ saison, ep = get_season_episode(titre)
+ except ValueError:
+ pass
+ lasts.append([saison, ep])
+ del saison, ep
+ break
+ last_noob = lasts[0][0]*100 + lasts[0][1]
+ last_warp = lasts[1][0]*100 + lasts[1][1]
+ last_nw = [last_noob, last_warp]
+ return last_nw
+
+def last_noob():
+ return last_noob_warpzone()[0]
+def last_warpzone():
+ return last_noob_warpzone()[1]
+
+def last_hugo():
+ titles = parse_youtube("HugoToutSeul")
+ return len(titles)
+
+def last_norman():
+ titles = parse_youtube("NormanFaitDesVideos")
+ return len(titles)
+
+def last_cyprien():
+ titles = parse_youtube("MonsieurDream")
+ return len(titles)
+
+def last_grenier():
+ titles = parse_youtube("joueurdugrenier")
+ return len(titles)
+
+def last_jl8():
+ rss = urllib.urlopen("http://limbero.org/jl8/rss/")
+ t = rss.read()
+ x = etree.fromstring(t)
+ links = x.xpath("//link")
+ maxnum = links[1].text.split("/")[-1]
+ maxnum = int(maxnum)
+ return maxnum